qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] contrib/plugins: add meson build file
@ 2023-06-15 14:14 Anton Kochkov
  2023-06-19 18:04 ` Alex Bennée
  0 siblings, 1 reply; 2+ messages in thread
From: Anton Kochkov @ 2023-06-15 14:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Anton Kochkov, Alex Bennée, Alexandre Iooss, Mahmoud Mandour

Add crossplatform Meson file to build TCG plugins since
the Makefile makes wrong assumptions about it being used only
on Linux. Tested on Linux and macOS.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1710
Signed-off-by: Anton Kochkov <anton.kochkov@proton.me>
---
 contrib/plugins/meson.build       | 31 +++++++++++++++++++++++++++++++
 contrib/plugins/meson_options.txt |  1 +
 2 files changed, 32 insertions(+)
 create mode 100644 contrib/plugins/meson.build
 create mode 100644 contrib/plugins/meson_options.txt

diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
new file mode 100644
index 0000000000..72c4167461
--- /dev/null
+++ b/contrib/plugins/meson.build
@@ -0,0 +1,31 @@
+project('qemu-plugins', 'c', meson_version: '>=0.50.0')
+
+qemu_src = get_option('qemu_path')
+if qemu_src == ''
+  qemu_src = '../..'
+endif
+
+qemu_include = qemu_src + '/include/qemu'
+incdir = include_directories(qemu_include)
+
+plugins = [
+  'execlog',
+  'hotblocks',
+  'hotpages',
+  'howvec',
+  'lockstep',
+  'hwprofile',
+  'cache',
+  'drcov',
+]
+
+th = dependency('threads', required: true)
+glib = dependency('glib-2.0', required: true)
+
+foreach p: plugins
+  library(p, p + '.c',
+    include_directories: incdir,
+    dependencies: [th, glib],
+    override_options: ['b_lundef=false']
+  )
+endforeach
diff --git a/contrib/plugins/meson_options.txt b/contrib/plugins/meson_options.txt
new file mode 100644
index 0000000000..2d76cda496
--- /dev/null
+++ b/contrib/plugins/meson_options.txt
@@ -0,0 +1 @@
+option('qemu_path', type : 'string', value : '', description : 'Full path to the QEMU sources to build plugins for')
--
2.40.1




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] contrib/plugins: add meson build file
  2023-06-15 14:14 [PATCH] contrib/plugins: add meson build file Anton Kochkov
@ 2023-06-19 18:04 ` Alex Bennée
  0 siblings, 0 replies; 2+ messages in thread
From: Alex Bennée @ 2023-06-19 18:04 UTC (permalink / raw)
  To: Anton Kochkov; +Cc: qemu-devel, Alexandre Iooss, Mahmoud Mandour, Paolo Bonzini


Anton Kochkov <anton.kochkov@proton.me> writes:

> Add crossplatform Meson file to build TCG plugins since
> the Makefile makes wrong assumptions about it being used only
> on Linux. Tested on Linux and macOS.

I think you should go the whole hog and remove the existing makefile
machinery. Otherwise it will be confusing to users who add new plugins
to the contrib directory.

Can the overall QEMU meson invoke this directly or will it get confused
by it being a separate project?

>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1710
> Signed-off-by: Anton Kochkov <anton.kochkov@proton.me>
> ---
>  contrib/plugins/meson.build       | 31 +++++++++++++++++++++++++++++++
>  contrib/plugins/meson_options.txt |  1 +
>  2 files changed, 32 insertions(+)
>  create mode 100644 contrib/plugins/meson.build
>  create mode 100644 contrib/plugins/meson_options.txt
>
> diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
> new file mode 100644
> index 0000000000..72c4167461
> --- /dev/null
> +++ b/contrib/plugins/meson.build
> @@ -0,0 +1,31 @@
> +project('qemu-plugins', 'c', meson_version: '>=0.50.0')
> +
> +qemu_src = get_option('qemu_path')
> +if qemu_src == ''
> +  qemu_src = '../..'
> +endif
> +
> +qemu_include = qemu_src + '/include/qemu'
> +incdir = include_directories(qemu_include)
> +
> +plugins = [
> +  'execlog',
> +  'hotblocks',
> +  'hotpages',
> +  'howvec',
> +  'lockstep',
> +  'hwprofile',
> +  'cache',
> +  'drcov',
> +]
> +
> +th = dependency('threads', required: true)
> +glib = dependency('glib-2.0', required: true)
> +
> +foreach p: plugins
> +  library(p, p + '.c',
> +    include_directories: incdir,
> +    dependencies: [th, glib],
> +    override_options: ['b_lundef=false']
> +  )
> +endforeach
> diff --git a/contrib/plugins/meson_options.txt b/contrib/plugins/meson_options.txt
> new file mode 100644
> index 0000000000..2d76cda496
> --- /dev/null
> +++ b/contrib/plugins/meson_options.txt
> @@ -0,0 +1 @@
> +option('qemu_path', type : 'string', value : '', description : 'Full
> path to the QEMU sources to build plugins for')


-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-19 18:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-15 14:14 [PATCH] contrib/plugins: add meson build file Anton Kochkov
2023-06-19 18:04 ` Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).