On 10/22/24 03:56, Alex Bennée wrote:
> From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
>
> Tried to unify this meson.build with tests/tcg/plugins/meson.build but
> the resulting modules are not output in the right directory.
>
> Originally proposed by Anton Kochkov, thank you!
>
> Solves: https://gitlab.com/qemu-project/qemu/-/issues/1710
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> Message-Id: <20240925204845.390689-2-pierrick.bouvier@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
> meson.build | 4 ++++
> contrib/plugins/meson.build | 23 +++++++++++++++++++++++
> 2 files changed, 27 insertions(+)
> create mode 100644 contrib/plugins/meson.build
>
> diff --git a/meson.build b/meson.build
> index bdd67a2d6d..3ea03c451b 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -3678,6 +3678,10 @@ subdir('accel')
> subdir('plugins')
> subdir('ebpf')
>
> +if 'CONFIG_TCG' in config_all_accel
> + subdir('contrib/plugins')
> +endif
> +
> common_user_inc = []
>
> subdir('common-user')
> diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
> new file mode 100644
> index 0000000000..a0e026d25e
> --- /dev/null
> +++ b/contrib/plugins/meson.build
> @@ -0,0 +1,23 @@
> +t = []
> +if get_option('plugins')
> + foreach i : ['cache', 'drcov', 'execlog', 'hotblocks', 'hotpages', 'howvec',
> + 'hwprofile', 'ips', 'lockstep', 'stoptrigger']
lockstep does not build under Windows (it uses sockets), so it should be
conditionnally not built on this platform.
@Alex, if you feel like modifying this, you can. If not, you can drop
the meson build patches from this series to not block it.
> + if host_os == 'windows'
> + t += shared_module(i, files(i + '.c') + 'win32_linker.c',
> + include_directories: '../../include/qemu',
> + link_depends: [win32_qemu_plugin_api_lib],
> + link_args: ['-Lplugins', '-lqemu_plugin_api'],
> + dependencies: glib)
> +
> + else
> + t += shared_module(i, files(i + '.c'),
> + include_directories: '../../include/qemu',
> + dependencies: glib)
> + endif
> + endforeach
> +endif
> +if t.length() > 0
> + alias_target('contrib-plugins', t)
> +else
> + run_target('contrib-plugins', command: find_program('true'))
> +endif