[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 29/51] configure, meson: move --enable-plugins to meson
From: |
Paolo Bonzini |
Subject: |
[PULL 29/51] configure, meson: move --enable-plugins to meson |
Date: |
Thu, 7 Sep 2023 14:59:38 +0200 |
While the option still needs to be parsed in the configure script
(it's needed by tests/tcg, and also to decide about recursing
into contrib/plugins), passing it to Meson can be done with -D
instead of using config-host.mak.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
accel/tcg/meson.build | 4 +++-
configure | 5 +----
meson.build | 7 ++++---
meson_options.txt | 2 ++
plugins/meson.build | 12 +++++++-----
scripts/meson-buildoptions.sh | 3 +++
tests/Makefile.include | 2 +-
tests/meson.build | 6 ++----
8 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build
index 166bef173b8..8ace7837079 100644
--- a/accel/tcg/meson.build
+++ b/accel/tcg/meson.build
@@ -11,7 +11,9 @@ tcg_ss.add(files(
))
tcg_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c'))
tcg_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_false: files('user-exec-stub.c'))
-tcg_ss.add(when: 'CONFIG_PLUGIN', if_true: [files('plugin-gen.c')])
+if get_option('plugins')
+ tcg_ss.add(files('plugin-gen.c'))
+endif
tcg_ss.add(when: libdw, if_true: files('debuginfo.c'))
tcg_ss.add(when: 'CONFIG_LINUX', if_true: files('perf.c'))
specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_ss)
diff --git a/configure b/configure
index a0912e4b268..6b1019ba59c 100755
--- a/configure
+++ b/configure
@@ -1712,10 +1712,6 @@ case $targetos in
;;
esac
-if test "$plugins" = "yes" ; then
- echo "CONFIG_PLUGIN=y" >> $config_host_mak
-fi
-
if test -n "$gdb_bin"; then
gdb_version=$($gdb_bin --version | head -n 1)
if version_ge ${gdb_version##* } 9.1; then
@@ -1909,6 +1905,7 @@ if test "$skip_meson" = no; then
test "$cfi" != false && meson_option_add "-Dcfi=$cfi"
test "$docs" != auto && meson_option_add "-Ddocs=$docs"
test -n "${LIB_FUZZING_ENGINE+xxx}" && meson_option_add
"-Dfuzzing_engine=$LIB_FUZZING_ENGINE"
+ test "$plugins" = yes && meson_option_add "-Dplugins=true"
test "$qemu_suffix" != qemu && meson_option_add "-Dqemu_suffix=$qemu_suffix"
test "$smbd" != '' && meson_option_add "-Dsmbd=$smbd"
test "$tcg" != enabled && meson_option_add "-Dtcg=$tcg"
diff --git a/meson.build b/meson.build
index 4c3918a34ec..a1021fe2a78 100644
--- a/meson.build
+++ b/meson.build
@@ -730,7 +730,7 @@ glib_cflags = []
if enable_modules
gmodule = dependency('gmodule-export-2.0', version: glib_req_ver, required:
true,
method: 'pkg-config')
-elif config_host.has_key('CONFIG_PLUGIN')
+elif get_option('plugins')
gmodule = dependency('gmodule-no-export-2.0', version: glib_req_ver,
required: true,
method: 'pkg-config')
else
@@ -2115,6 +2115,7 @@ if numa.found()
dependencies: numa))
endif
config_host_data.set('CONFIG_OPENGL', opengl.found())
+config_host_data.set('CONFIG_PLUGIN', get_option('plugins'))
config_host_data.set('CONFIG_RBD', rbd.found())
config_host_data.set('CONFIG_RDMA', rdma.found())
config_host_data.set('CONFIG_SAFESTACK', get_option('safe_stack'))
@@ -3883,7 +3884,7 @@ endforeach
# Other build targets
-if 'CONFIG_PLUGIN' in config_host
+if get_option('plugins')
install_headers('include/qemu/qemu-plugin.h')
endif
@@ -4156,7 +4157,7 @@ if config_all.has_key('CONFIG_TCG')
else
summary_info += {'TCG backend': 'native (@0@)'.format(cpu)}
endif
- summary_info += {'TCG plugins': config_host.has_key('CONFIG_PLUGIN')}
+ summary_info += {'TCG plugins': get_option('plugins')}
summary_info += {'TCG debug enabled': get_option('debug_tcg')}
endif
summary_info += {'target list': ' '.join(target_dirs)}
diff --git a/meson_options.txt b/meson_options.txt
index 5d6b889554c..e48086e2562 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -83,6 +83,8 @@ option('xen_pci_passthrough', type: 'feature', value: 'auto',
description: 'Xen PCI passthrough support')
option('tcg', type: 'feature', value: 'enabled',
description: 'TCG support')
+option('plugins', type: 'boolean', value: false,
+ description: 'TCG plugins via shared library loading')
option('debug_tcg', type: 'boolean', value: false,
description: 'TCG debugging')
option('tcg_interpreter', type: 'boolean', value: false,
diff --git a/plugins/meson.build b/plugins/meson.build
index 752377c66d3..71ed996ed31 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -13,8 +13,10 @@ if not enable_modules
endif
endif
-specific_ss.add(when: 'CONFIG_PLUGIN', if_true: [files(
- 'loader.c',
- 'core.c',
- 'api.c',
-), declare_dependency(link_args: plugin_ldflags)])
+if get_option('plugins')
+ specific_ss.add(files(
+ 'loader.c',
+ 'core.c',
+ 'api.c',
+ ), declare_dependency(link_args: plugin_ldflags))
+endif
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 5567fd29985..6b16ad94f4b 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -40,6 +40,7 @@ meson_options_help() {
printf "%s\n" ' jemalloc/system/tcmalloc)'
printf "%s\n" ' --enable-module-upgrades try to load modules from alternate
paths for'
printf "%s\n" ' upgrades'
+ printf "%s\n" ' --enable-plugins TCG plugins via shared library
loading'
printf "%s\n" ' --enable-rng-none dummy RNG, avoid using
/dev/(u)random and'
printf "%s\n" ' getrandom()'
printf "%s\n" ' --enable-safe-stack SafeStack Stack Smash Protection
(requires'
@@ -401,6 +402,8 @@ _meson_option_parse() {
--enable-pipewire) printf "%s" -Dpipewire=enabled ;;
--disable-pipewire) printf "%s" -Dpipewire=disabled ;;
--with-pkgversion=*) quote_sh "-Dpkgversion=$2" ;;
+ --enable-plugins) printf "%s" -Dplugins=true ;;
+ --disable-plugins) printf "%s" -Dplugins=false ;;
--enable-png) printf "%s" -Dpng=enabled ;;
--disable-png) printf "%s" -Dpng=disabled ;;
--enable-pvrdma) printf "%s" -Dpvrdma=enabled ;;
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 985cda7a945..38987426594 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -73,7 +73,7 @@ $(TCG_TESTS_TARGETS:%=distclean-tcg-tests-%):
distclean-tcg-tests-%:
build-tcg: $(BUILD_TCG_TARGET_RULES)
.PHONY: check-tcg
-.ninja-goals.check-tcg = all $(if $(CONFIG_PLUGIN),test-plugins)
+.ninja-goals.check-tcg = all
check-tcg: $(RUN_TCG_TARGET_RULES)
.PHONY: clean-tcg
diff --git a/tests/meson.build b/tests/meson.build
index 083f2990bde..c2528a88f99 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -80,10 +80,8 @@ if 'CONFIG_TCG' in config_all
subdir('fp')
endif
-if get_option('tcg').allowed()
- if 'CONFIG_PLUGIN' in config_host
- subdir('plugin')
- endif
+if get_option('plugins')
+ subdir('plugin')
endif
subdir('unit')
--
2.41.0
- Re: [PULL 24/51] meson: compile bundled device trees, (continued)
- [PULL 13/51] util/async-teardown.c: move to softmmu/, only build it when system build is requested, Paolo Bonzini, 2023/09/07
- [PULL 18/51] contrib/plugins/lockstep: Fix string format, Paolo Bonzini, 2023/09/07
- [PULL 19/51] contrib/plugins: add Darwin support, Paolo Bonzini, 2023/09/07
- [PULL 22/51] configure: remove HOST_CC, Paolo Bonzini, 2023/09/07
- [PULL 26/51] configure: move --enable-debug-tcg to meson, Paolo Bonzini, 2023/09/07
- [PULL 23/51] configure: create native file with contents of $host_cc, Paolo Bonzini, 2023/09/07
- [PULL 27/51] contrib/plugins: use an independent makefile, Paolo Bonzini, 2023/09/07
- [PULL 30/51] configure, meson: remove CONFIG_SOLARIS from config-host.mak, Paolo Bonzini, 2023/09/07
- [PULL 32/51] meson: list leftover CONFIG_* symbols, Paolo Bonzini, 2023/09/07
- [PULL 29/51] configure, meson: move --enable-plugins to meson,
Paolo Bonzini <=
- [PULL 31/51] configure, meson: remove target OS symbols from config-host.mak, Paolo Bonzini, 2023/09/07
- [PULL 35/51] mkvenv: assume presence of importlib.metadata, Paolo Bonzini, 2023/09/07
- [PULL 34/51] Python: Drop support for Python 3.7, Paolo Bonzini, 2023/09/07
- [PULL 33/51] configure: remove dead code, Paolo Bonzini, 2023/09/07
- [PULL 39/51] hw/i386/fw_cfg: Include missing 'cpu.h' header, Paolo Bonzini, 2023/09/07
- [PULL 38/51] hw/i386/pc: Include missing 'cpu.h' header, Paolo Bonzini, 2023/09/07
- [PULL 28/51] configure: unify recursion into sub-Makefiles, Paolo Bonzini, 2023/09/07
- [PULL 36/51] Revert "mkvenv: work around broken pip installations on Debian 10", Paolo Bonzini, 2023/09/07
- [PULL 37/51] hw/i386/pc: Include missing 'sysemu/tcg.h' header, Paolo Bonzini, 2023/09/07
- [PULL 41/51] target/i386/cpu-sysemu: Inline kvm_apic_in_kernel(), Paolo Bonzini, 2023/09/07