* [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
0 siblings, 0 replies; 15+ 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] 15+ messages in thread
* [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0
@ 2020-12-16 16:19 Paolo Bonzini
2020-12-16 16:20 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
` (6 more replies)
0 siblings, 7 replies; 15+ 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] 15+ messages in thread
* [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 16:20 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
` (5 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* [PATCH 2/7] meson: update submodule to 0.56.0
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
2020-12-16 16:20 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 16:52 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
` (4 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* [PATCH 3/7] meson: switch minimum meson version to 0.56.0
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
2020-12-16 16:20 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
2020-12-16 16:20 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 16:53 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
` (3 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* [PATCH 4/7] meson: fix detection of curses with pkgconfig
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (2 preceding siblings ...)
2020-12-16 16:20 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 16:54 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
` (2 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* [PATCH 5/7] meson: use pkg-config method for libudev
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (3 preceding siblings ...)
2020-12-16 16:20 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 16:56 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
2020-12-16 16:20 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
6 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* [PATCH 6/7] meson: use dependency to gate block modules
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (4 preceding siblings ...)
2020-12-16 16:20 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 16:57 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
6 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* [PATCH 7/7] meson: cleanup Kconfig.host handling
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
` (5 preceding siblings ...)
2020-12-16 16:20 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
@ 2020-12-16 16:20 ` Paolo Bonzini
2020-12-16 17:18 ` Marc-André Lureau
6 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2020-12-16 16:20 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] 15+ messages in thread
* Re: [PATCH 2/7] meson: update submodule to 0.56.0
2020-12-16 16:20 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
@ 2020-12-16 16:52 ` Marc-André Lureau
0 siblings, 0 replies; 15+ messages in thread
From: Marc-André Lureau @ 2020-12-16 16:52 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU
[-- Attachment #1: Type: text/plain, Size: 1213 bytes --]
On Wed, Dec 16, 2020 at 8:25 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@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
>
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 2090 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 3/7] meson: switch minimum meson version to 0.56.0
2020-12-16 16:20 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
@ 2020-12-16 16:53 ` Marc-André Lureau
0 siblings, 0 replies; 15+ messages in thread
From: Marc-André Lureau @ 2020-12-16 16:53 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU
[-- Attachment #1: Type: text/plain, Size: 12713 bytes --]
On Wed, Dec 16, 2020 at 8:24 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> 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>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@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
>
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 16358 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 4/7] meson: fix detection of curses with pkgconfig
2020-12-16 16:20 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
@ 2020-12-16 16:54 ` Marc-André Lureau
0 siblings, 0 replies; 15+ messages in thread
From: Marc-André Lureau @ 2020-12-16 16:54 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU
[-- Attachment #1: Type: text/plain, Size: 1456 bytes --]
On Wed, Dec 16, 2020 at 8:22 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@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
>
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 2318 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 5/7] meson: use pkg-config method for libudev
2020-12-16 16:20 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
@ 2020-12-16 16:56 ` Marc-André Lureau
0 siblings, 0 replies; 15+ messages in thread
From: Marc-André Lureau @ 2020-12-16 16:56 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU
[-- Attachment #1: Type: text/plain, Size: 880 bytes --]
On Wed, Dec 16, 2020 at 8:28 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> Do not bother asking CMake, this is a pkg-config dependency.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
What was the problem with the default behaviour? Do we need to set
pkg-config explicitly on all dependencies?
---
> 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
>
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 1612 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 6/7] meson: use dependency to gate block modules
2020-12-16 16:20 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
@ 2020-12-16 16:57 ` Marc-André Lureau
0 siblings, 0 replies; 15+ messages in thread
From: Marc-André Lureau @ 2020-12-16 16:57 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU
[-- Attachment #1: Type: text/plain, Size: 2100 bytes --]
On Wed, Dec 16, 2020 at 8:26 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> 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>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@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
>
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 3263 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 7/7] meson: cleanup Kconfig.host handling
2020-12-16 16:20 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
@ 2020-12-16 17:18 ` Marc-André Lureau
0 siblings, 0 replies; 15+ messages in thread
From: Marc-André Lureau @ 2020-12-16 17:18 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU
[-- Attachment #1: Type: text/plain, Size: 5693 bytes --]
Hi
On Wed, Dec 16, 2020 at 8:26 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> 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>
>
nice cleanup
Reviewed-by: Marc-André Lureau <marcandre.lureau@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
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 7434 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2020-12-16 17:35 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-16 16:19 [PATCH 0/7] First round of meson bugfixes and cleanups for 6.0 Paolo Bonzini
2020-12-16 16:20 ` [PATCH 1/7] Makefile: add dummy target for build.ninja dependencies Paolo Bonzini
2020-12-16 16:20 ` [PATCH 2/7] meson: update submodule to 0.56.0 Paolo Bonzini
2020-12-16 16:52 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 3/7] meson: switch minimum meson version " Paolo Bonzini
2020-12-16 16:53 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 4/7] meson: fix detection of curses with pkgconfig Paolo Bonzini
2020-12-16 16:54 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 5/7] meson: use pkg-config method for libudev Paolo Bonzini
2020-12-16 16:56 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 6/7] meson: use dependency to gate block modules Paolo Bonzini
2020-12-16 16:57 ` Marc-André Lureau
2020-12-16 16:20 ` [PATCH 7/7] meson: cleanup Kconfig.host handling Paolo Bonzini
2020-12-16 17:18 ` Marc-André Lureau
-- strict thread matches above, loose matches on Subject: below --
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
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).