diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 1 | ||||
-rw-r--r-- | mesonbuild/build.py | 7 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 7 |
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'}, |