aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/ninjabackend.py2
-rw-r--r--mesonbuild/build.py12
2 files changed, 11 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index a3b9ce8..405bd26 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1757,7 +1757,7 @@ rule FORTRAN_DEP_HACK%s
exe_arr = self.exe_object_to_cmd_array(exe)
infilelist = genlist.get_inputs()
outfilelist = genlist.get_outputs()
- extra_dependencies = [os.path.join(self.build_to_src, i) for i in genlist.extra_depends]
+ extra_dependencies = self.get_custom_target_depend_files(genlist)
for i in range(len(infilelist)):
curfile = infilelist[i]
if len(generator.outputs) == 1:
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index dae94b6..66f08d8 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -1365,8 +1365,17 @@ class GeneratedList:
self.outfilelist = []
self.outmap = {}
self.extra_depends = []
+ self.depend_files = []
self.preserve_path_from = preserve_path_from
self.extra_args = extra_args
+ if isinstance(generator.exe, dependencies.ExternalProgram):
+ if not generator.exe.found():
+ raise InvalidArguments('Tried to use not-found external program as generator')
+ path = generator.exe.get_path()
+ if os.path.isabs(path):
+ # Can only add a dependency on an external program which we
+ # know the absolute path of
+ self.depend_files.append(File.from_absolute_file(path))
def add_preserved_path_segment(self, infile, outfiles, state):
result = []
@@ -1962,8 +1971,7 @@ class CustomTarget(Target):
final_cmd.append(c)
elif isinstance(c, dependencies.ExternalProgram):
if not c.found():
- m = 'Tried to use not-found external program {!r} in "command"'
- raise InvalidArguments(m.format(c.name))
+ raise InvalidArguments('Tried to use not-found external program in "command"')
path = c.get_path()
if os.path.isabs(path):
# Can only add a dependency on an external program which we