diff options
-rw-r--r-- | mesonbuild/coredata.py | 1 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 6 |
2 files changed, 2 insertions, 5 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 247dcc8..72e3414 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -154,7 +154,6 @@ class CoreData(): self.compilers = {} self.cross_compilers = {} self.deps = {} - self.ext_progs = {} self.modules = {} def init_builtins(self, options): diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 6ef7683..238c96c 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1497,14 +1497,12 @@ class Interpreter(): if not isinstance(required, bool): raise InvalidArguments('"required" argument must be a boolean.') exename = args[0] - if exename in self.coredata.ext_progs and\ - self.coredata.ext_progs[exename].found(): - return ExternalProgramHolder(self.coredata.ext_progs[exename]) # Search for scripts relative to current subdir. + # Do not cache found programs because find_program('foobar') + # might give different results when run from different source dirs. search_dir = os.path.join(self.environment.get_source_dir(), self.subdir) extprog = dependencies.ExternalProgram(exename, search_dir=search_dir) progobj = ExternalProgramHolder(extprog) - self.coredata.ext_progs[exename] = extprog if required and not progobj.found(): raise InvalidArguments('Program "%s" not found.' % exename) return progobj |