aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/backend/ninjabackend.py1
-rw-r--r--mesonbuild/build.py7
-rw-r--r--mesonbuild/interpreter.py7
3 files changed, 14 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index b897180..591b2f4 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1800,6 +1800,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485'''))
cmd = cmdlist
elem = NinjaBuildElement(self.all_outputs, outfiles, rulename, infilename)
+ elem.add_dep([self.get_target_filename(x) for x in generator.depends])
if generator.depfile is not None:
elem.add_item('DEPFILE', depfile)
if len(extra_dependencies) > 0:
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index d51e2e3..65b2c20 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -1273,6 +1273,7 @@ class Generator:
self.exe = exe
self.depfile = None
self.capture = False
+ self.depends = []
self.process_kwargs(kwargs)
def __repr__(self):
@@ -1321,6 +1322,12 @@ class Generator:
if not isinstance(capture, bool):
raise InvalidArguments('Capture must be boolean.')
self.capture = capture
+ if 'depends' in kwargs:
+ depends = listify(kwargs['depends'], unholder=True)
+ for d in depends:
+ if not isinstance(d, BuildTarget):
+ raise InvalidArguments('Depends entries must be build targets.')
+ self.depends.append(d)
def get_base_outnames(self, inname):
plainname = os.path.basename(inname)
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 678560f..cb3aa8a 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1983,7 +1983,12 @@ permitted_kwargs = {'add_global_arguments': {'language', 'native'},
},
'executable': build.known_exe_kwargs,
'find_program': {'required', 'native'},
- 'generator': {'arguments', 'output', 'depfile', 'capture', 'preserve_path_from'},
+ 'generator': {'arguments',
+ 'output',
+ 'depends',
+ 'depfile',
+ 'capture',
+ 'preserve_path_from'},
'include_directories': {'is_system'},
'install_data': {'install_dir', 'install_mode', 'rename', 'sources'},
'install_headers': {'install_dir', 'install_mode', 'subdir'},