diff options
Diffstat (limited to 'ninjabackend.py')
-rw-r--r-- | ninjabackend.py | 9 |
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)) |