From fc08f60b9fbb4524c08e37a0b7a5c87c87efe608 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Fri, 12 Feb 2016 23:15:44 +0200 Subject: Do not cache found programs because it is unreliable. Closes #374. --- mesonbuild/coredata.py | 1 - mesonbuild/interpreter.py | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'mesonbuild') 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 -- cgit v1.1