diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2022-06-19 22:16:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-19 22:16:20 +0300 |
commit | df4714be951bc8f7545cb5e78181274033dd86e4 (patch) | |
tree | abe8e1c809aa052d8efb1dfd20ea58ebe297505d /mesonbuild/backend | |
parent | 22dcb692adefea7d51e480e36a53446cc0777c01 (diff) | |
parent | e9576a43611d751a8405525cf32ee0109787d161 (diff) | |
download | meson-df4714be951bc8f7545cb5e78181274033dd86e4.zip meson-df4714be951bc8f7545cb5e78181274033dd86e4.tar.gz meson-df4714be951bc8f7545cb5e78181274033dd86e4.tar.bz2 |
Merge pull request #10464 from rtbo/fix_generated_deps
add D generated files to order-only deps
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 53da0f7..06348b4 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -833,6 +833,11 @@ class NinjaBackend(backends.Backend): # people generate files with weird suffixes (.inc, .fh) that they then include # in their source files. header_deps.append(raw_src) + + # For D language, the object of generated source files are added + # as order only deps because other files may depend on them + d_generated_deps = [] + # These are the generated source files that need to be built for use by # this target. We create the Ninja build file elements for this here # because we need `header_deps` to be fully generated in the above loop. @@ -845,6 +850,8 @@ class NinjaBackend(backends.Backend): compiled_sources.append(s) source2object[s] = o obj_list.append(o) + if s.split('.')[-1] in compilers.lang_suffixes['d']: + d_generated_deps.append(o) use_pch = self.environment.coredata.options.get(OptionKey('b_pch')) if use_pch and target.has_pch(): @@ -891,7 +898,7 @@ class NinjaBackend(backends.Backend): src.rel_to_builddir(self.build_to_src)) unity_src.append(abs_src) else: - o, s = self.generate_single_compile(target, src, False, [], header_deps) + o, s = self.generate_single_compile(target, src, False, [], header_deps + d_generated_deps) obj_list.append(o) compiled_sources.append(s) source2object[s] = o @@ -899,7 +906,7 @@ class NinjaBackend(backends.Backend): obj_list += self.flatten_object_list(target) if is_unity: for src in self.generate_unity_files(target, unity_src): - o, s = self.generate_single_compile(target, src, True, unity_deps + header_deps) + o, s = self.generate_single_compile(target, src, True, unity_deps + header_deps + d_generated_deps) obj_list.append(o) compiled_sources.append(s) source2object[s] = o |