This does not have any effect on Meson's behavior itself, since "meson test"
always rebuilds everything (that is one reason why we are not using it...).
However, mtest2make can use this information to do a selective rebuild
for the requested suite.
Cc: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 7 ++++---
tests/qtest/meson.build | 2 ++
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 848223778d..f5c9c04e40 100644
--- a/meson.build
+++ b/meson.build
@@ -1094,7 +1094,7 @@ common_all = static_library('common',
feature_to_c = find_program('scripts/feature_to_c.sh')
-emulators = []
+emulators = {}
foreach target : target_dirs
config_target = config_target_mak[target]
target_name = config_target['TARGET_NAME']
@@ -1213,7 +1213,8 @@ foreach target : target_dirs
}]
endif
foreach exe: execs
- emulators += executable(exe['name'], exe['sources'],
+ emulators += {exe['name']:
+ executable(exe['name'], exe['sources'],
install: true,
c_args: c_args,
dependencies: arch_deps + deps + exe['dependencies'],
@@ -1222,6 +1223,7 @@ foreach target : target_dirs
link_depends: [block_syms, qemu_syms] + exe.get('link_depends', []),
link_args: link_args,
gui_app: exe['gui'])
+ }
if 'CONFIG_TRACE_SYSTEMTAP' in config_host
foreach stp: [
@@ -1267,7 +1269,6 @@ if xkbcommon.found()
dependencies: [qemuutil, xkbcommon], install: have_tools)
endif
-qemu_block_tools = []
if have_tools
qemu_img = executable('qemu-img', [files('qemu-img.c'), hxdep],
dependencies: [authz, block, crypto, io, qom, qemuutil], install: true)
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 874b5be62b..359a6cde64 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -228,6 +228,7 @@ foreach dir : target_dirs
endif
target_base = dir.split('-')[0]
+ qtest_emulator = emulators['qemu-system-' + target_base]
qtests = get_variable('qtests_' + target_base, []) + qtests_generic
qtest_env = environment()
@@ -248,6 +249,7 @@ foreach dir : target_dirs
# FIXME: missing dependency on the emulator binary and qemu-img
test('qtest-@0@: @1@'.format(target_base, test),
qtest_executables[test],
+ depends: [qemu_img, qtest_emulator],
env: qtest_env,
args: ['--tap', '-k'],
protocol: 'tap',
--
2.26.2