[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 4/5] configure: Get help text from meson_options.txt
From: |
Thomas Huth |
Subject: |
[PATCH v2 4/5] configure: Get help text from meson_options.txt |
Date: |
Fri, 3 Sep 2021 10:13:57 +0200 |
It's cumbersome to maintain the option help texts twice, once in the
"configure" script and once in meson_options.txt. So let's add some logic to
the configure script to read most of the help texts from meson_options.txt.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
configure | 95 ++++++++++++++++++-------------------------------------
1 file changed, 31 insertions(+), 64 deletions(-)
diff --git a/configure b/configure
index 5a3c6ae2ba..a92d11a491 100755
--- a/configure
+++ b/configure
@@ -1549,7 +1549,6 @@ Advanced options (experts only):
Default:trace-<pid>
--disable-slirp disable SLIRP userspace network connectivity
--enable-tcg-interpreter enable TCI (TCG with bytecode interpreter,
experimental and slow)
- --enable-malloc-trim enable libc malloc_trim() for memory optimization
--oss-lib path to OSS library
--cpu=CPU Build for host CPU [$cpu]
--with-coroutine=BACKEND coroutine backend. Supported options:
@@ -1576,16 +1575,13 @@ disabled with --disable-FEATURE, default is enabled if
available
user supported user emulation targets
linux-user all linux usermode emulation targets
bsd-user all BSD usermode emulation targets
- docs build documentation
guest-agent build the QEMU Guest Agent
- guest-agent-msi build guest agent Windows MSI installation package
pie Position Independent Executables
modules modules support (non-Windows)
module-upgrades try to load modules from alternate paths for upgrades
debug-tcg TCG debugging (default is disabled)
debug-info debugging information
lto Enable Link-Time Optimization.
- sparse sparse checker
safe-stack SafeStack Stack Smash Protection. Depends on
clang/llvm >= 3.7 and requires coroutine backend ucontext.
cfi Enable Control-Flow Integrity for indirect function calls.
@@ -1595,85 +1591,33 @@ disabled with --disable-FEATURE, default is enabled if
available
cfi-debug In case of a cfi violation, a message containing the line
that
triggered the error is written to stderr. After the error,
QEMU is still terminated with SIGILL
- gnutls GNUTLS cryptography support
- nettle nettle cryptography support
- gcrypt libgcrypt cryptography support
- auth-pam PAM access control
- sdl SDL UI
- sdl-image SDL Image support for icons
- gtk gtk UI
- vte vte support for the gtk UI
- curses curses UI
- iconv font glyph conversion support
- vnc VNC UI support
- vnc-sasl SASL encryption for VNC server
- vnc-jpeg JPEG lossy compression for VNC server
- vnc-png PNG compression for VNC server
- cocoa Cocoa UI (Mac OS X only)
- virtfs VirtFS
- virtiofsd build virtiofs daemon (virtiofsd)
- libudev Use libudev to enumerate host devices
- mpath Multipath persistent reservation passthrough
- xen xen backend driver support
- xen-pci-passthrough PCI passthrough support for Xen
- brlapi BrlAPI (Braile)
- curl curl connectivity
membarrier membarrier system call (for Linux 4.14+ or Windows)
fdt fdt device tree
- kvm KVM acceleration support
- hax HAX acceleration support
- hvf Hypervisor.framework acceleration support
- nvmm NVMM acceleration support
- whpx Windows Hypervisor Platform acceleration support
rdma Enable RDMA-based migration
pvrdma Enable PVRDMA support
vde support for vde network
netmap support for netmap network
linux-aio Linux AIO support
- linux-io-uring Linux io_uring support
- cap-ng libcap-ng support
- attr attr and xattr support
vhost-net vhost-net kernel acceleration support
vhost-vsock virtio sockets device support
vhost-scsi vhost-scsi kernel target support
vhost-crypto vhost-user-crypto backend support
vhost-kernel vhost kernel backend support
vhost-user vhost-user backend support
- vhost-user-blk-server vhost-user-blk server support
vhost-vdpa vhost-vdpa kernel backend support
- bpf BPF kernel support
spice spice
spice-protocol spice-protocol
- rbd rados block device (rbd)
- libiscsi iscsi support
- libnfs nfs support
- smartcard smartcard support (libcacard)
- u2f U2F support (u2f-emu)
- libusb libusb (for usb passthrough)
live-block-migration Block migration in the main migration stream
- usb-redir usb network redirection support
- lzo support of lzo compression library
- snappy support of snappy compression library
- bzip2 support of bzip2 compression library
- (for reading bzip2-compressed dmg images)
- lzfse support of lzfse compression library
- (for reading lzfse-compressed dmg images)
- zstd support for zstd compression library
- (for migration compression and qcow2 cluster compression)
- seccomp seccomp support
coroutine-pool coroutine freelist (better performance)
- glusterfs GlusterFS backend
tpm TPM support
libssh ssh block device support
numa libnuma support
- libxml2 for Parallels image format
tcmalloc tcmalloc support
jemalloc jemalloc support
avx2 AVX2 optimization support
avx512f AVX512F optimization support
replication replication support
opengl opengl support
- virglrenderer virgl rendering support
xfsctl xfsctl support
qom-cast-debug cast debugging support
tools build qemu-io, qemu-nbd and qemu-img tools
@@ -1688,18 +1632,41 @@ disabled with --disable-FEATURE, default is enabled if
available
crypto-afalg Linux AF_ALG crypto backend driver
capstone capstone disassembler support
debug-mutex mutex debugging support
- libpmem libpmem support
- xkbcommon xkbcommon support
rng-none dummy RNG, avoid using /dev/(u)random and getrandom()
- libdaxctl libdaxctl support
- fuse FUSE block device export
- fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports
- multiprocess Out of process device emulation support
gio libgio support
slirp-smbd use smbd (at path --smbd=*) in slirp networking
-
-NOTE: The object files are built at the place where configure is launched
EOF
+
+# Read remaining options and help text from meson_options.txt:
+current_feature=""
+while read first rest ; do
+ case "$first" in
+ option*)
+ case "$rest" in
+ *type*:*"'feature'"*)
+ current_feature=${first%\'*}
+ current_feature=${current_feature#*\'}
+ ;;
+ *)
+ current_feature=""
+ ;;
+ esac
+ ;;
+ description:)
+ if [ -n "$current_feature" ]; then
+ rest=${rest%\'*}
+ printf " %-15s %s\n" "$current_feature" "${rest#\'}"
+ fi
+ ;;
+ *)
+ current_feature=""
+ ;;
+ esac
+done < "$source_path/meson_options.txt" | sort
+
+echo
+echo "NOTE: The object files are built at the place where configure is
launched"
+
exit 0
fi
--
2.27.0
- [PATCH v2 0/5] Use meson_options.txt in the configure script, Thomas Huth, 2021/09/03
- [PATCH v2 2/5] meson_options.txt: Switch the default value for the vnc option to 'auto', Thomas Huth, 2021/09/03
- [PATCH v2 1/5] configure: Add the possibility to read options from meson_options.txt, Thomas Huth, 2021/09/03
- [PATCH v2 4/5] configure: Get help text from meson_options.txt,
Thomas Huth <=
- [PATCH v2 3/5] configure: Remove options that can be handled via meson_options.txt instead, Thomas Huth, 2021/09/03
- [PATCH v2 5/5] meson_options.txt: Document that "configure" reads this file, too, Thomas Huth, 2021/09/03