summaryrefslogtreecommitdiffstats
path: root/meson_options.txt
diff options
context:
space:
mode:
authorPaolo Bonzini2021-10-07 15:08:29 +0200
committerPaolo Bonzini2021-10-14 09:51:06 +0200
commit3b4da13293482134b81d71be656ec76beff73a76 (patch)
treea799bf5d234cc2059f91287f527e7a52d1352f5c /meson_options.txt
parentmeson-buildoptions: include list of tracing backends (diff)
downloadqemu-3b4da13293482134b81d71be656ec76beff73a76.tar.gz
qemu-3b4da13293482134b81d71be656ec76beff73a76.tar.xz
qemu-3b4da13293482134b81d71be656ec76beff73a76.zip
configure: automatically parse command line for meson -D options
Right now meson_options.txt lists about 90 options. Each option needs code in configure to parse it and pass the option down to Meson as a -D command-line argument; in addition the default must be duplicated between configure and meson_options.txt. This series tries to remove the code duplication by generating the case statement for those --enable and --disable options, as well as the corresponding help text. About 80% of the options can be handled completely by the new mechanism. Eight meson options are not of the --enable/--disable kind. Six more need to be parsed in configure for various reasons documented in the patch, but they still have their help automatically generated. The advantages are: - less code in configure - parsing and help is more consistent (for example --enable-blobs was not supported) - options are described entirely in one place, meson_options.txt. This make it more attractive to use Meson options instead of hand-crafted configure options and config-host.mak A few options change name: --enable-tcmalloc and --enable-jemalloc become --enable-malloc={tcmalloc,jemalloc}; --disable-blobs becomes --disable-install-blobs; --enable-trace-backend becomes --enable-trace-backends. However, the old names are allowed for backwards compatibility. Message-Id: <20211007130829.632254-19-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'meson_options.txt')
-rw-r--r--meson_options.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/meson_options.txt b/meson_options.txt
index 5a140af7f7..4ab4570125 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,7 @@
+# These options do not correspond to a --enable/--disable-* option
+# on the configure script command line. If you add more, list them in
+# scripts/meson-buildoptions.py's SKIP_OPTIONS constant too.
+
option('qemu_suffix', type : 'string', value: 'qemu',
description: 'Suffix for QEMU data/modules/config directories (can be empty)')
option('docdir', type : 'string', value : 'doc',
@@ -16,6 +20,10 @@ option('fuzzing_engine', type : 'string', value : '',
option('trace_file', type: 'string', value: 'trace',
description: 'Trace file prefix for simple backend')
+# Everything else can be set via --enable/--disable-* option
+# on the configure script command line. After adding an option
+# here make sure to run "make update-buildoptions".
+
option('docs', type : 'feature', value : 'auto',
description: 'Documentations build support')
option('fuzzing', type : 'boolean', value: false,