diff options
| author | David Véron <david.veron@rubycat.eu> | 2025-07-24 14:38:48 +0200 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-12-08 10:12:21 -0800 |
| commit | c8a7fd7ff641ad664803bcbf06ada494e0db91aa (patch) | |
| tree | 78932b51e6416b0a31d3816895d86f6a7182ea5c | |
| parent | 7cbde1ff43410a7953456609059461058fcbf66e (diff) | |
| download | meson-c8a7fd7ff641ad664803bcbf06ada494e0db91aa.tar.gz | |
qt.compile_moc: look for targets in dependencies
If qt.compile_moc dependencies contain targets.
The generated build does not exibit this dependency ie it is possible
that the dependency build is run concurrently with MOC.
Tell the generator that the MOC calls depends on targets in dependencies to
be generated.
| -rw-r--r-- | mesonbuild/modules/_qt.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mesonbuild/modules/_qt.py b/mesonbuild/modules/_qt.py index b75169e4b..ae6e2d477 100644 --- a/mesonbuild/modules/_qt.py +++ b/mesonbuild/modules/_qt.py @@ -568,11 +568,15 @@ class QtBaseModule(ExtensionModule): inc = state.get_include_args(include_dirs=kwargs['include_directories']) compile_args: T.List[str] = [] + sources: T.List[T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]] = [] for dep in kwargs['dependencies']: compile_args.extend(a for a in dep.get_all_compile_args() if a.startswith(('-I', '-D'))) if isinstance(dep, InternalDependency): for incl in dep.include_directories: compile_args.extend(f'-I{i}' for i in incl.to_string_list(self.interpreter.source_root, self.interpreter.environment.build_dir)) + for src in dep.sources: + if isinstance(src, (build.CustomTarget, build.BuildTarget, build.CustomTargetIndex)): + sources.append(src) output: T.List[build.GeneratedList] = [] @@ -593,6 +597,7 @@ class QtBaseModule(ExtensionModule): moc_gen = build.Generator( state.environment, self.tools['moc'], arguments, header_gen_output, + depends=sources, depfile='moc_@BASENAME@.cpp.d', name=f'Qt{self.qt_version} moc header') output.append(moc_gen.process_files(kwargs['headers'], state.subdir, preserve_path_from)) |
