diff mbox series

meson: build all modules by default

Message ID 20220107120143.522834-1-pbonzini@redhat.com
State New
Headers show
Series meson: build all modules by default | expand

Commit Message

Paolo Bonzini Jan. 7, 2022, 12:01 p.m. UTC
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
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build             | 4 +++-
 tests/qtest/meson.build | 3 +--
 2 files changed, 4 insertions(+), 3 deletions(-)

Comments

Li Zhang Jan. 7, 2022, 5:05 p.m. UTC | #1
On 1/7/22 1:01 PM, Paolo Bonzini wrote:
> 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
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>   meson.build             | 4 +++-
>   tests/qtest/meson.build | 3 +--
>   2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index 6489ff8425..703eefea13 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2866,8 +2866,10 @@ common_ss.add(hwcore)
>   # Targets #
>   ###########
>   
> +emulator_modules = []
>   foreach m : block_mods + softmmu_mods
> -  shared_module(m.name(),
> +  emulator_modules += shared_module(m.name(),
> +                build_by_default: true,
>                   name_prefix: '',
>                   link_whole: m,
>                   install: true,
> diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
> index 37e1eaa449..26937deb6d 100644
> --- a/tests/qtest/meson.build
> +++ b/tests/qtest/meson.build
> @@ -335,10 +335,9 @@ foreach dir : target_dirs
>           test: executable(test, src, dependencies: deps)
>         }
>       endif
> -    # FIXME: missing dependency on the emulator binary and qemu-img
>       test('qtest-@0@/@1@'.format(target_base, test),
>            qtest_executables[test],
> -         depends: [test_deps, qtest_emulator],
> +         depends: [test_deps, qtest_emulator, emulator_modules],
>            env: qtest_env,
>            args: ['--tap', '-k'],
>            protocol: 'tap',
> 

Thanks. The issue is fixed.

Tested-by: Li Zhang <lizhang@suse.de>

Thanks
Li
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 6489ff8425..703eefea13 100644
--- a/meson.build
+++ b/meson.build
@@ -2866,8 +2866,10 @@  common_ss.add(hwcore)
 # Targets #
 ###########
 
+emulator_modules = []
 foreach m : block_mods + softmmu_mods
-  shared_module(m.name(),
+  emulator_modules += shared_module(m.name(),
+                build_by_default: true,
                 name_prefix: '',
                 link_whole: m,
                 install: true,
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 37e1eaa449..26937deb6d 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -335,10 +335,9 @@  foreach dir : target_dirs
         test: executable(test, src, dependencies: deps)
       }
     endif
-    # FIXME: missing dependency on the emulator binary and qemu-img
     test('qtest-@0@/@1@'.format(target_base, test),
          qtest_executables[test],
-         depends: [test_deps, qtest_emulator],
+         depends: [test_deps, qtest_emulator, emulator_modules],
          env: qtest_env,
          args: ['--tap', '-k'],
          protocol: 'tap',