diff mbox series

[v2,18/20] meson: build contrib/plugins with meson

Message ID 20241022105614.839199-19-alex.bennee@linaro.org
State New
Headers show
Series maintainer updates (testing, gdbstub, plugins) | expand

Commit Message

Alex Bennée Oct. 22, 2024, 10:56 a.m. UTC
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

Comments

Pierrick Bouvier Oct. 23, 2024, 7:51 a.m. UTC | #1
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
Alex Bennée Oct. 23, 2024, 8:57 a.m. UTC | #2
Pierrick Bouvier <pierrick.bouvier@linaro.org> writes:

> 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.

I'll drop from the PR and let you re-submit.
Pierrick Bouvier Oct. 23, 2024, 9:31 p.m. UTC | #3
On 10/23/24 01:57, Alex Bennée wrote:
> Pierrick Bouvier <pierrick.bouvier@linaro.org> writes:
> 
>> 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.
> 
> I'll drop from the PR and let you re-submit.
> 

Sent a v3 with windows fix:
https://lore.kernel.org/qemu-devel/20241023212812.1376972-1-pierrick.bouvier@linaro.org/T/#t

Thanks,
Pierrick
diff mbox series

Patch

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']
+    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