meson: build all modules by default

With more recent versions of Meson, the build.ninja file is more selective
as to what is built by default, and not building the modules results in test
failures.

Mark the modules as built-by-default and, to make the dependencies more
precise, also require them to be up-to-date before running tests.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/801
Tested-by: Li Zhang <lizhang@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2022-01-07 13:00:44 +01:00
parent bb7cb3ad29
commit fb72176ba6
2 changed files with 4 additions and 3 deletions

View File

@ -2866,8 +2866,10 @@ common_ss.add(hwcore)
# Targets # # Targets #
########### ###########
emulator_modules = []
foreach m : block_mods + softmmu_mods foreach m : block_mods + softmmu_mods
shared_module(m.name(), emulator_modules += shared_module(m.name(),
build_by_default: true,
name_prefix: '', name_prefix: '',
link_whole: m, link_whole: m,
install: true, install: true,

View File

@ -335,10 +335,9 @@ foreach dir : target_dirs
test: executable(test, src, dependencies: deps) test: executable(test, src, dependencies: deps)
} }
endif endif
# FIXME: missing dependency on the emulator binary and qemu-img
test('qtest-@0@/@1@'.format(target_base, test), test('qtest-@0@/@1@'.format(target_base, test),
qtest_executables[test], qtest_executables[test],
depends: [test_deps, qtest_emulator], depends: [test_deps, qtest_emulator, emulator_modules],
env: qtest_env, env: qtest_env,
args: ['--tap', '-k'], args: ['--tap', '-k'],
protocol: 'tap', protocol: 'tap',