* [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0
@ 2020-12-16 15:02 Paolo Bonzini
2020-12-16 15:02 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
Mostly switching to 0.56.0 in order to remove the b_staticpic
version-dependent hack.
Paolo Bonzini (7):
Makefile: add dummy target for build.ninja dependencies
meson: update submodule to 0.56.0
meson: switch minimum meson version to 0.56.0
meson: fix detection of curses with pkgconfig
meson: use pkg-config method for libudev
meson: use dependency to gate block modules
meson: cleanup Kconfig.host handling
Makefile | 1 +
accel/Kconfig | 9 +++
block/meson.build | 20 +++----
configure | 7 +--
docs/devel/kconfig.rst | 19 +++----
docs/meson.build | 12 ++--
meson | 2 +-
meson.build | 104 +++++++++++++++-------------------
plugins/meson.build | 4 +-
tests/meson.build | 2 +-
tests/qapi-schema/meson.build | 4 +-
tests/qtest/meson.build | 2 +-
trace/meson.build | 4 +-
13 files changed, 91 insertions(+), 99 deletions(-)
--
2.29.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
2020-12-16 15:02 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
The dummy targets ensure that incremental build can be done after
deleting a meson.build file.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 76dbb917f5..fb9923ff22 100644
--- a/Makefile
+++ b/Makefile
@@ -133,6 +133,7 @@ Makefile.ninja: build.ninja
# A separate rule is needed for Makefile dependencies to avoid -n
build.ninja: build.ninja.stamp
+$(build-files):
build.ninja.stamp: meson.stamp $(build-files)
$(NINJA) $(if $V,-v,) build.ninja && touch $@
endif
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/7] meson: update submodule to 0.56.0
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
2020-12-16 15:02 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
2020-12-16 15:02 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 2 +-
meson | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 6317964997..8d12b715e3 100755
--- a/configure
+++ b/configure
@@ -1938,7 +1938,7 @@ python_version=$($python -c 'import sys; print("%d.%d.%d" % (sys.version_info[0]
python="$python -B"
if test -z "$meson"; then
- if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.55.3; then
+ if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.56.0; then
meson=meson
elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
meson=git
diff --git a/meson b/meson
index 776acd2a80..f16d31607e 160000
--- a/meson
+++ b/meson
@@ -1 +1 @@
-Subproject commit 776acd2a805c9b42b4f0375150977df42130317f
+Subproject commit f16d31607eb3cd0f281758bd0944e206ef6be387
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/7] meson: switch minimum meson version to 0.56.0
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
2020-12-16 15:02 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
2020-12-16 15:02 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
2020-12-16 15:02 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
Meson 0.56.0 does not need b_staticpic=$pie anymore, and has
stabilized the keyval module. Remove the workaround and use a few
replacements for features deprecated in that release cycle.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 5 ----
docs/meson.build | 12 ++++----
meson.build | 54 ++++++++++++++++-------------------
plugins/meson.build | 4 +--
tests/meson.build | 2 +-
tests/qapi-schema/meson.build | 4 +--
tests/qtest/meson.build | 2 +-
trace/meson.build | 4 +--
8 files changed, 39 insertions(+), 48 deletions(-)
diff --git a/configure b/configure
index 8d12b715e3..708cf365f0 100755
--- a/configure
+++ b/configure
@@ -6965,10 +6965,6 @@ fi
mv $cross config-meson.cross
rm -rf meson-private meson-info meson-logs
-unset staticpic
-if ! version_ge "$($meson --version)" 0.56.0; then
- staticpic=$(if test "$pie" = yes; then echo true; else echo false; fi)
-fi
NINJA=$ninja $meson setup \
--prefix "$prefix" \
--libdir "$libdir" \
@@ -6988,7 +6984,6 @@ NINJA=$ninja $meson setup \
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
-Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
- ${staticpic:+-Db_staticpic=$staticpic} \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
-Db_lto=$lto -Dcfi=$cfi -Dcfi_debug=$cfi_debug \
-Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \
diff --git a/docs/meson.build b/docs/meson.build
index bb8fe4c9e4..4e88ed7516 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -38,12 +38,12 @@ endif
if build_docs
SPHINX_ARGS += ['-Dversion=' + meson.project_version(), '-Drelease=' + config_host['PKGVERSION']]
- sphinx_extn_depends = [ meson.source_root() / 'docs/sphinx/depfile.py',
- meson.source_root() / 'docs/sphinx/hxtool.py',
- meson.source_root() / 'docs/sphinx/kerneldoc.py',
- meson.source_root() / 'docs/sphinx/kernellog.py',
- meson.source_root() / 'docs/sphinx/qapidoc.py',
- meson.source_root() / 'docs/sphinx/qmp_lexer.py',
+ sphinx_extn_depends = [ meson.current_source_dir() / 'sphinx/depfile.py',
+ meson.current_source_dir() / 'sphinx/hxtool.py',
+ meson.current_source_dir() / 'sphinx/kerneldoc.py',
+ meson.current_source_dir() / 'sphinx/kernellog.py',
+ meson.current_source_dir() / 'sphinx/qapidoc.py',
+ meson.current_source_dir() / 'sphinx/qmp_lexer.py',
qapi_gen_depends ]
configure_file(output: 'index.html',
diff --git a/meson.build b/meson.build
index 77ac9ec01b..39fc9b7143 100644
--- a/meson.build
+++ b/meson.build
@@ -1,14 +1,10 @@
-project('qemu', ['c'], meson_version: '>=0.55.0',
- default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11', 'b_colorout=auto'] +
- (meson.version().version_compare('>=0.56.0') ? [ 'b_staticpic=false' ] : []),
- version: run_command('head', meson.source_root() / 'VERSION').stdout().strip())
+project('qemu', ['c'], meson_version: '>=0.56.0',
+ default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11', 'b_colorout=auto',
+ 'b_staticpic=false'],
+ version: run_command('head', meson.project_source_root() / 'VERSION').stdout().strip())
not_found = dependency('', required: false)
-if meson.version().version_compare('>=0.56.0')
- keyval = import('keyval')
-else
- keyval = import('unstable-keyval')
-endif
+keyval = import('keyval')
ss = import('sourceset')
fs = import('fs')
@@ -1372,21 +1368,21 @@ genh += configure_file(output: 'config-host.h', configuration: config_host_data)
hxtool = find_program('scripts/hxtool')
shaderinclude = find_program('scripts/shaderinclude.pl')
qapi_gen = find_program('scripts/qapi-gen.py')
-qapi_gen_depends = [ meson.source_root() / 'scripts/qapi/__init__.py',
- meson.source_root() / 'scripts/qapi/commands.py',
- meson.source_root() / 'scripts/qapi/common.py',
- meson.source_root() / 'scripts/qapi/error.py',
- meson.source_root() / 'scripts/qapi/events.py',
- meson.source_root() / 'scripts/qapi/expr.py',
- meson.source_root() / 'scripts/qapi/gen.py',
- meson.source_root() / 'scripts/qapi/introspect.py',
- meson.source_root() / 'scripts/qapi/parser.py',
- meson.source_root() / 'scripts/qapi/schema.py',
- meson.source_root() / 'scripts/qapi/source.py',
- meson.source_root() / 'scripts/qapi/types.py',
- meson.source_root() / 'scripts/qapi/visit.py',
- meson.source_root() / 'scripts/qapi/common.py',
- meson.source_root() / 'scripts/qapi-gen.py'
+qapi_gen_depends = [ meson.current_source_dir() / 'scripts/qapi/__init__.py',
+ meson.current_source_dir() / 'scripts/qapi/commands.py',
+ meson.current_source_dir() / 'scripts/qapi/common.py',
+ meson.current_source_dir() / 'scripts/qapi/error.py',
+ meson.current_source_dir() / 'scripts/qapi/events.py',
+ meson.current_source_dir() / 'scripts/qapi/expr.py',
+ meson.current_source_dir() / 'scripts/qapi/gen.py',
+ meson.current_source_dir() / 'scripts/qapi/introspect.py',
+ meson.current_source_dir() / 'scripts/qapi/parser.py',
+ meson.current_source_dir() / 'scripts/qapi/schema.py',
+ meson.current_source_dir() / 'scripts/qapi/source.py',
+ meson.current_source_dir() / 'scripts/qapi/types.py',
+ meson.current_source_dir() / 'scripts/qapi/visit.py',
+ meson.current_source_dir() / 'scripts/qapi/common.py',
+ meson.current_source_dir() / 'scripts/qapi-gen.py'
]
tracetool = [
@@ -1894,14 +1890,14 @@ foreach target : target_dirs
if target.endswith('-softmmu')
execs = [{
'name': 'qemu-system-' + target_name,
- 'gui': false,
+ 'win_subsystem': 'console',
'sources': files('softmmu/main.c'),
'dependencies': []
}]
if targetos == 'windows' and (sdl.found() or gtk.found())
execs += [{
'name': 'qemu-system-' + target_name + 'w',
- 'gui': true,
+ 'win_subsystem': 'windows',
'sources': files('softmmu/main.c'),
'dependencies': []
}]
@@ -1910,7 +1906,7 @@ foreach target : target_dirs
specific_fuzz = specific_fuzz_ss.apply(config_target, strict: false)
execs += [{
'name': 'qemu-fuzz-' + target_name,
- 'gui': false,
+ 'win_subsystem': 'console',
'sources': specific_fuzz.sources(),
'dependencies': specific_fuzz.dependencies(),
}]
@@ -1918,7 +1914,7 @@ foreach target : target_dirs
else
execs = [{
'name': 'qemu-' + target_name,
- 'gui': false,
+ 'win_subsystem': 'console',
'sources': [],
'dependencies': []
}]
@@ -1933,7 +1929,7 @@ foreach target : target_dirs
link_language: link_language,
link_depends: [block_syms, qemu_syms] + exe.get('link_depends', []),
link_args: link_args,
- gui_app: exe['gui'])
+ win_subsystem: exe['win_subsystem'])
}
if 'CONFIG_TRACE_SYSTEMTAP' in config_host
diff --git a/plugins/meson.build b/plugins/meson.build
index e77723010e..d58efc980e 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -1,7 +1,7 @@
if 'CONFIG_HAS_LD_DYNAMIC_LIST' in config_host
- plugin_ldflags = ['-Wl,--dynamic-list=' + (meson.build_root() / 'qemu-plugins-ld.symbols')]
+ plugin_ldflags = ['-Wl,--dynamic-list=' + (meson.project_build_root() / 'qemu-plugins-ld.symbols')]
elif 'CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST' in config_host
- plugin_ldflags = ['-Wl,-exported_symbols_list,' + (meson.build_root() / 'qemu-plugins-ld64.symbols')]
+ plugin_ldflags = ['-Wl,-exported_symbols_list,' + (meson.project_build_root() / 'qemu-plugins-ld64.symbols')]
else
plugin_ldflags = []
endif
diff --git a/tests/meson.build b/tests/meson.build
index 1fa068f27b..0b8c3c6f32 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -113,7 +113,7 @@ tests = {
'test-keyval': [testqapi],
'test-logging': [],
'test-uuid': [],
- 'ptimer-test': ['ptimer-test-stubs.c', meson.source_root() / 'hw/core/ptimer.c'],
+ 'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'],
'test-qapi-util': [],
}
diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
index 304ef939bd..26588396d2 100644
--- a/tests/qapi-schema/meson.build
+++ b/tests/qapi-schema/meson.build
@@ -1,5 +1,5 @@
test_env = environment()
-test_env.set('PYTHONPATH', meson.source_root() / 'scripts')
+test_env.set('PYTHONPATH', meson.project_source_root() / 'scripts')
test_env.set('PYTHONIOENCODING', 'utf-8')
schemas = [
@@ -240,7 +240,7 @@ if build_docs
# clutter up the build dir with the cache.
command: [SPHINX_ARGS,
'-b', 'text', '-E',
- '-c', meson.source_root() / 'docs',
+ '-c', meson.project_source_root() / 'docs',
'-D', 'master_doc=doc-good',
meson.current_source_dir(),
meson.current_build_dir()])
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 6a67c538be..450af3e51c 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -237,7 +237,7 @@ foreach dir : target_dirs
qtest_env.set('QTEST_QEMU_IMG', './qemu-img')
test_deps += [qemu_img]
endif
- qtest_env.set('G_TEST_DBUS_DAEMON', meson.source_root() / 'tests/dbus-vmstate-daemon.sh')
+ qtest_env.set('G_TEST_DBUS_DAEMON', meson.project_source_root() / 'tests/dbus-vmstate-daemon.sh')
qtest_env.set('QTEST_QEMU_BINARY', './qemu-system-' + target_base)
foreach test : target_qtests
diff --git a/trace/meson.build b/trace/meson.build
index b19309b327..012d0dbceb 100644
--- a/trace/meson.build
+++ b/trace/meson.build
@@ -2,7 +2,7 @@ specific_ss.add(files('control-target.c'))
trace_events_files = []
foreach dir : [ '.' ] + trace_events_subdirs
- trace_events_file = meson.source_root() / dir / 'trace-events'
+ trace_events_file = meson.project_source_root() / dir / 'trace-events'
trace_events_files += [ trace_events_file ]
group_name = dir == '.' ? 'root' : dir.underscorify()
group = '--group=' + group_name
@@ -68,7 +68,7 @@ foreach d : [
]
gen = custom_target(d[0],
output: d[0],
- input: meson.source_root() / 'trace-events',
+ input: meson.project_source_root() / 'trace-events',
command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@' ],
capture: true)
specific_ss.add(when: 'CONFIG_TCG', if_true: gen)
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/7] meson: fix detection of curses with pkgconfig
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (2 preceding siblings ...)
2020-12-16 15:02 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
2020-12-16 15:02 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 39fc9b7143..ab622ae8bd 100644
--- a/meson.build
+++ b/meson.build
@@ -500,16 +500,16 @@ if have_system and not get_option('curses').disabled()
endif
endforeach
msg = get_option('curses').enabled() ? 'curses library not found' : ''
+ curses_compile_args = ['-DNCURSES_WIDECHAR']
if curses.found()
- if cc.links(curses_test, dependencies: [curses])
- curses = declare_dependency(compile_args: '-DNCURSES_WIDECHAR', dependencies: [curses])
+ if cc.links(curses_test, args: curses_compile_args, dependencies: [curses])
+ curses = declare_dependency(compile_args: curses_compile_args, dependencies: [curses])
else
msg = 'curses package not usable'
curses = not_found
endif
endif
if not curses.found()
- curses_compile_args = ['-DNCURSES_WIDECHAR']
has_curses_h = cc.has_header('curses.h', args: curses_compile_args)
if targetos != 'windows' and not has_curses_h
message('Trying with /usr/include/ncursesw')
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/7] meson: use pkg-config method for libudev
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (3 preceding siblings ...)
2020-12-16 15:02 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
2020-12-16 15:02 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
2020-12-16 15:02 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
Do not bother asking CMake, this is a pkg-config dependency.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/meson.build b/meson.build
index ab622ae8bd..0b36fb38f1 100644
--- a/meson.build
+++ b/meson.build
@@ -399,6 +399,7 @@ endif
libudev = not_found
if targetos == 'linux' and (have_system or have_tools)
libudev = dependency('libudev',
+ method: 'pkg-config',
required: get_option('libudev'),
static: enable_static)
endif
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 6/7] meson: use dependency to gate block modules
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (4 preceding siblings ...)
2020-12-16 15:02 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
2020-12-16 15:02 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
This will allow converting the dependencies to meson options one by one,
because moving the tests to meson.build will get rid of the symbols
in config-host.mak.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
block/meson.build | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/block/meson.build b/block/meson.build
index 5dcc1e5cce..b02cb14aad 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -70,14 +70,14 @@ block_modules = {}
modsrc = []
foreach m : [
- ['CONFIG_CURL', 'curl', [curl, glib], 'curl.c'],
- ['CONFIG_GLUSTERFS', 'gluster', glusterfs, 'gluster.c'],
- ['CONFIG_LIBISCSI', 'iscsi', libiscsi, 'iscsi.c'],
- ['CONFIG_LIBNFS', 'nfs', libnfs, 'nfs.c'],
- ['CONFIG_LIBSSH', 'ssh', libssh, 'ssh.c'],
- ['CONFIG_RBD', 'rbd', rbd, 'rbd.c'],
+ [curl, 'curl', [curl, glib], 'curl.c'],
+ [glusterfs, 'gluster', glusterfs, 'gluster.c'],
+ [libiscsi, 'iscsi', libiscsi, 'iscsi.c'],
+ [libnfs, 'nfs', libnfs, 'nfs.c'],
+ [libssh, 'ssh', libssh, 'ssh.c'],
+ [rbd, 'rbd', rbd, 'rbd.c'],
]
- if config_host.has_key(m[0])
+ if m[0].found()
if enable_modules
modsrc += files(m[3])
endif
@@ -90,10 +90,10 @@ endforeach
# those are not exactly regular block modules, so treat them apart
if 'CONFIG_DMG' in config_host
foreach m : [
- ['CONFIG_LZFSE', 'dmg-lzfse', liblzfse, 'dmg-lzfse.c'],
- ['CONFIG_BZIP2', 'dmg-bz2', [glib, libbzip2], 'dmg-bz2.c']
+ [liblzfse, 'dmg-lzfse', liblzfse, 'dmg-lzfse.c'],
+ [libbzip2, 'dmg-bz2', [glib, libbzip2], 'dmg-bz2.c']
]
- if config_host.has_key(m[0])
+ if m[0].found()
module_ss = ss.source_set()
module_ss.add(when: m[2], if_true: files(m[3]))
block_modules += {m[1] : module_ss}
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 7/7] meson: cleanup Kconfig.host handling
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (5 preceding siblings ...)
2020-12-16 15:02 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
@ 2020-12-16 15:02 ` Paolo Bonzini
6 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 15:02 UTC (permalink / raw)
To: qemu-devel
Build the array of command line arguments coming from config_host
once for all targets. Add all accelerators to accel/Kconfig so
that the command line arguments for accelerators can be computed
easily in the existing "foreach sym: accelerators" loop.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
accel/Kconfig | 9 +++++++++
docs/devel/kconfig.rst | 19 +++++++++----------
meson.build | 43 +++++++++++++++++-------------------------
3 files changed, 35 insertions(+), 36 deletions(-)
diff --git a/accel/Kconfig b/accel/Kconfig
index 2ad94a3839..461104c771 100644
--- a/accel/Kconfig
+++ b/accel/Kconfig
@@ -1,3 +1,12 @@
+config WHPX
+ bool
+
+config HAX
+ bool
+
+config HVF
+ bool
+
config TCG
bool
diff --git a/docs/devel/kconfig.rst b/docs/devel/kconfig.rst
index 336ba0e8e5..cb2d7ffac0 100644
--- a/docs/devel/kconfig.rst
+++ b/docs/devel/kconfig.rst
@@ -288,21 +288,20 @@ they will include all these symbols and some help text on what they do.
----------------
In some special cases, a configurable element depends on host features
-that are detected by QEMU's configure script; for example some devices
-depend on the availability of KVM or on the presence of a library on
-the host.
+that are detected by QEMU's configure or ``meson.build`` scripts; for
+example some devices depend on the availability of KVM or on the presence
+of a library on the host.
These symbols should be listed in ``Kconfig.host`` like this::
- config KVM
+ config TPM
bool
-and also listed as follows in the top-level Makefile's ``MINIKCONF_ARGS``
+and also listed as follows in the top-level meson.build's host_kconfig
variable::
- MINIKCONF_ARGS = \
- $@ $*/config-devices.mak.d $< $(MINIKCONF_INPUTS) \
- CONFIG_KVM=$(CONFIG_KVM) \
- CONFIG_SPICE=$(CONFIG_SPICE) \
- CONFIG_TPM=$(CONFIG_TPM) \
+ host_kconfig = \
+ ('CONFIG_TPM' in config_host ? ['CONFIG_TPM=y'] : []) + \
+ ('CONFIG_SPICE' in config_host ? ['CONFIG_SPICE=y'] : []) + \
+ ('CONFIG_IVSHMEM' in config_host ? ['CONFIG_IVSHMEM=y'] : []) + \
...
diff --git a/meson.build b/meson.build
index 0b36fb38f1..bb198f792a 100644
--- a/meson.build
+++ b/meson.build
@@ -954,21 +954,19 @@ if link_language == 'cpp'
}
endif
-kconfig_external_symbols = [
- 'CONFIG_KVM',
- 'CONFIG_XEN',
- 'CONFIG_TPM',
- 'CONFIG_SPICE',
- 'CONFIG_IVSHMEM',
- 'CONFIG_OPENGL',
- 'CONFIG_X11',
- 'CONFIG_VHOST_USER',
- 'CONFIG_VHOST_VDPA',
- 'CONFIG_VHOST_KERNEL',
- 'CONFIG_VIRTFS',
- 'CONFIG_LINUX',
- 'CONFIG_PVRDMA',
-]
+host_kconfig = \
+ ('CONFIG_TPM' in config_host ? ['CONFIG_TPM=y'] : []) + \
+ ('CONFIG_SPICE' in config_host ? ['CONFIG_SPICE=y'] : []) + \
+ ('CONFIG_IVSHMEM' in config_host ? ['CONFIG_IVSHMEM=y'] : []) + \
+ ('CONFIG_OPENGL' in config_host ? ['CONFIG_OPENGL=y'] : []) + \
+ ('CONFIG_X11' in config_host ? ['CONFIG_X11=y'] : []) + \
+ ('CONFIG_VHOST_USER' in config_host ? ['CONFIG_VHOST_USER=y'] : []) + \
+ ('CONFIG_VHOST_VDPA' in config_host ? ['CONFIG_VHOST_VDPA=y'] : []) + \
+ ('CONFIG_VHOST_KERNEL' in config_host ? ['CONFIG_VHOST_KERNEL=y'] : []) + \
+ ('CONFIG_VIRTFS' in config_host ? ['CONFIG_VIRTFS=y'] : []) + \
+ ('CONFIG_LINUX' in config_host ? ['CONFIG_LINUX=y'] : []) + \
+ ('CONFIG_PVRDMA' in config_host ? ['CONFIG_PVRDMA=y'] : [])
+
ignored = [ 'TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_ARCH' ]
default_targets = 'CONFIG_DEFAULT_TARGETS' in config_host
@@ -1003,7 +1001,7 @@ foreach target : target_dirs
}
endif
- have_accel = false
+ accel_kconfig = []
foreach sym: accelerators
if sym == 'CONFIG_TCG' or target in accelerator_targets.get(sym, [])
config_target += { sym: 'y' }
@@ -1011,10 +1009,10 @@ foreach target : target_dirs
if sym == 'CONFIG_XEN' and have_xen_pci_passthrough
config_target += { 'CONFIG_XEN_PCI_PASSTHROUGH': 'y' }
endif
- have_accel = true
+ accel_kconfig += [ sym + '=y' ]
endif
endforeach
- if not have_accel
+ if accel_kconfig.length() == 0
if default_targets
continue
endif
@@ -1068,13 +1066,6 @@ foreach target : target_dirs
configuration: config_target_data)}
if target.endswith('-softmmu')
- base_kconfig = []
- foreach sym : kconfig_external_symbols
- if sym in config_target or sym in config_host
- base_kconfig += '@0@=y'.format(sym)
- endif
- endforeach
-
config_devices_mak = target + '-config-devices.mak'
config_devices_mak = configure_file(
input: ['default-configs/devices' / target + '.mak', 'Kconfig'],
@@ -1083,7 +1074,7 @@ foreach target : target_dirs
capture: true,
command: [minikconf, config_host['CONFIG_MINIKCONF_MODE'],
config_devices_mak, '@DEPFILE@', '@INPUT@',
- base_kconfig])
+ host_kconfig, accel_kconfig])
config_devices_data = configuration_data()
config_devices = keyval.load(config_devices_mak)
--
2.29.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0
@ 2020-12-16 16:19 Paolo Bonzini
0 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:19 UTC (permalink / raw)
To: qemu-devel
Mostly switching to 0.56.0 in order to remove the b_staticpic
version-dependent hack.
Paolo Bonzini (7):
Makefile: add dummy target for build.ninja dependencies
meson: update submodule to 0.56.0
meson: switch minimum meson version to 0.56.0
meson: fix detection of curses with pkgconfig
meson: use pkg-config method for libudev
meson: use dependency to gate block modules
meson: cleanup Kconfig.host handling
Makefile | 1 +
accel/Kconfig | 9 +++
block/meson.build | 20 +++----
configure | 7 +--
docs/devel/kconfig.rst | 19 +++----
docs/meson.build | 12 ++--
meson | 2 +-
meson.build | 104 +++++++++++++++-------------------
plugins/meson.build | 4 +-
tests/meson.build | 2 +-
tests/qapi-schema/meson.build | 4 +-
tests/qtest/meson.build | 2 +-
trace/meson.build | 4 +-
13 files changed, 91 insertions(+), 99 deletions(-)
--
2.29.2
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-12-16 16:21 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-16 15:02 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
2020-12-16 15:02 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
2020-12-16 15:02 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
2020-12-16 15:02 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
2020-12-16 15:02 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
2020-12-16 15:02 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
2020-12-16 15:02 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
2020-12-16 15:02 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
-- strict thread matches above, loose matches on Subject: below --
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
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).