From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [PATCH 09/17] configure: clean up plugin option handling
Date: Mon, 16 Oct 2023 08:31:19 +0200 [thread overview]
Message-ID: <20231016063127.161204-10-pbonzini@redhat.com> (raw)
In-Reply-To: <20231016063127.161204-1-pbonzini@redhat.com>
Keep together all the conditions that lead to disabling plugins, and
remove now-dead code.
Since the option was not in SKIP_OPTIONS, it was present twice in
the help message, both from configure and from meson-buildoptions.sh.
Remove the duplication and take the occasion to document the option as
autodetected, which it is.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 39 +++++++++++++++--------------------
scripts/meson-buildoptions.py | 17 ++++++++++-----
scripts/meson-buildoptions.sh | 2 +-
3 files changed, 30 insertions(+), 28 deletions(-)
diff --git a/configure b/configure
index 732220fdd45..7dad78f329b 100755
--- a/configure
+++ b/configure
@@ -377,7 +377,6 @@ fi
case $targetos in
windows)
- plugins="no"
pie="no"
;;
haiku)
@@ -737,7 +736,6 @@ for opt do
default_cflags='-O0 -g'
;;
--disable-tcg) tcg="disabled"
- plugins="no"
;;
--enable-tcg) tcg="enabled"
;;
@@ -774,11 +772,7 @@ for opt do
;;
--enable-download) download="enabled"; git_submodules_action=update;
;;
- --enable-plugins) if test "$targetos" = "windows"; then
- error_exit "TCG plugins not currently supported on Windows platforms"
- else
- plugins="yes"
- fi
+ --enable-plugins) plugins="yes"
;;
--disable-plugins) plugins="no"
;;
@@ -804,11 +798,6 @@ then
git_submodules_action="validate"
fi
-# test for any invalid configuration combinations
-if test "$plugins" = "yes" -a "$tcg" = "disabled"; then
- error_exit "Can't enable plugins on non-TCG builds"
-fi
-
if ! test -f "$source_path/subprojects/keycodemapdb/README" \
&& test "$download" = disabled
then
@@ -919,8 +908,6 @@ Advanced options (experts only):
--enable-debug enable common debug build options
--disable-werror disable compilation abort on warning
--cpu=CPU Build for host CPU [$cpu]
- --enable-plugins
- enable plugins via shared library loading
--disable-containers don't use containers for cross-building
--container-engine=TYPE which container engine to use [$container_engine]
--gdb=GDB-path gdb to use for gdbstub tests [$gdb_bin]
@@ -1062,15 +1049,27 @@ if test "$targetos" = "bogus"; then
error_exit "Unrecognized host OS (uname -s reports '$(uname -s)')"
fi
+# test for any invalid configuration combinations
+if test "$targetos" = "windows"; then
+ if test "$plugins" = "yes"; then
+ error_exit "TCG plugins not currently supported on Windows platforms"
+ fi
+ plugins="no"
+fi
+if test "$tcg" = "disabled" ; then
+ if test "$plugins" = "yes"; then
+ error_exit "Can't enable plugins on non-TCG builds"
+ fi
+ plugins="no"
+fi
if test "$static" = "yes" ; then
if test "$plugins" = "yes"; then
error_exit "static and plugins are mutually incompatible"
- else
- plugins="no"
fi
+ plugins="no"
fi
-test "$plugins" = "" && plugins=yes
-if test "$plugins" = "yes"; then
+if test "$plugins" != "no"; then
+ plugins=yes
subdirs="$subdirs contrib/plugins"
fi
@@ -1713,10 +1712,6 @@ mkdir -p tests/tcg
echo "# Automatically generated by configure - do not modify" > $config_host_mak
echo "SRC_PATH=$source_path" >> $config_host_mak
-if test "$plugins" = "yes" ; then
- echo "CONFIG_PLUGIN=y" >> $config_host_mak
-fi
-
tcg_tests_targets=
for target in $target_list; do
arch=${target%%-*}
diff --git a/scripts/meson-buildoptions.py b/scripts/meson-buildoptions.py
index 8d2e526132a..b787c84e914 100644
--- a/scripts/meson-buildoptions.py
+++ b/scripts/meson-buildoptions.py
@@ -44,6 +44,11 @@
"trace_file": "with-trace-file",
}
+# Options that configure autodetects, even though meson defines them as boolean
+AUTO_OPTIONS = {
+ "plugins",
+}
+
BUILTIN_OPTIONS = {
"b_coverage",
"b_lto",
@@ -168,6 +173,7 @@ def cli_metavar(opt):
def print_help(options):
print("meson_options_help() {")
+ feature_opts = []
for opt in sorted(options, key=cli_help_key):
key = cli_help_key(opt)
# The first section includes options that have an arguments,
@@ -176,7 +182,7 @@ def print_help(options):
metavar = cli_metavar(opt)
left = f"--{key}={metavar}"
help_line(left, opt, 27, True)
- elif opt["type"] == "boolean":
+ elif opt["type"] == "boolean" and opt["name"] not in AUTO_OPTIONS:
left = f"--{key}"
help_line(left, opt, 27, False)
elif allow_arg(opt):
@@ -185,16 +191,17 @@ def print_help(options):
else:
left = f"--{key}=CHOICE"
help_line(left, opt, 27, True)
+ else:
+ feature_opts.append(opt)
sh_print()
sh_print("Optional features, enabled with --enable-FEATURE and")
sh_print("disabled with --disable-FEATURE, default is enabled if available")
sh_print("(unless built with --without-default-features):")
sh_print()
- for opt in options:
- key = opt["name"].replace("_", "-")
- if opt["type"] != "boolean" and not allow_arg(opt):
- help_line(key, opt, 18, False)
+ for opt in sorted(feature_opts, key=cli_option):
+ key = cli_option(opt)
+ help_line(key, opt, 18, False)
print("}")
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index d4b89e6b443..22d69966606 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -40,7 +40,6 @@ 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'
@@ -149,6 +148,7 @@ meson_options_help() {
printf "%s\n" ' pa PulseAudio sound support'
printf "%s\n" ' parallels parallels image format support'
printf "%s\n" ' pipewire PipeWire sound support'
+ printf "%s\n" ' plugins TCG plugins via shared library loading'
printf "%s\n" ' png PNG support with libpng'
printf "%s\n" ' pvrdma Enable PVRDMA support'
printf "%s\n" ' qcow1 qcow1 image format support'
--
2.41.0
next prev parent reply other threads:[~2023-10-16 6:33 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-16 6:31 [PATCH 00/17] More build system cleanups, optional non-relocatable installs Paolo Bonzini
2023-10-16 6:31 ` [PATCH 01/17] meson: do not build shaders by default Paolo Bonzini
2023-10-16 9:04 ` Manos Pitsidianakis
2023-10-16 6:31 ` [PATCH 02/17] meson: do not use set10 Paolo Bonzini
2023-10-19 0:06 ` Richard Henderson
2023-10-16 6:31 ` [PATCH 03/17] meson, cutils: allow non-relocatable installs Paolo Bonzini
2023-10-16 7:12 ` Markus Armbruster
2023-10-16 21:29 ` Paolo Bonzini
2023-10-17 5:46 ` Markus Armbruster
2023-10-16 9:08 ` Manos Pitsidianakis
2023-10-16 9:48 ` Paolo Bonzini
2023-10-16 6:31 ` [PATCH 04/17] configure: clean up handling of CFI option Paolo Bonzini
2023-10-16 9:22 ` Philippe Mathieu-Daudé
2023-10-16 9:44 ` Paolo Bonzini
2023-10-16 13:33 ` Philippe Mathieu-Daudé
2023-10-16 6:31 ` [PATCH 05/17] hw/xen: cleanup sourcesets Paolo Bonzini
2023-10-16 6:31 ` [PATCH 06/17] hw/remote: move stub vfu_object_set_bus_irq out of stubs/ Paolo Bonzini
2023-10-16 6:31 ` [PATCH 07/17] tests/tcg/arm: move non-SVE tests out of conditional Paolo Bonzini
2023-10-16 6:31 ` [PATCH 08/17] configure, tests/tcg: simplify GDB conditionals Paolo Bonzini
2023-10-16 9:12 ` Manos Pitsidianakis
2023-10-16 6:31 ` Paolo Bonzini [this message]
2023-10-16 6:31 ` [PATCH 10/17] configure: clean up PIE option handling Paolo Bonzini
2023-10-16 6:31 ` [PATCH 11/17] configure: remove some dead cruft Paolo Bonzini
2023-10-16 9:32 ` Thomas Huth
2023-10-16 6:31 ` [PATCH 12/17] configure: move target-specific defaults to an external machine file Paolo Bonzini
2023-10-16 6:31 ` [PATCH 13/17] configure: move environment-specific defaults to config-meson.cross Paolo Bonzini
2023-10-16 6:31 ` [PATCH 14/17] configure: unify handling of several Debian cross containers Paolo Bonzini
2023-10-16 6:31 ` [PATCH 15/17] configure, meson: use command line options to configure qemu-ga Paolo Bonzini
2023-10-16 6:31 ` [PATCH 16/17] meson-buildoptions: document the data at the top Paolo Bonzini
2023-10-16 6:31 ` [PATCH 17/17] meson: add a note on why we use config_host for program paths Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231016063127.161204-10-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).