diff options
| author | Valeri Ochinski <v19930312@gmail.com> | 2023-12-02 06:16:36 +0300 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-11-13 08:28:46 -0800 |
| commit | 3429a2b4262db109ca24d3440f71a08aeeceb6c9 (patch) | |
| tree | 68105fc49094a0392428bf92ee77d3b36261c656 | |
| parent | b207b2744ae90fb9c599b534e10ecf39f50c9b2c (diff) | |
| download | meson-3429a2b4262db109ca24d3440f71a08aeeceb6c9.tar.gz | |
vala: utilize depfiles
| -rw-r--r-- | mesonbuild/backend/ninjabackend.py | 16 | ||||
| -rw-r--r-- | mesonbuild/compilers/vala.py | 8 |
2 files changed, 22 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 02208ebc8..5fe753293 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1807,6 +1807,8 @@ class NinjaBackend(backends.Backend): self.compiler_to_rule_name(valac), all_files + dependency_vapis) element.add_item('ARGS', args) + depfile = valac.depfile_for_object(os.path.join(self.get_target_dir(target), target.name)) + element.add_item('DEPFILE', depfile) element.add_dep(extra_dep_files) self.add_build(element) self.create_target_source_introspection(target, valac, args, all_files, []) @@ -2510,9 +2512,19 @@ class NinjaBackend(backends.Backend): def generate_vala_compile_rules(self, compiler) -> None: rule = self.compiler_to_rule_name(compiler) - command = compiler.get_exelist() + ['$ARGS', '$in'] + command = compiler.get_exelist() description = 'Compiling Vala source $in' - self.add_rule(NinjaRule(rule, command, [], description, extra='restat = 1')) + + depargs = compiler.get_dependency_gen_args('$out', '$DEPFILE') + depfile = '$DEPFILE' if depargs else None + depstyle = 'gcc' if depargs else None + + args = depargs + ['$ARGS', '$in'] + + self.add_rule(NinjaRule(rule, command + args, [], description, + depfile=depfile, + deps=depstyle, + extra='restat = 1')) def generate_cython_compile_rules(self, compiler: 'Compiler') -> None: rule = self.compiler_to_rule_name(compiler) diff --git a/mesonbuild/compilers/vala.py b/mesonbuild/compilers/vala.py index bbaefedb6..a3a196093 100644 --- a/mesonbuild/compilers/vala.py +++ b/mesonbuild/compilers/vala.py @@ -39,6 +39,14 @@ class ValaCompiler(Compiler): def get_optimization_args(self, optimization_level: str) -> T.List[str]: return [] + def get_dependency_gen_args(self, outtarget: str, outfile: str) -> T.List[str]: + if version_compare(self.version, '>=0.47.2'): + return ['--depfile', outfile] + return [] + + def get_depfile_suffix(self) -> str: + return 'depfile' + def get_debug_args(self, is_debug: bool) -> T.List[str]: return ['--debug'] if is_debug else [] |
