mirror of https://github.com/xemu-project/xemu.git
meson fixes:
* fix PIE default for Windows * tweak conditions for requiring SDL2 and pixman * move NSIS building to Meson * fix creation of systemtap files * add --ninja option for Windows builds * other fixes for stupid bugs and for Windows paths meson related: * forward port of dtrace fix for MacOS * change colorout option to auto -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAl9H5i0UHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroNDqwf/fgtR+eMHNuY+/a+5aknaJ6SHWLDm VDK9a0lRGhQETRRdnprooB55VTGsMyVsrz5iDHOQYarZrixc5vxw549pEEWSEedP zHQAI5EgBZYhSy17V+bA2ZdhfnLOvFF2uqnTzvcXnx4gBKOzJLZyLSMAjbYKvZ5Z QW+293TiP345a/VjqFTTTQ79mVOvO5zl0Z9fMWKxqfWJ7rHZG4YNE/FZhbyjhv0O oV1tWvqOOyvdBo7lXf9d0L6f6cSaTuj43pvKnsMbj0EKBhoGY2VQzHgdczj4ByyS zB7m/A1c64uRJwftFw1kYw69He0k9HmkzfQtU9MWB9H1bd9SyeayBmPNaQ== =kFoB -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging meson fixes: * fix PIE default for Windows * tweak conditions for requiring SDL2 and pixman * move NSIS building to Meson * fix creation of systemtap files * add --ninja option for Windows builds * other fixes for stupid bugs and for Windows paths meson related: * forward port of dtrace fix for MacOS * change colorout option to auto # gpg: Signature made Thu 27 Aug 2020 17:58:21 BST # 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] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini-gitlab/tags/for-upstream: ninjatool: Fixes E$$: in generated Makefile.ninja meson: set colorout to auto meson: Mingw64 gcc doesn't recognize system include_type for sdl2 meson: fix relpath failure on Win32 ninjatool: quote dollars in variables meson: don't require CONFIG_VTE for the GTK UI meson: cleanup xkbcommon detection configure: add --ninja option meson: skip SDL2 detection if --disable-system meson: move pixman detection to meson configure: default to PIE disabled on Windows platforms meson: Fix chardev-baum.so name meson: Fix meson build with --enable-libdaxctl scripts/qemu-version.sh: Add missing space before ']' meson: Don't make object files for dtrace on macOS meson: Build qemu-nbd on macOS again trace: fix creation of systemtap files Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
332657245b
|
@ -39,7 +39,7 @@ chardev_modules = {}
|
||||||
if config_host.has_key('CONFIG_BRLAPI') and sdl.found()
|
if config_host.has_key('CONFIG_BRLAPI') and sdl.found()
|
||||||
module_ss = ss.source_set()
|
module_ss = ss.source_set()
|
||||||
module_ss.add(when: [sdl, brlapi], if_true: files('baum.c'))
|
module_ss.add(when: [sdl, brlapi], if_true: files('baum.c'))
|
||||||
chardev_modules += { 'brlapi': module_ss }
|
chardev_modules += { 'baum': module_ss }
|
||||||
endif
|
endif
|
||||||
|
|
||||||
modules += { 'chardev': chardev_modules }
|
modules += { 'chardev': chardev_modules }
|
||||||
|
|
|
@ -568,6 +568,7 @@ rng_none="no"
|
||||||
secret_keyring=""
|
secret_keyring=""
|
||||||
libdaxctl=""
|
libdaxctl=""
|
||||||
meson=""
|
meson=""
|
||||||
|
ninja=""
|
||||||
skip_meson=no
|
skip_meson=no
|
||||||
gettext=""
|
gettext=""
|
||||||
|
|
||||||
|
@ -857,6 +858,7 @@ MINGW32*)
|
||||||
audio_drv_list=""
|
audio_drv_list=""
|
||||||
fi
|
fi
|
||||||
supported_os="yes"
|
supported_os="yes"
|
||||||
|
pie="no"
|
||||||
;;
|
;;
|
||||||
GNU/kFreeBSD)
|
GNU/kFreeBSD)
|
||||||
bsd="yes"
|
bsd="yes"
|
||||||
|
@ -1051,6 +1053,8 @@ for opt do
|
||||||
;;
|
;;
|
||||||
--meson=*) meson="$optarg"
|
--meson=*) meson="$optarg"
|
||||||
;;
|
;;
|
||||||
|
--ninja=*) ninja="$optarg"
|
||||||
|
;;
|
||||||
--smbd=*) smbd="$optarg"
|
--smbd=*) smbd="$optarg"
|
||||||
;;
|
;;
|
||||||
--extra-cflags=*)
|
--extra-cflags=*)
|
||||||
|
@ -1819,6 +1823,7 @@ Advanced options (experts only):
|
||||||
--python=PYTHON use specified python [$python]
|
--python=PYTHON use specified python [$python]
|
||||||
--sphinx-build=SPHINX use specified sphinx-build [$sphinx_build]
|
--sphinx-build=SPHINX use specified sphinx-build [$sphinx_build]
|
||||||
--meson=MESON use specified meson [$meson]
|
--meson=MESON use specified meson [$meson]
|
||||||
|
--ninja=NINJA use specified ninja [$ninja]
|
||||||
--smbd=SMBD use specified smbd [$smbd]
|
--smbd=SMBD use specified smbd [$smbd]
|
||||||
--with-git=GIT use specified git [$git]
|
--with-git=GIT use specified git [$git]
|
||||||
--static enable static build [$static]
|
--static enable static build [$static]
|
||||||
|
@ -2057,6 +2062,16 @@ case "$meson" in
|
||||||
*) meson=$(command -v meson) ;;
|
*) meson=$(command -v meson) ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# Probe for ninja (used for compdb)
|
||||||
|
|
||||||
|
if test -z "$ninja"; then
|
||||||
|
for c in ninja ninja-build samu; do
|
||||||
|
if has $c; then
|
||||||
|
ninja=$(command -v "$c")
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Check that the C compiler works. Doing this here before testing
|
# Check that the C compiler works. Doing this here before testing
|
||||||
# the host CPU ensures that we had a valid CC to autodetect the
|
# the host CPU ensures that we had a valid CC to autodetect the
|
||||||
|
@ -3922,20 +3937,6 @@ if test "$modules" = yes; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##########################################
|
|
||||||
# pixman support probe
|
|
||||||
|
|
||||||
if test "$softmmu" = "no"; then
|
|
||||||
pixman_cflags=
|
|
||||||
pixman_libs=
|
|
||||||
elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then
|
|
||||||
pixman_cflags=$($pkg_config --cflags pixman-1)
|
|
||||||
pixman_libs=$($pkg_config --libs pixman-1)
|
|
||||||
else
|
|
||||||
error_exit "pixman >= 0.21.8 not present." \
|
|
||||||
"Please install the pixman devel package."
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# libmpathpersist probe
|
# libmpathpersist probe
|
||||||
|
|
||||||
|
@ -6648,8 +6649,8 @@ echo_version() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# prepend pixman and ftd flags after all config tests are done
|
# prepend ftd flags after all config tests are done
|
||||||
QEMU_CFLAGS="$pixman_cflags $fdt_cflags $QEMU_CFLAGS"
|
QEMU_CFLAGS="$fdt_cflags $QEMU_CFLAGS"
|
||||||
QEMU_LDFLAGS="$fdt_ldflags $QEMU_LDFLAGS"
|
QEMU_LDFLAGS="$fdt_ldflags $QEMU_LDFLAGS"
|
||||||
|
|
||||||
config_host_mak="config-host.mak"
|
config_host_mak="config-host.mak"
|
||||||
|
@ -7467,6 +7468,7 @@ fi
|
||||||
|
|
||||||
if test "$libdaxctl" = "yes" ; then
|
if test "$libdaxctl" = "yes" ; then
|
||||||
echo "CONFIG_LIBDAXCTL=y" >> $config_host_mak
|
echo "CONFIG_LIBDAXCTL=y" >> $config_host_mak
|
||||||
|
echo "LIBDAXCTL_LIBS=$libdaxctl_libs" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$bochs" = "yes" ; then
|
if test "$bochs" = "yes" ; then
|
||||||
|
@ -8054,9 +8056,6 @@ fi
|
||||||
|
|
||||||
done # for target in $targets
|
done # for target in $targets
|
||||||
|
|
||||||
echo "PIXMAN_CFLAGS=$pixman_cflags" >> $config_host_mak
|
|
||||||
echo "PIXMAN_LIBS=$pixman_libs" >> $config_host_mak
|
|
||||||
|
|
||||||
if [ "$fdt" = "git" ]; then
|
if [ "$fdt" = "git" ]; then
|
||||||
subdirs="$subdirs dtc"
|
subdirs="$subdirs dtc"
|
||||||
fi
|
fi
|
||||||
|
@ -8212,7 +8211,7 @@ fi
|
||||||
mv $cross config-meson.cross
|
mv $cross config-meson.cross
|
||||||
|
|
||||||
rm -rf meson-private meson-info meson-logs
|
rm -rf meson-private meson-info meson-logs
|
||||||
NINJA=$PWD/ninjatool $meson setup \
|
NINJA=${ninja:-$PWD/ninjatool} $meson setup \
|
||||||
--prefix "${pre_prefix}$prefix" \
|
--prefix "${pre_prefix}$prefix" \
|
||||||
--libdir "${pre_prefix}$libdir" \
|
--libdir "${pre_prefix}$libdir" \
|
||||||
--libexecdir "${pre_prefix}$libexecdir" \
|
--libexecdir "${pre_prefix}$libexecdir" \
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \
|
if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \
|
||||||
and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host
|
and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host \
|
||||||
|
and pixman.found()
|
||||||
executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
|
executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
|
||||||
link_with: libvhost_user,
|
link_with: libvhost_user,
|
||||||
dependencies: [qemuutil, pixman, gbm, virgl],
|
dependencies: [qemuutil, pixman, gbm, virgl],
|
||||||
|
|
70
meson.build
70
meson.build
|
@ -1,5 +1,6 @@
|
||||||
project('qemu', ['c'], meson_version: '>=0.55.0',
|
project('qemu', ['c'], meson_version: '>=0.55.0',
|
||||||
default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11', 'b_lundef=false'],
|
default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11',
|
||||||
|
'b_lundef=false','b_colorout=auto'],
|
||||||
version: run_command('head', meson.source_root() / 'VERSION').stdout().strip())
|
version: run_command('head', meson.source_root() / 'VERSION').stdout().strip())
|
||||||
|
|
||||||
not_found = dependency('', required: false)
|
not_found = dependency('', required: false)
|
||||||
|
@ -20,6 +21,16 @@ build_docs = 'BUILD_DOCS' in config_host
|
||||||
config_host_data = configuration_data()
|
config_host_data = configuration_data()
|
||||||
genh = []
|
genh = []
|
||||||
|
|
||||||
|
target_dirs = config_host['TARGET_DIRS'].split()
|
||||||
|
have_user = false
|
||||||
|
have_system = false
|
||||||
|
foreach target : target_dirs
|
||||||
|
have_user = have_user or target.endswith('-user')
|
||||||
|
have_system = have_system or target.endswith('-softmmu')
|
||||||
|
endforeach
|
||||||
|
have_tools = 'CONFIG_TOOLS' in config_host
|
||||||
|
have_block = have_system or have_tools
|
||||||
|
|
||||||
add_project_arguments(config_host['QEMU_CFLAGS'].split(),
|
add_project_arguments(config_host['QEMU_CFLAGS'].split(),
|
||||||
native: false, language: ['c', 'objc'])
|
native: false, language: ['c', 'objc'])
|
||||||
add_project_arguments(config_host['QEMU_CXXFLAGS'].split(),
|
add_project_arguments(config_host['QEMU_CXXFLAGS'].split(),
|
||||||
|
@ -113,8 +124,11 @@ if 'CONFIG_GNUTLS' in config_host
|
||||||
gnutls = declare_dependency(compile_args: config_host['GNUTLS_CFLAGS'].split(),
|
gnutls = declare_dependency(compile_args: config_host['GNUTLS_CFLAGS'].split(),
|
||||||
link_args: config_host['GNUTLS_LIBS'].split())
|
link_args: config_host['GNUTLS_LIBS'].split())
|
||||||
endif
|
endif
|
||||||
pixman = declare_dependency(compile_args: config_host['PIXMAN_CFLAGS'].split(),
|
pixman = not_found
|
||||||
link_args: config_host['PIXMAN_LIBS'].split())
|
if have_system or have_tools
|
||||||
|
pixman = dependency('pixman-1', required: have_system, version:'>=0.21.8',
|
||||||
|
static: enable_static)
|
||||||
|
endif
|
||||||
pam = not_found
|
pam = not_found
|
||||||
if 'CONFIG_AUTH_PAM' in config_host
|
if 'CONFIG_AUTH_PAM' in config_host
|
||||||
pam = cc.find_library('pam')
|
pam = cc.find_library('pam')
|
||||||
|
@ -152,10 +166,11 @@ libcap_ng = not_found
|
||||||
if 'CONFIG_LIBCAP_NG' in config_host
|
if 'CONFIG_LIBCAP_NG' in config_host
|
||||||
libcap_ng = declare_dependency(link_args: config_host['LIBCAP_NG_LIBS'].split())
|
libcap_ng = declare_dependency(link_args: config_host['LIBCAP_NG_LIBS'].split())
|
||||||
endif
|
endif
|
||||||
xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'), static: enable_static,
|
if get_option('xkbcommon').auto() and not have_system and not have_tools
|
||||||
include_type: 'system')
|
xkbcommon = not_found
|
||||||
if xkbcommon.found()
|
else
|
||||||
xkbcommon = declare_dependency(dependencies: xkbcommon)
|
xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
|
||||||
|
static: enable_static)
|
||||||
endif
|
endif
|
||||||
slirp = not_found
|
slirp = not_found
|
||||||
if config_host.has_key('CONFIG_SLIRP')
|
if config_host.has_key('CONFIG_SLIRP')
|
||||||
|
@ -224,9 +239,11 @@ if 'CONFIG_BRLAPI' in config_host
|
||||||
brlapi = declare_dependency(link_args: config_host['BRLAPI_LIBS'].split())
|
brlapi = declare_dependency(link_args: config_host['BRLAPI_LIBS'].split())
|
||||||
endif
|
endif
|
||||||
|
|
||||||
sdl = dependency('sdl2', required: get_option('sdl'), static: enable_static,
|
sdl = not_found
|
||||||
include_type: 'system')
|
if have_system
|
||||||
sdl_image = not_found
|
sdl = dependency('sdl2', required: get_option('sdl'), static: enable_static)
|
||||||
|
sdl_image = not_found
|
||||||
|
endif
|
||||||
if sdl.found()
|
if sdl.found()
|
||||||
# work around 2.0.8 bug
|
# work around 2.0.8 bug
|
||||||
sdl = declare_dependency(compile_args: '-Wno-undef',
|
sdl = declare_dependency(compile_args: '-Wno-undef',
|
||||||
|
@ -380,6 +397,10 @@ if 'CONFIG_LIBPMEM' in config_host
|
||||||
libpmem = declare_dependency(compile_args: config_host['LIBPMEM_CFLAGS'].split(),
|
libpmem = declare_dependency(compile_args: config_host['LIBPMEM_CFLAGS'].split(),
|
||||||
link_args: config_host['LIBPMEM_LIBS'].split())
|
link_args: config_host['LIBPMEM_LIBS'].split())
|
||||||
endif
|
endif
|
||||||
|
libdaxctl = not_found
|
||||||
|
if 'CONFIG_LIBDAXCTL' in config_host
|
||||||
|
libdaxctl = declare_dependency(link_args: config_host['LIBDAXCTL_LIBS'].split())
|
||||||
|
endif
|
||||||
|
|
||||||
# Create config-host.h
|
# Create config-host.h
|
||||||
|
|
||||||
|
@ -419,9 +440,6 @@ endforeach
|
||||||
genh += configure_file(output: 'config-host.h', configuration: config_host_data)
|
genh += configure_file(output: 'config-host.h', configuration: config_host_data)
|
||||||
|
|
||||||
minikconf = find_program('scripts/minikconf.py')
|
minikconf = find_program('scripts/minikconf.py')
|
||||||
target_dirs = config_host['TARGET_DIRS'].split()
|
|
||||||
have_user = false
|
|
||||||
have_system = false
|
|
||||||
config_devices_mak_list = []
|
config_devices_mak_list = []
|
||||||
config_devices_h = {}
|
config_devices_h = {}
|
||||||
config_target_h = {}
|
config_target_h = {}
|
||||||
|
@ -442,7 +460,6 @@ kconfig_external_symbols = [
|
||||||
]
|
]
|
||||||
ignored = ['TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_DIRS']
|
ignored = ['TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_DIRS']
|
||||||
foreach target : target_dirs
|
foreach target : target_dirs
|
||||||
have_user = have_user or target.endswith('-user')
|
|
||||||
config_target = keyval.load(meson.current_build_dir() / target / 'config-target.mak')
|
config_target = keyval.load(meson.current_build_dir() / target / 'config-target.mak')
|
||||||
|
|
||||||
config_target_data = configuration_data()
|
config_target_data = configuration_data()
|
||||||
|
@ -465,8 +482,6 @@ foreach target : target_dirs
|
||||||
configuration: config_target_data)}
|
configuration: config_target_data)}
|
||||||
|
|
||||||
if target.endswith('-softmmu')
|
if target.endswith('-softmmu')
|
||||||
have_system = true
|
|
||||||
|
|
||||||
base_kconfig = []
|
base_kconfig = []
|
||||||
foreach sym : kconfig_external_symbols
|
foreach sym : kconfig_external_symbols
|
||||||
if sym in config_target or sym in config_host
|
if sym in config_target or sym in config_host
|
||||||
|
@ -496,8 +511,6 @@ foreach target : target_dirs
|
||||||
endif
|
endif
|
||||||
config_target_mak += {target: config_target}
|
config_target_mak += {target: config_target}
|
||||||
endforeach
|
endforeach
|
||||||
have_tools = 'CONFIG_TOOLS' in config_host
|
|
||||||
have_block = have_system or have_tools
|
|
||||||
|
|
||||||
grepy = find_program('scripts/grepy.sh')
|
grepy = find_program('scripts/grepy.sh')
|
||||||
# This configuration is used to build files that are shared by
|
# This configuration is used to build files that are shared by
|
||||||
|
@ -787,7 +800,7 @@ common_ss.add(files('cpus-common.c'))
|
||||||
|
|
||||||
subdir('softmmu')
|
subdir('softmmu')
|
||||||
|
|
||||||
specific_ss.add(files('disas.c', 'exec.c', 'gdbstub.c'), capstone, libpmem)
|
specific_ss.add(files('disas.c', 'exec.c', 'gdbstub.c'), capstone, libpmem, libdaxctl)
|
||||||
specific_ss.add(files('exec-vary.c'))
|
specific_ss.add(files('exec-vary.c'))
|
||||||
specific_ss.add(when: 'CONFIG_TCG', if_true: files(
|
specific_ss.add(when: 'CONFIG_TCG', if_true: files(
|
||||||
'fpu/softfloat.c',
|
'fpu/softfloat.c',
|
||||||
|
@ -977,6 +990,7 @@ foreach target : target_dirs
|
||||||
|
|
||||||
lib = static_library('qemu-' + target,
|
lib = static_library('qemu-' + target,
|
||||||
sources: arch_srcs + genh,
|
sources: arch_srcs + genh,
|
||||||
|
dependencies: arch_deps,
|
||||||
objects: objects,
|
objects: objects,
|
||||||
include_directories: target_inc,
|
include_directories: target_inc,
|
||||||
c_args: c_args,
|
c_args: c_args,
|
||||||
|
@ -1029,14 +1043,14 @@ foreach target : target_dirs
|
||||||
|
|
||||||
if 'CONFIG_TRACE_SYSTEMTAP' in config_host
|
if 'CONFIG_TRACE_SYSTEMTAP' in config_host
|
||||||
foreach stp: [
|
foreach stp: [
|
||||||
{'ext': '.stp-build', 'fmt': 'stap', 'bin': meson.current_build_dir() / exe_name, 'install': false},
|
{'ext': '.stp-build', 'fmt': 'stap', 'bin': meson.current_build_dir() / exe['name'], 'install': false},
|
||||||
{'ext': '.stp', 'fmt': 'stap', 'bin': get_option('prefix') / get_option('bindir') / exe_name, 'install': true},
|
{'ext': '.stp', 'fmt': 'stap', 'bin': get_option('prefix') / get_option('bindir') / exe['name'], 'install': true},
|
||||||
{'ext': '-simpletrace.stp', 'fmt': 'simpletrace-stap', 'bin': '', 'install': true},
|
{'ext': '-simpletrace.stp', 'fmt': 'simpletrace-stap', 'bin': '', 'install': true},
|
||||||
{'ext': '-log.stp', 'fmt': 'log-stap', 'bin': '', 'install': true},
|
{'ext': '-log.stp', 'fmt': 'log-stap', 'bin': '', 'install': true},
|
||||||
]
|
]
|
||||||
custom_target(exe_name + stp['ext'],
|
custom_target(exe['name'] + stp['ext'],
|
||||||
input: trace_events_all,
|
input: trace_events_all,
|
||||||
output: exe_name + stp['ext'],
|
output: exe['name'] + stp['ext'],
|
||||||
capture: true,
|
capture: true,
|
||||||
install: stp['install'],
|
install: stp['install'],
|
||||||
install_dir: config_host['qemu_datadir'] / '../systemtap/tapset',
|
install_dir: config_host['qemu_datadir'] / '../systemtap/tapset',
|
||||||
|
@ -1065,9 +1079,6 @@ endif
|
||||||
|
|
||||||
# Don't build qemu-keymap if xkbcommon is not explicitly enabled
|
# Don't build qemu-keymap if xkbcommon is not explicitly enabled
|
||||||
# when we don't build tools or system
|
# when we don't build tools or system
|
||||||
if get_option('xkbcommon').auto() and not have_system and not have_tools
|
|
||||||
xkbcommon = not_found
|
|
||||||
endif
|
|
||||||
if xkbcommon.found()
|
if xkbcommon.found()
|
||||||
# used for the update-keymaps target, so include rules even if !have_tools
|
# used for the update-keymaps target, so include rules even if !have_tools
|
||||||
qemu_keymap = executable('qemu-keymap', files('qemu-keymap.c', 'ui/input-keymap.c') + genh,
|
qemu_keymap = executable('qemu-keymap', files('qemu-keymap.c', 'ui/input-keymap.c') + genh,
|
||||||
|
@ -1081,7 +1092,7 @@ if have_tools
|
||||||
qemu_io = executable('qemu-io', files('qemu-io.c'),
|
qemu_io = executable('qemu-io', files('qemu-io.c'),
|
||||||
dependencies: [block, qemuutil], install: true)
|
dependencies: [block, qemuutil], install: true)
|
||||||
qemu_block_tools += [qemu_img, qemu_io]
|
qemu_block_tools += [qemu_img, qemu_io]
|
||||||
if targetos == 'linux' or targetos == 'sunos' or targetos.endswith('bsd')
|
if targetos != 'windows'
|
||||||
qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
|
qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
|
||||||
dependencies: [block, qemuutil], install: true)
|
dependencies: [block, qemuutil], install: true)
|
||||||
qemu_block_tools += [qemu_nbd]
|
qemu_block_tools += [qemu_nbd]
|
||||||
|
@ -1098,9 +1109,7 @@ if have_tools
|
||||||
if 'CONFIG_VHOST_USER' in config_host
|
if 'CONFIG_VHOST_USER' in config_host
|
||||||
subdir('contrib/libvhost-user')
|
subdir('contrib/libvhost-user')
|
||||||
subdir('contrib/vhost-user-blk')
|
subdir('contrib/vhost-user-blk')
|
||||||
if 'CONFIG_LINUX' in config_host
|
subdir('contrib/vhost-user-gpu')
|
||||||
subdir('contrib/vhost-user-gpu')
|
|
||||||
endif
|
|
||||||
subdir('contrib/vhost-user-input')
|
subdir('contrib/vhost-user-input')
|
||||||
subdir('contrib/vhost-user-scsi')
|
subdir('contrib/vhost-user-scsi')
|
||||||
endif
|
endif
|
||||||
|
@ -1281,6 +1290,7 @@ summary_info += {'SDL image support': sdl_image.found()}
|
||||||
# TODO: add back version
|
# TODO: add back version
|
||||||
summary_info += {'GTK support': config_host.has_key('CONFIG_GTK')}
|
summary_info += {'GTK support': config_host.has_key('CONFIG_GTK')}
|
||||||
summary_info += {'GTK GL support': config_host.has_key('CONFIG_GTK_GL')}
|
summary_info += {'GTK GL support': config_host.has_key('CONFIG_GTK_GL')}
|
||||||
|
summary_info += {'pixman': pixman.found()}
|
||||||
# TODO: add back version
|
# TODO: add back version
|
||||||
summary_info += {'VTE support': config_host.has_key('CONFIG_VTE')}
|
summary_info += {'VTE support': config_host.has_key('CONFIG_VTE')}
|
||||||
summary_info += {'TLS priority': config_host['CONFIG_TLS_PRIORITY']}
|
summary_info += {'TLS priority': config_host['CONFIG_TLS_PRIORITY']}
|
||||||
|
|
|
@ -53,9 +53,16 @@ i = 0
|
||||||
for test in json.load(sys.stdin):
|
for test in json.load(sys.stdin):
|
||||||
env = ' '.join(('%s=%s' % (shlex.quote(k), shlex.quote(v))
|
env = ' '.join(('%s=%s' % (shlex.quote(k), shlex.quote(v))
|
||||||
for k, v in test['env'].items()))
|
for k, v in test['env'].items()))
|
||||||
executable = os.path.relpath(test['cmd'][0])
|
executable = test['cmd'][0]
|
||||||
|
try:
|
||||||
|
executable = os.path.relpath(executable)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if test['workdir'] is not None:
|
if test['workdir'] is not None:
|
||||||
test['cmd'][0] = os.path.relpath(test['cmd'][0], test['workdir'])
|
try:
|
||||||
|
test['cmd'][0] = os.path.relpath(executable, test['workdir'])
|
||||||
|
except:
|
||||||
|
test['cmd'][0] = executable
|
||||||
else:
|
else:
|
||||||
test['cmd'][0] = executable
|
test['cmd'][0] = executable
|
||||||
cmd = '$(.test.env) %s %s' % (env, ' '.join((shlex.quote(x) for x in test['cmd'])))
|
cmd = '$(.test.env) %s %s' % (env, ' '.join((shlex.quote(x) for x in test['cmd'])))
|
||||||
|
|
|
@ -55,7 +55,7 @@ else:
|
||||||
|
|
||||||
PATH_RE = r"[^$\s:|]+|\$[$ :]|\$[a-zA-Z0-9_-]+|\$\{[a-zA-Z0-9_.-]+\}"
|
PATH_RE = r"[^$\s:|]+|\$[$ :]|\$[a-zA-Z0-9_-]+|\$\{[a-zA-Z0-9_.-]+\}"
|
||||||
|
|
||||||
SIMPLE_PATH_RE = re.compile(r"[^$\s:|]+")
|
SIMPLE_PATH_RE = re.compile(r"^[^$\s:|]+$")
|
||||||
IDENT_RE = re.compile(r"[a-zA-Z0-9_.-]+$")
|
IDENT_RE = re.compile(r"[a-zA-Z0-9_.-]+$")
|
||||||
STRING_RE = re.compile(r"(" + PATH_RE + r"|[\s:|])(?:\r?\n)?|.")
|
STRING_RE = re.compile(r"(" + PATH_RE + r"|[\s:|])(?:\r?\n)?|.")
|
||||||
TOPLEVEL_RE = re.compile(r"([=:#]|\|\|?|^ +|(?:" + PATH_RE + r")+)\s*|.")
|
TOPLEVEL_RE = re.compile(r"([=:#]|\|\|?|^ +|(?:" + PATH_RE + r")+)\s*|.")
|
||||||
|
@ -834,7 +834,8 @@ class Ninja2Make(NinjaParserEventsWithVars):
|
||||||
self.print()
|
self.print()
|
||||||
for targets in self.build_vars:
|
for targets in self.build_vars:
|
||||||
for name, value in self.build_vars[targets].items():
|
for name, value in self.build_vars[targets].items():
|
||||||
self.print('%s: private .var.%s := %s' % (targets, name, value))
|
self.print('%s: private .var.%s := %s' %
|
||||||
|
(targets, name, value.replace('$', '$$')))
|
||||||
self.print()
|
self.print()
|
||||||
if not self.seen_default:
|
if not self.seen_default:
|
||||||
default_targets = sorted(self.all_outs - self.all_ins, key=natural_sort_key)
|
default_targets = sorted(self.all_outs - self.all_ins, key=natural_sort_key)
|
||||||
|
|
|
@ -6,7 +6,7 @@ dir="$1"
|
||||||
pkgversion="$2"
|
pkgversion="$2"
|
||||||
version="$3"
|
version="$3"
|
||||||
|
|
||||||
if [ -z "$pkgversion"]; then
|
if [ -z "$pkgversion" ]; then
|
||||||
cd "$dir"
|
cd "$dir"
|
||||||
if [ -e .git ]; then
|
if [ -e .git ]; then
|
||||||
pkgversion=$(git describe --match 'v*' --dirty | echo "")
|
pkgversion=$(git describe --match 'v*' --dirty | echo "")
|
||||||
|
|
|
@ -39,12 +39,15 @@ foreach dir : [ '.' ] + trace_events_subdirs
|
||||||
output: fmt.format('trace-dtrace', 'h'),
|
output: fmt.format('trace-dtrace', 'h'),
|
||||||
input: trace_dtrace,
|
input: trace_dtrace,
|
||||||
command: [ 'dtrace', '-o', '@OUTPUT@', '-h', '-s', '@INPUT@' ])
|
command: [ 'dtrace', '-o', '@OUTPUT@', '-h', '-s', '@INPUT@' ])
|
||||||
trace_dtrace_o = custom_target(fmt.format('trace-dtrace', 'o'),
|
trace_ss.add(trace_dtrace_h)
|
||||||
output: fmt.format('trace-dtrace', 'o'),
|
if host_machine.system() != 'darwin'
|
||||||
input: trace_dtrace,
|
trace_dtrace_o = custom_target(fmt.format('trace-dtrace', 'o'),
|
||||||
command: [ 'dtrace', '-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
|
output: fmt.format('trace-dtrace', 'o'),
|
||||||
|
input: trace_dtrace,
|
||||||
|
command: [ 'dtrace', '-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
|
||||||
|
trace_ss.add(trace_dtrace_o)
|
||||||
|
endif
|
||||||
|
|
||||||
trace_ss.add(trace_dtrace_h, trace_dtrace_o)
|
|
||||||
genh += trace_dtrace_h
|
genh += trace_dtrace_h
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
softmmu_ss.add(pixman)
|
||||||
|
specific_ss.add(pixman) # for the include path
|
||||||
|
|
||||||
softmmu_ss.add(files(
|
softmmu_ss.add(files(
|
||||||
'console.c',
|
'console.c',
|
||||||
'cursor.c',
|
'cursor.c',
|
||||||
|
@ -9,7 +12,6 @@ softmmu_ss.add(files(
|
||||||
'keymaps.c',
|
'keymaps.c',
|
||||||
'qemu-pixman.c',
|
'qemu-pixman.c',
|
||||||
))
|
))
|
||||||
softmmu_ss.add(pixman)
|
|
||||||
|
|
||||||
softmmu_ss.add(when: 'CONFIG_LINUX', if_true: files('input-linux.c'))
|
softmmu_ss.add(when: 'CONFIG_LINUX', if_true: files('input-linux.c'))
|
||||||
softmmu_ss.add(when: 'CONFIG_SPICE', if_true: files('spice-core.c', 'spice-input.c', 'spice-display.c'))
|
softmmu_ss.add(when: 'CONFIG_SPICE', if_true: files('spice-core.c', 'spice-input.c', 'spice-display.c'))
|
||||||
|
@ -42,7 +44,7 @@ if config_host.has_key('CONFIG_CURSES')
|
||||||
ui_modules += {'curses' : curses_ss}
|
ui_modules += {'curses' : curses_ss}
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if config_host.has_key('CONFIG_GTK') and config_host.has_key('CONFIG_VTE')
|
if config_host.has_key('CONFIG_GTK')
|
||||||
softmmu_ss.add(when: 'CONFIG_WIN32', if_true: files('win32-kbd-hook.c'))
|
softmmu_ss.add(when: 'CONFIG_WIN32', if_true: files('win32-kbd-hook.c'))
|
||||||
|
|
||||||
gtk_ss = ss.source_set()
|
gtk_ss = ss.source_set()
|
||||||
|
|
Loading…
Reference in New Issue