From bea735dd76db32f6ea34ab66fee496d4be2f7eb1 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 21 Nov 2021 16:31:36 -0500 Subject: make sure files arguments to compiler.compiles and friends, performs rebuild If the compiler check is updated as a string in meson.build, we force rebuild, which is a good thing since the outcome of that check changes the configuration context and can enable or disable parts of the build. If the compiler check came from a files() object then we didn't add a regen rule on those files. Fixes #1656 --- mesonbuild/interpreter/compiler.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'mesonbuild/interpreter') diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py index 49ca541..b46f1fe 100644 --- a/mesonbuild/interpreter/compiler.py +++ b/mesonbuild/interpreter/compiler.py @@ -275,6 +275,7 @@ class CompilerHolder(ObjectHolder['Compiler']): def run_method(self, args: T.Tuple['mesonlib.FileOrString'], kwargs: 'CompileKW') -> 'RunResult': code = args[0] if isinstance(code, mesonlib.File): + self.interpreter.add_build_def_file(code) code = mesonlib.File.from_absolute_file( code.rel_to_builddir(self.environment.source_dir)) testname = kwargs['name'] @@ -434,6 +435,7 @@ class CompilerHolder(ObjectHolder['Compiler']): def compiles_method(self, args: T.Tuple['mesonlib.FileOrString'], kwargs: 'CompileKW') -> bool: code = args[0] if isinstance(code, mesonlib.File): + self.interpreter.add_build_def_file(code) code = mesonlib.File.from_absolute_file( code.rel_to_builddir(self.environment.source_dir)) testname = kwargs['name'] @@ -457,6 +459,7 @@ class CompilerHolder(ObjectHolder['Compiler']): code = args[0] compiler = None if isinstance(code, mesonlib.File): + self.interpreter.add_build_def_file(code) code = mesonlib.File.from_absolute_file( code.rel_to_builddir(self.environment.source_dir)) suffix = code.suffix -- cgit v1.1