Skip to content

Commit b97501d

Browse files
committed
backends/ninja: fix dependencies added as full but should be order-only
Due to the confusing naming of the parameters, a number of arguments were incorrectly added as full dependencies when they should be order only.
1 parent dd4f287 commit b97501d

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

mesonbuild/backend/ninjabackend.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,7 @@ def generate_target(self, target):
988988
if self.environment.is_llvm_ir(src):
989989
o, s = self.generate_llvm_ir_compile(target, src)
990990
else:
991-
o, s = self.generate_single_compile(target, src, True, order_deps=header_deps)
991+
o, s = self.generate_single_compile(target, src, True, full_deps=header_deps)
992992
compiled_sources.append(s)
993993
source2object[s] = o
994994
obj_list.append(o)
@@ -1032,7 +1032,7 @@ def generate_target(self, target):
10321032
else:
10331033
transpiled_source_files.append(raw_src)
10341034
for src in transpiled_source_files:
1035-
o, s = self.generate_single_compile(target, src, True, [], header_deps)
1035+
o, s = self.generate_single_compile(target, src, True, full_deps=header_deps)
10361036
obj_list.append(o)
10371037

10381038
# Generate compile targets for all the preexisting sources for this target
@@ -1046,17 +1046,21 @@ def generate_target(self, target):
10461046
src.rel_to_builddir(self.build_to_src))
10471047
unity_src.append(abs_src)
10481048
else:
1049-
o, s = self.generate_single_compile(target, src, False, [],
1050-
header_deps + d_generated_deps + fortran_order_deps,
1051-
fortran_inc_args)
1049+
o, s = self.generate_single_compile(
1050+
target, src, False,
1051+
full_deps=header_deps + d_generated_deps + fortran_order_deps,
1052+
extra_args=fortran_inc_args)
10521053
obj_list.append(o)
10531054
compiled_sources.append(s)
10541055
source2object[s] = o
10551056

10561057
if is_unity:
10571058
for src in self.generate_unity_files(target, unity_src):
1058-
o, s = self.generate_single_compile(target, src, True, unity_deps + header_deps + d_generated_deps,
1059-
fortran_order_deps, fortran_inc_args, unity_src)
1059+
o, s = self.generate_single_compile(
1060+
target, src, True,
1061+
full_deps=unity_deps + header_deps + d_generated_deps + fortran_order_deps,
1062+
extra_args=fortran_inc_args,
1063+
unity_sources=unity_src)
10601064
obj_list.append(o)
10611065
compiled_sources.append(s)
10621066
source2object[s] = o
@@ -2951,8 +2955,8 @@ def generate_common_compile_args_per_src_type(self, target: build.BuildTarget) -
29512955
def generate_single_compile(self, target: build.BuildTarget,
29522956
src: mesonlib.FileOrString,
29532957
is_generated: bool = False,
2954-
header_deps: T.Optional[T.Sequence[mesonlib.FileOrString]] = None,
2955-
order_deps: T.Optional[T.List['mesonlib.FileOrString']] = None,
2958+
order_deps: T.Optional[T.Sequence[mesonlib.FileOrString]] = None,
2959+
full_deps: T.Optional[T.List['mesonlib.FileOrString']] = None,
29562960
extra_args: T.Optional[T.List[str]] = None,
29572961
unity_sources: T.Optional[T.List[mesonlib.FileOrString]] = None,
29582962
) -> T.Tuple[str, str]:
@@ -2961,14 +2965,14 @@ def generate_single_compile(self, target: build.BuildTarget,
29612965
:param target: The target which the source belongs to
29622966
:param src: The source to be compiled
29632967
:param is_generated: Whether this source is generated or static, defaults to False
2964-
:param header_deps: Order only dependencies, defaults to None
2965-
:param order_deps: Dependencies which cause a full rebuild, defaults to None
2968+
:param order_deps: Order only dependencies, defaults to None
2969+
:param full_deps: Dependencies which cause a full rebuild, defaults to None
29662970
:param extra_args: Extra arguments just for this compilation unit, defaults to None
29672971
:param unity_sources: The sources that were combined into this unity, defaults to None
29682972
:return: A tuple with the object file that will be created and the source that was compiled
29692973
"""
2970-
header_deps = header_deps if header_deps is not None else []
29712974
order_deps = order_deps if order_deps is not None else []
2975+
full_deps = full_deps if full_deps is not None else []
29722976

29732977
if isinstance(src, str) and src.endswith('.h'):
29742978
raise AssertionError(f'BUG: sources should not contain headers {src!r}')
@@ -3060,7 +3064,7 @@ def generate_single_compile(self, target: build.BuildTarget,
30603064
commands.extend(extra_args)
30613065

30623066
element = NinjaBuildElement(self.all_outputs, rel_obj, compiler_name, rel_src)
3063-
self.add_full_deps(target, element, header_deps)
3067+
self.add_full_deps(target, element, full_deps)
30643068
for d in extra_deps:
30653069
element.add_dep(d)
30663070
self.add_order_deps(target, element, order_deps)

0 commit comments

Comments
 (0)