aboutsummaryrefslogtreecommitdiff
path: root/ninjabackend.py
diff options
context:
space:
mode:
Diffstat (limited to 'ninjabackend.py')
-rw-r--r--ninjabackend.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/ninjabackend.py b/ninjabackend.py
index d467c07..adfc59f 100644
--- a/ninjabackend.py
+++ b/ninjabackend.py
@@ -283,6 +283,12 @@ class NinjaBackend(backends.Backend):
if target.build_always:
deps.append('PHONY')
elem = NinjaBuildElement(ofilenames, 'CUSTOM_COMMAND', deps)
+ for d in target.extra_depends:
+ tmp = d.get_filename()
+ if not isinstance(tmp, list):
+ tmp = [tmp]
+ for fname in tmp:
+ elem.add_dep(os.path.join(d.get_subdir(), fname))
cmd = []
for i in target.command:
for (j, src) in enumerate(srcs):
@@ -992,6 +998,7 @@ rule FORTRAN_DEP_HACK
else:
exe_arr = exe.get_command()
base_args = generator.get_arglist()
+ extra_dependencies = [os.path.join(self.build_to_src, i) for i in genlist.extra_depends]
for i in range(len(infilelist)):
if len(generator.outputs) == 1:
sole_output = os.path.join(self.get_target_private_dir(target), outfilelist[i])
@@ -1008,6 +1015,8 @@ rule FORTRAN_DEP_HACK
for x in args]
cmdlist = exe_arr + args
elem = NinjaBuildElement(outfiles, 'CUSTOM_COMMAND', infilename)
+ if len(extra_dependencies) > 0:
+ elem.add_dep(extra_dependencies)
elem.add_item('DESC', 'Generating $out')
if isinstance(exe, build.BuildTarget):
elem.add_dep(self.get_target_filename(exe))