diff options
-rw-r--r-- | mesonbuild/interpreter/compiler.py | 3 | ||||
-rw-r--r-- | unittests/allplatformstests.py | 7 |
2 files changed, 10 insertions, 0 deletions
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 diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index 30c0572..daa1385 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py @@ -1965,6 +1965,13 @@ class AllPlatformTests(BasePlatformTests): # cxx.links with C source self.assertEqual(cmds[3][0], cc) self.assertEqual(cmds[4][0], cxx) + if self.backend is Backend.ninja: + # updating the file to check causes a reconfigure + # + # only the ninja backend is competent enough to detect reconfigured + # no-op builds without build targets + self.utime(os.path.join(testdir, 'test.c')) + self.assertReconfiguredBuildIsNoop() def test_ndebug_if_release_disabled(self): testdir = os.path.join(self.unit_test_dir, '28 ndebug if-release') |