mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
* Meson conversions + introspection-based command line parser # gpg: Signature made Thu 14 Oct 2021 12:51:54 AM PDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] * remotes/bonzini/tags/for-upstream: (26 commits) configure: automatically parse command line for meson -D options meson-buildoptions: include list of tracing backends configure: prepare for auto-generated option parsing configure: accept "internal" for --enable-capstone/slirp/fdt configure: remove deprecated --{enable, disable}-git-update configure, meson: move more compiler checks to Meson configure: remove obsolete Solaris ar check configure, meson: move Spice configure handling to meson configure, meson: move netmap detection to meson configure, meson: move vde detection to meson configure, meson: move libaio check to meson.build configure, meson: move pthread_setname_np checks to Meson configure, meson: move remaining HAVE_* compiler tests to Meson meson: HAVE_GDB_BIN is not used by C code configure, meson: remove CONFIG_GCOV from config-host.mak configure, meson: get HOST_WORDS_BIGENDIAN via the machine object configure, meson: move CONFIG_HOST_DSOSUF to Meson trace: move configuration from configure to Meson trace: simple: pass trace_file unmodified to config-host.h configure, meson: move fuzzing configuration to Meson ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
@@ -41,3 +41,7 @@ config PVRDMA
|
||||
config MULTIPROCESS_ALLOWED
|
||||
bool
|
||||
imply MULTIPROCESS
|
||||
|
||||
config FUZZ
|
||||
bool
|
||||
select SPARSE_MEM
|
||||
|
||||
@@ -87,7 +87,7 @@ x := $(shell rm -rf meson-private meson-info meson-logs)
|
||||
endif
|
||||
|
||||
# 1. ensure config-host.mak is up-to-date
|
||||
config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION
|
||||
config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/scripts/meson-buildoptions.sh $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION
|
||||
@echo config-host.mak is out-of-date, running configure
|
||||
@if test -f meson-private/coredata.dat; then \
|
||||
./config.status --skip-meson; \
|
||||
@@ -124,6 +124,12 @@ ifneq ($(MESON),)
|
||||
Makefile.mtest: build.ninja scripts/mtest2make.py
|
||||
$(MESON) introspect --targets --tests --benchmarks | $(PYTHON) scripts/mtest2make.py > $@
|
||||
-include Makefile.mtest
|
||||
|
||||
.PHONY: update-buildoptions
|
||||
all update-buildoptions: $(SRC_PATH)/scripts/meson-buildoptions.sh
|
||||
$(SRC_PATH)/scripts/meson-buildoptions.sh: $(SRC_PATH)/meson_options.txt
|
||||
$(MESON) introspect --buildoptions $(SRC_PATH)/meson.build | $(PYTHON) \
|
||||
scripts/meson-buildoptions.py > $@.tmp && mv $@.tmp $@
|
||||
endif
|
||||
|
||||
# 4. Rules to bridge to other makefiles
|
||||
|
||||
+11
-12
@@ -7,23 +7,22 @@ softmmu_ss.add(files(
|
||||
'wavcapture.c',
|
||||
))
|
||||
|
||||
softmmu_ss.add(when: [coreaudio, 'CONFIG_AUDIO_COREAUDIO'], if_true: files('coreaudio.c'))
|
||||
softmmu_ss.add(when: [dsound, 'CONFIG_AUDIO_DSOUND'], if_true: files('dsoundaudio.c'))
|
||||
softmmu_ss.add(when: ['CONFIG_AUDIO_WIN_INT'], if_true: files('audio_win_int.c'))
|
||||
softmmu_ss.add(when: coreaudio, if_true: files('coreaudio.c'))
|
||||
softmmu_ss.add(when: dsound, if_true: files('dsoundaudio.c', 'audio_win_int.c'))
|
||||
|
||||
audio_modules = {}
|
||||
foreach m : [
|
||||
['CONFIG_AUDIO_ALSA', 'alsa', alsa, 'alsaaudio.c'],
|
||||
['CONFIG_AUDIO_OSS', 'oss', oss, 'ossaudio.c'],
|
||||
['CONFIG_AUDIO_PA', 'pa', pulse, 'paaudio.c'],
|
||||
['CONFIG_AUDIO_SDL', 'sdl', sdl, 'sdlaudio.c'],
|
||||
['CONFIG_AUDIO_JACK', 'jack', jack, 'jackaudio.c'],
|
||||
['CONFIG_SPICE', 'spice', spice, 'spiceaudio.c']
|
||||
['alsa', alsa, files('alsaaudio.c')],
|
||||
['oss', oss, files('ossaudio.c')],
|
||||
['pa', pulse, files('paaudio.c')],
|
||||
['sdl', sdl, files('sdlaudio.c')],
|
||||
['jack', jack, files('jackaudio.c')],
|
||||
['spice', spice, files('spiceaudio.c')]
|
||||
]
|
||||
if config_host.has_key(m[0])
|
||||
if m[1].found()
|
||||
module_ss = ss.source_set()
|
||||
module_ss.add(when: m[2], if_true: files(m[3]))
|
||||
audio_modules += {m[1] : module_ss}
|
||||
module_ss.add(m[1], m[2])
|
||||
audio_modules += {m[0] : module_ss}
|
||||
endif
|
||||
endforeach
|
||||
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), coref, iokit
|
||||
block_ss.add(when: libiscsi, if_true: files('iscsi-opts.c'))
|
||||
block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
|
||||
block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
|
||||
block_ss.add(when: ['CONFIG_LINUX_AIO', libaio], if_true: files('linux-aio.c'))
|
||||
block_ss.add(when: libaio, if_true: files('linux-aio.c'))
|
||||
block_ss.add(when: linux_io_uring, if_true: files('io_uring.c'))
|
||||
|
||||
block_modules = {}
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ if brlapi.found()
|
||||
chardev_modules += { 'baum': module_ss }
|
||||
endif
|
||||
|
||||
if config_host.has_key('CONFIG_SPICE')
|
||||
if spice.found()
|
||||
module_ss = ss.source_set()
|
||||
module_ss.add(when: [spice], if_true: files('spice.c'))
|
||||
chardev_modules += { 'spice': module_ss }
|
||||
|
||||
+67
-65
@@ -42,73 +42,21 @@ perform a build:
|
||||
../configure
|
||||
make
|
||||
|
||||
For now, checks on the compilation environment are found in configure
|
||||
rather than meson.build, though this is expected to change. The command
|
||||
line is parsed in the configure script and, whenever needed, converted
|
||||
into the appropriate options to Meson.
|
||||
|
||||
New checks should be added to Meson, which usually comprises the
|
||||
following tasks:
|
||||
|
||||
- Add a Meson build option to meson_options.txt.
|
||||
|
||||
- Add support to the command line arg parser to handle any new
|
||||
``--enable-XXX``/``--disable-XXX`` flags required by the feature.
|
||||
|
||||
- Add information to the help output message to report on the new
|
||||
feature flag.
|
||||
|
||||
- Add code to perform the actual feature check.
|
||||
|
||||
- Add code to include the feature status in ``config-host.h``
|
||||
|
||||
- Add code to print out the feature status in the configure summary
|
||||
upon completion.
|
||||
|
||||
|
||||
Taking the probe for SDL2_Image as an example, we have the following pieces
|
||||
in configure::
|
||||
|
||||
# Initial variable state
|
||||
sdl_image=auto
|
||||
|
||||
..snip..
|
||||
|
||||
# Configure flag processing
|
||||
--disable-sdl-image) sdl_image=disabled
|
||||
;;
|
||||
--enable-sdl-image) sdl_image=enabled
|
||||
;;
|
||||
|
||||
..snip..
|
||||
|
||||
# Help output feature message
|
||||
sdl-image SDL Image support for icons
|
||||
|
||||
..snip..
|
||||
|
||||
# Meson invocation
|
||||
-Dsdl_image=$sdl_image
|
||||
|
||||
In meson_options.txt::
|
||||
|
||||
option('sdl', type : 'feature', value : 'auto',
|
||||
description: 'SDL Image support for icons')
|
||||
|
||||
In meson.build::
|
||||
|
||||
# Detect dependency
|
||||
sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
|
||||
method: 'pkg-config',
|
||||
kwargs: static_kwargs)
|
||||
|
||||
# Create config-host.h (if applicable)
|
||||
config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
|
||||
|
||||
# Summary
|
||||
summary_info += {'SDL image support': sdl_image.found()}
|
||||
The configure script automatically recognizes
|
||||
command line options for which a same-named Meson option exists;
|
||||
dashes in the command line are replaced with underscores.
|
||||
|
||||
Many checks on the compilation environment are still found in configure
|
||||
rather than `meson.build`, but new checks should be added directly to
|
||||
`meson.build`.
|
||||
|
||||
Patches are also welcome to move existing checks from the configure
|
||||
phase to `meson.build`. When doing so, ensure that `meson.build` does
|
||||
not use anymore the keys that you have removed from `config-host.mak`.
|
||||
Typically these will be replaced in `meson.build` by boolean variables,
|
||||
``get_option('optname')`` invocations, or `dep.found()` expressions.
|
||||
In general, the remaining checks have little or no interdependencies,
|
||||
so they can be moved one by one.
|
||||
|
||||
Helper functions
|
||||
----------------
|
||||
@@ -335,6 +283,60 @@ new target, or enabling new devices or hardware for a particular
|
||||
system/userspace emulation target
|
||||
|
||||
|
||||
Adding checks
|
||||
-------------
|
||||
|
||||
New checks should be added to Meson. Compiler checks can be as simple as
|
||||
the following::
|
||||
|
||||
config_host_data.set('HAVE_BTRFS_H', cc.has_header('linux/btrfs.h'))
|
||||
|
||||
A more complex task such as adding a new dependency usually
|
||||
comprises the following tasks:
|
||||
|
||||
- Add a Meson build option to meson_options.txt.
|
||||
|
||||
- Add code to perform the actual feature check.
|
||||
|
||||
- Add code to include the feature status in `config-host.h`
|
||||
|
||||
- Add code to print out the feature status in the configure summary
|
||||
upon completion.
|
||||
|
||||
Taking the probe for SDL2_Image as an example, we have the following
|
||||
in ``meson_options.txt``::
|
||||
|
||||
option('sdl_image', type : 'feature', value : 'auto',
|
||||
description: 'SDL Image support for icons')
|
||||
|
||||
Unless the option was given a non-``auto`` value (on the configure
|
||||
command line), the detection code must be performed only if the
|
||||
dependency will be used::
|
||||
|
||||
sdl_image = not_found
|
||||
if not get_option('sdl_image').auto() or have_system
|
||||
sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
|
||||
method: 'pkg-config',
|
||||
static: enable_static)
|
||||
endif
|
||||
|
||||
This avoids warnings on static builds of user-mode emulators, for example.
|
||||
Most of the libraries used by system-mode emulators are not available for
|
||||
static linking.
|
||||
|
||||
The other supporting code is generally simple::
|
||||
|
||||
# Create config-host.h (if applicable)
|
||||
config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
|
||||
|
||||
# Summary
|
||||
summary_info += {'SDL image support': sdl_image.found()}
|
||||
|
||||
For the configure script to parse the new option, the
|
||||
``scripts/meson-buildoptions.sh`` file must be up-to-date; ``make
|
||||
update-buildoptions`` (or just `make`) will take care of updating it.
|
||||
|
||||
|
||||
Support scripts
|
||||
---------------
|
||||
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ if build_docs
|
||||
'qemu-nbd.8': (have_tools ? 'man8' : ''),
|
||||
'qemu-pr-helper.8': (have_tools ? 'man8' : ''),
|
||||
'qemu-storage-daemon.1': (have_tools ? 'man1' : ''),
|
||||
'qemu-trace-stap.1': (config_host.has_key('CONFIG_TRACE_SYSTEMTAP') ? 'man1' : ''),
|
||||
'qemu-trace-stap.1': (stap.found() ? 'man1' : ''),
|
||||
'virtfs-proxy-helper.1': (have_virtfs_proxy_helper ? 'man1' : ''),
|
||||
'virtiofsd.1': (have_virtiofsd ? 'man1' : ''),
|
||||
'qemu.1': 'man1',
|
||||
|
||||
@@ -8,3 +8,6 @@ config MEM_DEVICE
|
||||
config NVDIMM
|
||||
bool
|
||||
select MEM_DEVICE
|
||||
|
||||
config SPARSE_MEM
|
||||
bool
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@ mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
|
||||
|
||||
softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
|
||||
|
||||
softmmu_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_SPARSE_MEM', if_true: files('sparse-mem.c'))
|
||||
|
||||
+365
-56
File diff suppressed because it is too large
Load Diff
+45
-1
@@ -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',
|
||||
@@ -6,11 +10,24 @@ option('qemu_firmwarepath', type : 'string', value : '',
|
||||
description: 'search PATH for firmware files')
|
||||
option('sphinx_build', type : 'string', value : '',
|
||||
description: 'Use specified sphinx-build [$sphinx_build] for building document (default to be empty)')
|
||||
|
||||
option('default_devices', type : 'boolean', value : true,
|
||||
description: 'Include a default selection of devices in emulators')
|
||||
option('audio_drv_list', type: 'array', value: ['default'],
|
||||
choices: ['alsa', 'coreaudio', 'default', 'dsound', 'jack', 'oss', 'pa', 'sdl'],
|
||||
description: 'Set audio driver list')
|
||||
option('fuzzing_engine', type : 'string', value : '',
|
||||
description: 'fuzzing engine library for OSS-Fuzz')
|
||||
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,
|
||||
description: 'build fuzzing targets')
|
||||
option('gettext', type : 'feature', value : 'auto',
|
||||
description: 'Localization of the GTK+ user interface')
|
||||
option('install_blobs', type : 'boolean', value : true,
|
||||
@@ -94,6 +111,8 @@ option('libusb', type : 'feature', value : 'auto',
|
||||
description: 'libusb support for USB passthrough')
|
||||
option('libxml2', type : 'feature', value : 'auto',
|
||||
description: 'libxml2 support for Parallels image format')
|
||||
option('linux_aio', type : 'feature', value : 'auto',
|
||||
description: 'Linux AIO support')
|
||||
option('linux_io_uring', type : 'feature', value : 'auto',
|
||||
description: 'Linux io_uring support')
|
||||
option('lzfse', type : 'feature', value : 'auto',
|
||||
@@ -114,10 +133,18 @@ option('smartcard', type : 'feature', value : 'auto',
|
||||
description: 'CA smartcard emulation support')
|
||||
option('snappy', type : 'feature', value : 'auto',
|
||||
description: 'snappy compression support')
|
||||
option('spice', type : 'feature', value : 'auto',
|
||||
description: 'Spice server support')
|
||||
option('spice_protocol', type : 'feature', value : 'auto',
|
||||
description: 'Spice protocol support')
|
||||
option('u2f', type : 'feature', value : 'auto',
|
||||
description: 'U2F emulation support')
|
||||
option('usb_redir', type : 'feature', value : 'auto',
|
||||
description: 'libusbredir support')
|
||||
option('netmap', type : 'feature', value : 'auto',
|
||||
description: 'netmap network backend support')
|
||||
option('vde', type : 'feature', value : 'auto',
|
||||
description: 'vde network backend support')
|
||||
option('virglrenderer', type : 'feature', value : 'auto',
|
||||
description: 'virgl rendering support')
|
||||
option('vnc', type : 'feature', value : 'auto',
|
||||
@@ -139,6 +166,23 @@ option('fuse', type: 'feature', value: 'auto',
|
||||
option('fuse_lseek', type : 'feature', value : 'auto',
|
||||
description: 'SEEK_HOLE/SEEK_DATA support for FUSE exports')
|
||||
|
||||
option('trace_backends', type: 'array', value: ['log'],
|
||||
choices: ['dtrace', 'ftrace', 'log', 'nop', 'simple', 'syslog', 'ust'],
|
||||
description: 'Set available tracing backends')
|
||||
|
||||
option('alsa', type: 'feature', value: 'auto',
|
||||
description: 'ALSA sound support')
|
||||
option('coreaudio', type: 'feature', value: 'auto',
|
||||
description: 'CoreAudio sound support')
|
||||
option('dsound', type: 'feature', value: 'auto',
|
||||
description: 'DirectSound sound support')
|
||||
option('jack', type: 'feature', value: 'auto',
|
||||
description: 'JACK sound support')
|
||||
option('oss', type: 'feature', value: 'auto',
|
||||
description: 'OSS sound support')
|
||||
option('pa', type: 'feature', value: 'auto',
|
||||
description: 'PulseAudio sound support')
|
||||
|
||||
option('vhost_user_blk_server', type: 'feature', value: 'auto',
|
||||
description: 'build vhost-user-blk server')
|
||||
option('virtfs', type: 'feature', value: 'auto',
|
||||
|
||||
+4
-2
@@ -20,8 +20,10 @@ softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('filter-replay.c'))
|
||||
|
||||
softmmu_ss.add(when: 'CONFIG_L2TPV3', if_true: files('l2tpv3.c'))
|
||||
softmmu_ss.add(when: slirp, if_true: files('slirp.c'))
|
||||
softmmu_ss.add(when: ['CONFIG_VDE', vde], if_true: files('vde.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_NETMAP', if_true: files('netmap.c'))
|
||||
softmmu_ss.add(when: vde, if_true: files('vde.c'))
|
||||
if have_netmap
|
||||
softmmu_ss.add(files('netmap.c'))
|
||||
endif
|
||||
vhost_user_ss = ss.source_set()
|
||||
vhost_user_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('vhost-user.c'), if_false: files('vhost-user-stub.c'))
|
||||
softmmu_ss.add_all(when: 'CONFIG_VHOST_NET_USER', if_true: vhost_user_ss)
|
||||
|
||||
Executable
+172
@@ -0,0 +1,172 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
# Generate configure command line options handling code, based on Meson's
|
||||
# user build options introspection data
|
||||
#
|
||||
# Copyright (C) 2021 Red Hat, Inc.
|
||||
#
|
||||
# Author: Paolo Bonzini <pbonzini@redhat.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
import textwrap
|
||||
import shlex
|
||||
import sys
|
||||
|
||||
SKIP_OPTIONS = {
|
||||
"audio_drv_list",
|
||||
"default_devices",
|
||||
"docdir",
|
||||
"fuzzing_engine",
|
||||
"qemu_firmwarepath",
|
||||
"qemu_suffix",
|
||||
"sphinx_build",
|
||||
"trace_file",
|
||||
}
|
||||
|
||||
LINE_WIDTH = 76
|
||||
|
||||
|
||||
# Convert the default value of an option to the string used in
|
||||
# the help message
|
||||
def value_to_help(value):
|
||||
if isinstance(value, list):
|
||||
return ",".join(value)
|
||||
if isinstance(value, bool):
|
||||
return "enabled" if value else "disabled"
|
||||
return str(value)
|
||||
|
||||
|
||||
def wrap(left, text, indent):
|
||||
spaces = " " * indent
|
||||
if len(left) >= indent:
|
||||
yield left
|
||||
left = spaces
|
||||
else:
|
||||
left = (left + spaces)[0:indent]
|
||||
yield from textwrap.wrap(
|
||||
text, width=LINE_WIDTH, initial_indent=left, subsequent_indent=spaces
|
||||
)
|
||||
|
||||
|
||||
def sh_print(line=""):
|
||||
print(' printf "%s\\n"', shlex.quote(line))
|
||||
|
||||
|
||||
def help_line(left, opt, indent, long):
|
||||
right = f'{opt["description"]}'
|
||||
if long:
|
||||
value = value_to_help(opt["value"])
|
||||
if value != "auto":
|
||||
right += f" [{value}]"
|
||||
if "choices" in opt and long:
|
||||
choices = "/".join(sorted(opt["choices"]))
|
||||
right += f" (choices: {choices})"
|
||||
for x in wrap(" " + left, right, indent):
|
||||
sh_print(x)
|
||||
|
||||
|
||||
# Return whether the option (a dictionary) can be used with
|
||||
# arguments. Booleans can never be used with arguments;
|
||||
# combos allow an argument only if they accept other values
|
||||
# than "auto", "enabled", and "disabled".
|
||||
def allow_arg(opt):
|
||||
if opt["type"] == "boolean":
|
||||
return False
|
||||
if opt["type"] != "combo":
|
||||
return True
|
||||
return not (set(opt["choices"]) <= {"auto", "disabled", "enabled"})
|
||||
|
||||
|
||||
def load_options(json):
|
||||
json = [
|
||||
x
|
||||
for x in json
|
||||
if x["section"] == "user"
|
||||
and ":" not in x["name"]
|
||||
and x["name"] not in SKIP_OPTIONS
|
||||
]
|
||||
return sorted(json, key=lambda x: x["name"])
|
||||
|
||||
|
||||
def print_help(options):
|
||||
print("meson_options_help() {")
|
||||
for opt in options:
|
||||
key = opt["name"].replace("_", "-")
|
||||
# The first section includes options that have an arguments,
|
||||
# and booleans (i.e., only one of enable/disable makes sense)
|
||||
if opt["type"] == "boolean":
|
||||
left = f"--disable-{key}" if opt["value"] else f"--enable-{key}"
|
||||
help_line(left, opt, 27, False)
|
||||
elif allow_arg(opt):
|
||||
if opt["type"] == "combo" and "enabled" in opt["choices"]:
|
||||
left = f"--enable-{key}[=CHOICE]"
|
||||
else:
|
||||
left = f"--enable-{key}=CHOICE"
|
||||
help_line(left, opt, 27, True)
|
||||
|
||||
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)
|
||||
print("}")
|
||||
|
||||
|
||||
def print_parse(options):
|
||||
print("_meson_option_parse() {")
|
||||
print(" case $1 in")
|
||||
for opt in options:
|
||||
key = opt["name"].replace("_", "-")
|
||||
name = opt["name"]
|
||||
if opt["type"] == "boolean":
|
||||
print(f' --enable-{key}) printf "%s" -D{name}=true ;;')
|
||||
print(f' --disable-{key}) printf "%s" -D{name}=false ;;')
|
||||
else:
|
||||
if opt["type"] == "combo" and "enabled" in opt["choices"]:
|
||||
print(f' --enable-{key}) printf "%s" -D{name}=enabled ;;')
|
||||
if opt["type"] == "combo" and "disabled" in opt["choices"]:
|
||||
print(f' --disable-{key}) printf "%s" -D{name}=disabled ;;')
|
||||
if allow_arg(opt):
|
||||
print(f' --enable-{key}=*) quote_sh "-D{name}=$2" ;;')
|
||||
print(" *) return 1 ;;")
|
||||
print(" esac")
|
||||
print("}")
|
||||
|
||||
|
||||
def fixup_options(options):
|
||||
# Meson <= 0.60 does not include the choices in array options, fix that up
|
||||
for opt in options:
|
||||
if opt["name"] == "trace_backends":
|
||||
opt["choices"] = [
|
||||
"dtrace",
|
||||
"ftrace",
|
||||
"log",
|
||||
"nop",
|
||||
"simple",
|
||||
"syslog",
|
||||
"ust",
|
||||
]
|
||||
|
||||
|
||||
options = load_options(json.load(sys.stdin))
|
||||
fixup_options(options)
|
||||
print("# This file is generated by meson-buildoptions.py, do not edit!")
|
||||
print_help(options)
|
||||
print_parse(options)
|
||||
@@ -0,0 +1,270 @@
|
||||
# This file is generated by meson-buildoptions.py, do not edit!
|
||||
meson_options_help() {
|
||||
printf "%s\n" ' --enable-capstone[=CHOICE]'
|
||||
printf "%s\n" ' Whether and how to find the capstone library'
|
||||
printf "%s\n" ' (choices: auto/disabled/enabled/internal/system)'
|
||||
printf "%s\n" ' --enable-cfi Control-Flow Integrity (CFI)'
|
||||
printf "%s\n" ' --enable-cfi-debug Verbose errors in case of CFI violation'
|
||||
printf "%s\n" ' --enable-fdt[=CHOICE] Whether and how to find the libfdt library'
|
||||
printf "%s\n" ' (choices: auto/disabled/enabled/internal/system)'
|
||||
printf "%s\n" ' --enable-fuzzing build fuzzing targets'
|
||||
printf "%s\n" ' --disable-install-blobs install provided firmware blobs'
|
||||
printf "%s\n" ' --enable-malloc=CHOICE choose memory allocator to use [system] (choices:'
|
||||
printf "%s\n" ' jemalloc/system/tcmalloc)'
|
||||
printf "%s\n" ' --enable-slirp[=CHOICE] Whether and how to find the slirp library'
|
||||
printf "%s\n" ' (choices: auto/disabled/enabled/internal/system)'
|
||||
printf "%s\n" ' --enable-tcg-interpreter TCG with bytecode interpreter (experimental and'
|
||||
printf "%s\n" ' slow)'
|
||||
printf "%s\n" ' --enable-trace-backends=CHOICE'
|
||||
printf "%s\n" ' Set available tracing backends [log] (choices:'
|
||||
printf "%s\n" ' dtrace/ftrace/log/nop/simple/syslog/ust)'
|
||||
printf "%s\n" ''
|
||||
printf "%s\n" 'Optional features, enabled with --enable-FEATURE and'
|
||||
printf "%s\n" 'disabled with --disable-FEATURE, default is enabled if available'
|
||||
printf "%s\n" '(unless built with --without-default-features):'
|
||||
printf "%s\n" ''
|
||||
printf "%s\n" ' alsa ALSA sound support'
|
||||
printf "%s\n" ' attr attr/xattr support'
|
||||
printf "%s\n" ' auth-pam PAM access control'
|
||||
printf "%s\n" ' bpf eBPF support'
|
||||
printf "%s\n" ' brlapi brlapi character device driver'
|
||||
printf "%s\n" ' bzip2 bzip2 support for DMG images'
|
||||
printf "%s\n" ' cap-ng cap_ng support'
|
||||
printf "%s\n" ' cocoa Cocoa user interface (macOS only)'
|
||||
printf "%s\n" ' coreaudio CoreAudio sound support'
|
||||
printf "%s\n" ' curl CURL block device driver'
|
||||
printf "%s\n" ' curses curses UI'
|
||||
printf "%s\n" ' docs Documentations build support'
|
||||
printf "%s\n" ' dsound DirectSound sound support'
|
||||
printf "%s\n" ' fuse FUSE block device export'
|
||||
printf "%s\n" ' fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports'
|
||||
printf "%s\n" ' gcrypt libgcrypt cryptography support'
|
||||
printf "%s\n" ' gettext Localization of the GTK+ user interface'
|
||||
printf "%s\n" ' glusterfs Glusterfs block device driver'
|
||||
printf "%s\n" ' gnutls GNUTLS cryptography support'
|
||||
printf "%s\n" ' gtk GTK+ user interface'
|
||||
printf "%s\n" ' guest-agent-msi Build MSI package for the QEMU Guest Agent'
|
||||
printf "%s\n" ' hax HAX acceleration support'
|
||||
printf "%s\n" ' hvf HVF acceleration support'
|
||||
printf "%s\n" ' iconv Font glyph conversion support'
|
||||
printf "%s\n" ' jack JACK sound support'
|
||||
printf "%s\n" ' kvm KVM acceleration support'
|
||||
printf "%s\n" ' libdaxctl libdaxctl support'
|
||||
printf "%s\n" ' libiscsi libiscsi userspace initiator'
|
||||
printf "%s\n" ' libnfs libnfs block device driver'
|
||||
printf "%s\n" ' libpmem libpmem support'
|
||||
printf "%s\n" ' libudev Use libudev to enumerate host devices'
|
||||
printf "%s\n" ' libusb libusb support for USB passthrough'
|
||||
printf "%s\n" ' libxml2 libxml2 support for Parallels image format'
|
||||
printf "%s\n" ' linux-aio Linux AIO support'
|
||||
printf "%s\n" ' linux-io-uring Linux io_uring support'
|
||||
printf "%s\n" ' lzfse lzfse support for DMG images'
|
||||
printf "%s\n" ' lzo lzo compression support'
|
||||
printf "%s\n" ' malloc-trim enable libc malloc_trim() for memory optimization'
|
||||
printf "%s\n" ' mpath Multipath persistent reservation passthrough'
|
||||
printf "%s\n" ' multiprocess Out of process device emulation support'
|
||||
printf "%s\n" ' netmap netmap network backend support'
|
||||
printf "%s\n" ' nettle nettle cryptography support'
|
||||
printf "%s\n" ' nvmm NVMM acceleration support'
|
||||
printf "%s\n" ' oss OSS sound support'
|
||||
printf "%s\n" ' pa PulseAudio sound support'
|
||||
printf "%s\n" ' rbd Ceph block device driver'
|
||||
printf "%s\n" ' sdl SDL user interface'
|
||||
printf "%s\n" ' sdl-image SDL Image support for icons'
|
||||
printf "%s\n" ' seccomp seccomp support'
|
||||
printf "%s\n" ' smartcard CA smartcard emulation support'
|
||||
printf "%s\n" ' snappy snappy compression support'
|
||||
printf "%s\n" ' sparse sparse checker'
|
||||
printf "%s\n" ' spice Spice server support'
|
||||
printf "%s\n" ' spice-protocol Spice protocol support'
|
||||
printf "%s\n" ' tcg TCG support'
|
||||
printf "%s\n" ' u2f U2F emulation support'
|
||||
printf "%s\n" ' usb-redir libusbredir support'
|
||||
printf "%s\n" ' vde vde network backend support'
|
||||
printf "%s\n" ' vhost-user-blk-server'
|
||||
printf "%s\n" ' build vhost-user-blk server'
|
||||
printf "%s\n" ' virglrenderer virgl rendering support'
|
||||
printf "%s\n" ' virtfs virtio-9p support'
|
||||
printf "%s\n" ' virtiofsd build virtiofs daemon (virtiofsd)'
|
||||
printf "%s\n" ' vnc VNC server'
|
||||
printf "%s\n" ' vnc-jpeg JPEG lossy compression for VNC server'
|
||||
printf "%s\n" ' vnc-png PNG compression for VNC server'
|
||||
printf "%s\n" ' vnc-sasl SASL authentication for VNC server'
|
||||
printf "%s\n" ' vte vte support for the gtk UI'
|
||||
printf "%s\n" ' whpx WHPX acceleration support'
|
||||
printf "%s\n" ' xen Xen backend support'
|
||||
printf "%s\n" ' xen-pci-passthrough'
|
||||
printf "%s\n" ' Xen PCI passthrough support'
|
||||
printf "%s\n" ' xkbcommon xkbcommon support'
|
||||
printf "%s\n" ' zstd zstd compression support'
|
||||
}
|
||||
_meson_option_parse() {
|
||||
case $1 in
|
||||
--enable-alsa) printf "%s" -Dalsa=enabled ;;
|
||||
--disable-alsa) printf "%s" -Dalsa=disabled ;;
|
||||
--enable-attr) printf "%s" -Dattr=enabled ;;
|
||||
--disable-attr) printf "%s" -Dattr=disabled ;;
|
||||
--enable-auth-pam) printf "%s" -Dauth_pam=enabled ;;
|
||||
--disable-auth-pam) printf "%s" -Dauth_pam=disabled ;;
|
||||
--enable-bpf) printf "%s" -Dbpf=enabled ;;
|
||||
--disable-bpf) printf "%s" -Dbpf=disabled ;;
|
||||
--enable-brlapi) printf "%s" -Dbrlapi=enabled ;;
|
||||
--disable-brlapi) printf "%s" -Dbrlapi=disabled ;;
|
||||
--enable-bzip2) printf "%s" -Dbzip2=enabled ;;
|
||||
--disable-bzip2) printf "%s" -Dbzip2=disabled ;;
|
||||
--enable-cap-ng) printf "%s" -Dcap_ng=enabled ;;
|
||||
--disable-cap-ng) printf "%s" -Dcap_ng=disabled ;;
|
||||
--enable-capstone) printf "%s" -Dcapstone=enabled ;;
|
||||
--disable-capstone) printf "%s" -Dcapstone=disabled ;;
|
||||
--enable-capstone=*) quote_sh "-Dcapstone=$2" ;;
|
||||
--enable-cfi) printf "%s" -Dcfi=true ;;
|
||||
--disable-cfi) printf "%s" -Dcfi=false ;;
|
||||
--enable-cfi-debug) printf "%s" -Dcfi_debug=true ;;
|
||||
--disable-cfi-debug) printf "%s" -Dcfi_debug=false ;;
|
||||
--enable-cocoa) printf "%s" -Dcocoa=enabled ;;
|
||||
--disable-cocoa) printf "%s" -Dcocoa=disabled ;;
|
||||
--enable-coreaudio) printf "%s" -Dcoreaudio=enabled ;;
|
||||
--disable-coreaudio) printf "%s" -Dcoreaudio=disabled ;;
|
||||
--enable-curl) printf "%s" -Dcurl=enabled ;;
|
||||
--disable-curl) printf "%s" -Dcurl=disabled ;;
|
||||
--enable-curses) printf "%s" -Dcurses=enabled ;;
|
||||
--disable-curses) printf "%s" -Dcurses=disabled ;;
|
||||
--enable-docs) printf "%s" -Ddocs=enabled ;;
|
||||
--disable-docs) printf "%s" -Ddocs=disabled ;;
|
||||
--enable-dsound) printf "%s" -Ddsound=enabled ;;
|
||||
--disable-dsound) printf "%s" -Ddsound=disabled ;;
|
||||
--enable-fdt) printf "%s" -Dfdt=enabled ;;
|
||||
--disable-fdt) printf "%s" -Dfdt=disabled ;;
|
||||
--enable-fdt=*) quote_sh "-Dfdt=$2" ;;
|
||||
--enable-fuse) printf "%s" -Dfuse=enabled ;;
|
||||
--disable-fuse) printf "%s" -Dfuse=disabled ;;
|
||||
--enable-fuse-lseek) printf "%s" -Dfuse_lseek=enabled ;;
|
||||
--disable-fuse-lseek) printf "%s" -Dfuse_lseek=disabled ;;
|
||||
--enable-fuzzing) printf "%s" -Dfuzzing=true ;;
|
||||
--disable-fuzzing) printf "%s" -Dfuzzing=false ;;
|
||||
--enable-gcrypt) printf "%s" -Dgcrypt=enabled ;;
|
||||
--disable-gcrypt) printf "%s" -Dgcrypt=disabled ;;
|
||||
--enable-gettext) printf "%s" -Dgettext=enabled ;;
|
||||
--disable-gettext) printf "%s" -Dgettext=disabled ;;
|
||||
--enable-glusterfs) printf "%s" -Dglusterfs=enabled ;;
|
||||
--disable-glusterfs) printf "%s" -Dglusterfs=disabled ;;
|
||||
--enable-gnutls) printf "%s" -Dgnutls=enabled ;;
|
||||
--disable-gnutls) printf "%s" -Dgnutls=disabled ;;
|
||||
--enable-gtk) printf "%s" -Dgtk=enabled ;;
|
||||
--disable-gtk) printf "%s" -Dgtk=disabled ;;
|
||||
--enable-guest-agent-msi) printf "%s" -Dguest_agent_msi=enabled ;;
|
||||
--disable-guest-agent-msi) printf "%s" -Dguest_agent_msi=disabled ;;
|
||||
--enable-hax) printf "%s" -Dhax=enabled ;;
|
||||
--disable-hax) printf "%s" -Dhax=disabled ;;
|
||||
--enable-hvf) printf "%s" -Dhvf=enabled ;;
|
||||
--disable-hvf) printf "%s" -Dhvf=disabled ;;
|
||||
--enable-iconv) printf "%s" -Diconv=enabled ;;
|
||||
--disable-iconv) printf "%s" -Diconv=disabled ;;
|
||||
--enable-install-blobs) printf "%s" -Dinstall_blobs=true ;;
|
||||
--disable-install-blobs) printf "%s" -Dinstall_blobs=false ;;
|
||||
--enable-jack) printf "%s" -Djack=enabled ;;
|
||||
--disable-jack) printf "%s" -Djack=disabled ;;
|
||||
--enable-kvm) printf "%s" -Dkvm=enabled ;;
|
||||
--disable-kvm) printf "%s" -Dkvm=disabled ;;
|
||||
--enable-libdaxctl) printf "%s" -Dlibdaxctl=enabled ;;
|
||||
--disable-libdaxctl) printf "%s" -Dlibdaxctl=disabled ;;
|
||||
--enable-libiscsi) printf "%s" -Dlibiscsi=enabled ;;
|
||||
--disable-libiscsi) printf "%s" -Dlibiscsi=disabled ;;
|
||||
--enable-libnfs) printf "%s" -Dlibnfs=enabled ;;
|
||||
--disable-libnfs) printf "%s" -Dlibnfs=disabled ;;
|
||||
--enable-libpmem) printf "%s" -Dlibpmem=enabled ;;
|
||||
--disable-libpmem) printf "%s" -Dlibpmem=disabled ;;
|
||||
--enable-libudev) printf "%s" -Dlibudev=enabled ;;
|
||||
--disable-libudev) printf "%s" -Dlibudev=disabled ;;
|
||||
--enable-libusb) printf "%s" -Dlibusb=enabled ;;
|
||||
--disable-libusb) printf "%s" -Dlibusb=disabled ;;
|
||||
--enable-libxml2) printf "%s" -Dlibxml2=enabled ;;
|
||||
--disable-libxml2) printf "%s" -Dlibxml2=disabled ;;
|
||||
--enable-linux-aio) printf "%s" -Dlinux_aio=enabled ;;
|
||||
--disable-linux-aio) printf "%s" -Dlinux_aio=disabled ;;
|
||||
--enable-linux-io-uring) printf "%s" -Dlinux_io_uring=enabled ;;
|
||||
--disable-linux-io-uring) printf "%s" -Dlinux_io_uring=disabled ;;
|
||||
--enable-lzfse) printf "%s" -Dlzfse=enabled ;;
|
||||
--disable-lzfse) printf "%s" -Dlzfse=disabled ;;
|
||||
--enable-lzo) printf "%s" -Dlzo=enabled ;;
|
||||
--disable-lzo) printf "%s" -Dlzo=disabled ;;
|
||||
--enable-malloc=*) quote_sh "-Dmalloc=$2" ;;
|
||||
--enable-malloc-trim) printf "%s" -Dmalloc_trim=enabled ;;
|
||||
--disable-malloc-trim) printf "%s" -Dmalloc_trim=disabled ;;
|
||||
--enable-mpath) printf "%s" -Dmpath=enabled ;;
|
||||
--disable-mpath) printf "%s" -Dmpath=disabled ;;
|
||||
--enable-multiprocess) printf "%s" -Dmultiprocess=enabled ;;
|
||||
--disable-multiprocess) printf "%s" -Dmultiprocess=disabled ;;
|
||||
--enable-netmap) printf "%s" -Dnetmap=enabled ;;
|
||||
--disable-netmap) printf "%s" -Dnetmap=disabled ;;
|
||||
--enable-nettle) printf "%s" -Dnettle=enabled ;;
|
||||
--disable-nettle) printf "%s" -Dnettle=disabled ;;
|
||||
--enable-nvmm) printf "%s" -Dnvmm=enabled ;;
|
||||
--disable-nvmm) printf "%s" -Dnvmm=disabled ;;
|
||||
--enable-oss) printf "%s" -Doss=enabled ;;
|
||||
--disable-oss) printf "%s" -Doss=disabled ;;
|
||||
--enable-pa) printf "%s" -Dpa=enabled ;;
|
||||
--disable-pa) printf "%s" -Dpa=disabled ;;
|
||||
--enable-rbd) printf "%s" -Drbd=enabled ;;
|
||||
--disable-rbd) printf "%s" -Drbd=disabled ;;
|
||||
--enable-sdl) printf "%s" -Dsdl=enabled ;;
|
||||
--disable-sdl) printf "%s" -Dsdl=disabled ;;
|
||||
--enable-sdl-image) printf "%s" -Dsdl_image=enabled ;;
|
||||
--disable-sdl-image) printf "%s" -Dsdl_image=disabled ;;
|
||||
--enable-seccomp) printf "%s" -Dseccomp=enabled ;;
|
||||
--disable-seccomp) printf "%s" -Dseccomp=disabled ;;
|
||||
--enable-slirp) printf "%s" -Dslirp=enabled ;;
|
||||
--disable-slirp) printf "%s" -Dslirp=disabled ;;
|
||||
--enable-slirp=*) quote_sh "-Dslirp=$2" ;;
|
||||
--enable-smartcard) printf "%s" -Dsmartcard=enabled ;;
|
||||
--disable-smartcard) printf "%s" -Dsmartcard=disabled ;;
|
||||
--enable-snappy) printf "%s" -Dsnappy=enabled ;;
|
||||
--disable-snappy) printf "%s" -Dsnappy=disabled ;;
|
||||
--enable-sparse) printf "%s" -Dsparse=enabled ;;
|
||||
--disable-sparse) printf "%s" -Dsparse=disabled ;;
|
||||
--enable-spice) printf "%s" -Dspice=enabled ;;
|
||||
--disable-spice) printf "%s" -Dspice=disabled ;;
|
||||
--enable-spice-protocol) printf "%s" -Dspice_protocol=enabled ;;
|
||||
--disable-spice-protocol) printf "%s" -Dspice_protocol=disabled ;;
|
||||
--enable-tcg) printf "%s" -Dtcg=enabled ;;
|
||||
--disable-tcg) printf "%s" -Dtcg=disabled ;;
|
||||
--enable-tcg-interpreter) printf "%s" -Dtcg_interpreter=true ;;
|
||||
--disable-tcg-interpreter) printf "%s" -Dtcg_interpreter=false ;;
|
||||
--enable-trace-backends=*) quote_sh "-Dtrace_backends=$2" ;;
|
||||
--enable-u2f) printf "%s" -Du2f=enabled ;;
|
||||
--disable-u2f) printf "%s" -Du2f=disabled ;;
|
||||
--enable-usb-redir) printf "%s" -Dusb_redir=enabled ;;
|
||||
--disable-usb-redir) printf "%s" -Dusb_redir=disabled ;;
|
||||
--enable-vde) printf "%s" -Dvde=enabled ;;
|
||||
--disable-vde) printf "%s" -Dvde=disabled ;;
|
||||
--enable-vhost-user-blk-server) printf "%s" -Dvhost_user_blk_server=enabled ;;
|
||||
--disable-vhost-user-blk-server) printf "%s" -Dvhost_user_blk_server=disabled ;;
|
||||
--enable-virglrenderer) printf "%s" -Dvirglrenderer=enabled ;;
|
||||
--disable-virglrenderer) printf "%s" -Dvirglrenderer=disabled ;;
|
||||
--enable-virtfs) printf "%s" -Dvirtfs=enabled ;;
|
||||
--disable-virtfs) printf "%s" -Dvirtfs=disabled ;;
|
||||
--enable-virtiofsd) printf "%s" -Dvirtiofsd=enabled ;;
|
||||
--disable-virtiofsd) printf "%s" -Dvirtiofsd=disabled ;;
|
||||
--enable-vnc) printf "%s" -Dvnc=enabled ;;
|
||||
--disable-vnc) printf "%s" -Dvnc=disabled ;;
|
||||
--enable-vnc-jpeg) printf "%s" -Dvnc_jpeg=enabled ;;
|
||||
--disable-vnc-jpeg) printf "%s" -Dvnc_jpeg=disabled ;;
|
||||
--enable-vnc-png) printf "%s" -Dvnc_png=enabled ;;
|
||||
--disable-vnc-png) printf "%s" -Dvnc_png=disabled ;;
|
||||
--enable-vnc-sasl) printf "%s" -Dvnc_sasl=enabled ;;
|
||||
--disable-vnc-sasl) printf "%s" -Dvnc_sasl=disabled ;;
|
||||
--enable-vte) printf "%s" -Dvte=enabled ;;
|
||||
--disable-vte) printf "%s" -Dvte=disabled ;;
|
||||
--enable-whpx) printf "%s" -Dwhpx=enabled ;;
|
||||
--disable-whpx) printf "%s" -Dwhpx=disabled ;;
|
||||
--enable-xen) printf "%s" -Dxen=enabled ;;
|
||||
--disable-xen) printf "%s" -Dxen=disabled ;;
|
||||
--enable-xen-pci-passthrough) printf "%s" -Dxen_pci_passthrough=enabled ;;
|
||||
--disable-xen-pci-passthrough) printf "%s" -Dxen_pci_passthrough=disabled ;;
|
||||
--enable-xkbcommon) printf "%s" -Dxkbcommon=enabled ;;
|
||||
--disable-xkbcommon) printf "%s" -Dxkbcommon=disabled ;;
|
||||
--enable-zstd) printf "%s" -Dzstd=enabled ;;
|
||||
--disable-zstd) printf "%s" -Dzstd=disabled ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
if 'CONFIG_TRACE_SYSTEMTAP' in config_host
|
||||
if stap.found()
|
||||
install_data('qemu-trace-stap', install_dir: get_option('bindir'))
|
||||
endif
|
||||
|
||||
+3
-1
@@ -20,7 +20,9 @@ endif
|
||||
stub_ss.add(files('iothread-lock.c'))
|
||||
stub_ss.add(files('isa-bus.c'))
|
||||
stub_ss.add(files('is-daemonized.c'))
|
||||
stub_ss.add(when: 'CONFIG_LINUX_AIO', if_true: files('linux-aio.c'))
|
||||
if libaio.found()
|
||||
stub_ss.add(files('linux-aio.c'))
|
||||
endif
|
||||
stub_ss.add(files('migr-blocker.c'))
|
||||
stub_ss.add(files('module-opts.c'))
|
||||
stub_ss.add(files('monitor.c'))
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
if not get_option('fuzzing')
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
specific_fuzz_ss.add(files('fuzz.c', 'fork_fuzz.c', 'qos_fuzz.c',
|
||||
'qtest_wrappers.c'), qos)
|
||||
|
||||
@@ -9,7 +13,7 @@ specific_fuzz_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio_blk_fuzz.
|
||||
specific_fuzz_ss.add(files('generic_fuzz.c'))
|
||||
|
||||
fork_fuzz = declare_dependency(
|
||||
link_args: config_host['FUZZ_EXE_LDFLAGS'].split() +
|
||||
link_args: fuzz_exe_ldflags +
|
||||
['-Wl,-wrap,qtest_inb',
|
||||
'-Wl,-wrap,qtest_inw',
|
||||
'-Wl,-wrap,qtest_inl',
|
||||
|
||||
+9
-6
@@ -2,7 +2,6 @@
|
||||
specific_ss.add(files('control-target.c'))
|
||||
|
||||
trace_events_files = []
|
||||
dtrace = find_program('dtrace', required: 'CONFIG_TRACE_DTRACE' in config_host)
|
||||
foreach dir : [ '.' ] + trace_events_subdirs
|
||||
trace_events_file = meson.project_source_root() / dir / 'trace-events'
|
||||
trace_events_files += [ trace_events_file ]
|
||||
@@ -21,7 +20,7 @@ foreach dir : [ '.' ] + trace_events_subdirs
|
||||
input: trace_events_file,
|
||||
command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ],
|
||||
depend_files: tracetool_depends)
|
||||
if 'CONFIG_TRACE_UST' in config_host
|
||||
if 'ust' in get_option('trace_backends')
|
||||
trace_ust_h = custom_target(fmt.format('trace-ust', 'h'),
|
||||
output: fmt.format('trace-ust', 'h'),
|
||||
input: trace_events_file,
|
||||
@@ -31,7 +30,7 @@ foreach dir : [ '.' ] + trace_events_subdirs
|
||||
genh += trace_ust_h
|
||||
endif
|
||||
trace_ss.add(trace_h, trace_c)
|
||||
if 'CONFIG_TRACE_DTRACE' in config_host
|
||||
if 'dtrace' in get_option('trace_backends')
|
||||
trace_dtrace = custom_target(fmt.format('trace-dtrace', 'dtrace'),
|
||||
output: fmt.format('trace-dtrace', 'dtrace'),
|
||||
input: trace_events_file,
|
||||
@@ -76,7 +75,7 @@ foreach d : [
|
||||
specific_ss.add(when: 'CONFIG_TCG', if_true: gen)
|
||||
endforeach
|
||||
|
||||
if 'CONFIG_TRACE_UST' in config_host
|
||||
if 'ust' in get_option('trace_backends')
|
||||
trace_ust_all_h = custom_target('trace-ust-all.h',
|
||||
output: 'trace-ust-all.h',
|
||||
input: trace_events_files,
|
||||
@@ -91,7 +90,11 @@ if 'CONFIG_TRACE_UST' in config_host
|
||||
genh += trace_ust_all_h
|
||||
endif
|
||||
|
||||
trace_ss.add(when: 'CONFIG_TRACE_SIMPLE', if_true: files('simple.c'))
|
||||
trace_ss.add(when: 'CONFIG_TRACE_FTRACE', if_true: files('ftrace.c'))
|
||||
if 'simple' in get_option('trace_backends')
|
||||
trace_ss.add(files('simple.c'))
|
||||
endif
|
||||
if 'ftrace' in get_option('trace_backends')
|
||||
trace_ss.add(files('ftrace.c'))
|
||||
endif
|
||||
trace_ss.add(files('control.c'))
|
||||
trace_ss.add(files('qmp.c'))
|
||||
|
||||
+1
-1
@@ -364,7 +364,7 @@ void st_set_trace_file(const char *file)
|
||||
|
||||
if (!file) {
|
||||
/* Type cast needed for Windows where getpid() returns an int. */
|
||||
trace_file_name = g_strdup_printf(CONFIG_TRACE_FILE, (pid_t)getpid());
|
||||
trace_file_name = g_strdup_printf(CONFIG_TRACE_FILE "-" FMT_pid, (pid_t)getpid());
|
||||
} else {
|
||||
trace_file_name = g_strdup_printf("%s", file);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user