aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-02-12 23:15:44 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-02-12 23:15:44 +0200
commitfc08f60b9fbb4524c08e37a0b7a5c87c87efe608 (patch)
treea9ddf2268c20421129c0e1e8028f0eafea4cdb8b
parent72a94c13f232450addda674c70ee968a204fe4a9 (diff)
downloadmeson-fc08f60b9fbb4524c08e37a0b7a5c87c87efe608.zip
meson-fc08f60b9fbb4524c08e37a0b7a5c87c87efe608.tar.gz
meson-fc08f60b9fbb4524c08e37a0b7a5c87c87efe608.tar.bz2
Do not cache found programs because it is unreliable. Closes #374.
-rw-r--r--mesonbuild/coredata.py1
-rw-r--r--mesonbuild/interpreter.py6
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