Message ID | 20230628162451.147419-2-anton.kochkov@proton.me |
---|---|
State | New |
Headers | show |
Series | contrib/plugins: Migrate to the Meson build | expand |
Thanks for letting me know this on GitLab. On 2023/06/29 1:26, Anton Kochkov wrote: > 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 The default value should be provided in meson_options.txt. > + > +qemu_include = qemu_src + '/include/qemu' I think the following is more idiomatic: qemu_include = qemu_src / 'include/qemu' Regards, Akihiko Odaki > +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.41.0 > > >
I used a wrong email account. I also forgot to mention that you must update other places referring to the Makefile. I'm aware of the following: - root Makefile - tests/tcg/Makefile.target - docs/devel/tcg-plugins.rst On 2023/08/02 17:16, Akihiko Odaki wrote: > Thanks for letting me know this on GitLab. > > On 2023/06/29 1:26, Anton Kochkov wrote: >> 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 > > The default value should be provided in meson_options.txt. > >> + >> +qemu_include = qemu_src + '/include/qemu' > > I think the following is more idiomatic: > qemu_include = qemu_src / 'include/qemu' > > Regards, > Akihiko Odaki > >> +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.41.0 >> >> >>
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')
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 -- 2.41.0