Signed-off-by: Pierrick Bouvier <[email protected]>
---
meson.build | 2 +-
contrib/plugins/meson.build | 13 ++-----------
plugins/meson.build | 15 ++++++++++++++-
tests/tcg/plugins/meson.build | 13 ++-----------
4 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/meson.build b/meson.build
index db87358d62d..3d6c6c702d0 100644
--- a/meson.build
+++ b/meson.build
@@ -4499,7 +4499,7 @@ if get_option('plugins')
if host_os == 'windows'
# On windows, we want to deliver the qemu_plugin_api.lib file in the qemu
installer,
# so that plugin authors can compile against it.
- install_data(win32_qemu_plugin_api_lib, install_dir: 'lib')
+ install_data(win32_qemu_plugin_api, install_dir: 'lib')
endif
endif
diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
index 6f72b2ce0c9..8f9f0257ee5 100644
--- a/contrib/plugins/meson.build
+++ b/contrib/plugins/meson.build
@@ -9,17 +9,8 @@ endif
t = []
if get_option('plugins')
foreach i : contrib_plugins
- if host_os == 'windows'
- t += shared_module(i, files(i + '.c') + '../../plugins/win32_linker.c',
- include_directories: '../../include/qemu',
- link_depends: [win32_qemu_plugin_api_lib],
- link_args: win32_qemu_plugin_api_link_flags,
- dependencies: glib)
- else
- t += shared_module(i, files(i + '.c'),
- include_directories: '../../include/qemu',
- dependencies: glib)
- endif
+ t += shared_module(i, files(i + '.c'),
+ dependencies: plugins_deps)
endforeach
endif
if t.length() > 0
diff --git a/plugins/meson.build b/plugins/meson.build
index 62c991d87fc..4318e3a1671 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -51,11 +51,24 @@ if host_os == 'windows'
dlltool_cmd = [dlltool, '--input-def', '@INPUT@',
'--output-delaylib', '@OUTPUT@', '--dllname', 'qemu.exe']
endif
- win32_qemu_plugin_api_lib = configure_file(
+ win32_qemu_plugin_api = configure_file(
input: win32_plugin_def,
output: 'libqemu_plugin_api.a',
command: dlltool_cmd
)
+ win32_qemu_plugin_api_lib = static_library('win32_qemu_plugin_api',
+ link_depends:
win32_qemu_plugin_api)
+endif
+
+if host_os == 'windows'
+ plugins_deps = declare_dependency(sources: [files('win32_linker.c')],
+ include_directories: '../include/qemu',
+ link_with: win32_qemu_plugin_api_lib,
+ link_args:
win32_qemu_plugin_api_link_flags,
+ dependencies: glib)
+else
+ plugins_deps = declare_dependency(include_directories: '../include/qemu',
+ dependencies: glib)
endif
user_ss.add(files('user.c', 'api-user.c'))
diff --git a/tests/tcg/plugins/meson.build b/tests/tcg/plugins/meson.build
index a6e78438510..c58f2e382ae 100644
--- a/tests/tcg/plugins/meson.build
+++ b/tests/tcg/plugins/meson.build
@@ -1,17 +1,8 @@
t = []
if get_option('plugins')
foreach i : ['bb', 'discons', 'empty', 'inline', 'insn', 'mem', 'reset',
'syscall', 'patch']
- if host_os == 'windows'
- t += shared_module(i, files(i + '.c') +
'../../../plugins/win32_linker.c',
- include_directories: '../../../include/qemu',
- link_depends: [win32_qemu_plugin_api_lib],
- link_args: win32_qemu_plugin_api_link_flags,
- dependencies: glib)
- else
- t += shared_module(i, files(i + '.c'),
- include_directories: '../../../include/qemu',
- dependencies: glib)
- endif
+ t += shared_module(i, files(i + '.c'),
+ dependencies: plugins_deps)
endforeach
endif
if t.length() > 0
--
2.47.3