diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-03-09 21:20:58 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-03-09 21:20:58 +0200 |
commit | 68b50bd7328dc3fc7f9826d2f261e3a9116e5be9 (patch) | |
tree | 50e9d67fec583856777d447614cd0a4be164dde8 /interpreter.py | |
parent | 8c237ebfebf4b094bd64d49c94b578de90b40863 (diff) | |
download | meson-68b50bd7328dc3fc7f9826d2f261e3a9116e5be9.zip meson-68b50bd7328dc3fc7f9826d2f261e3a9116e5be9.tar.gz meson-68b50bd7328dc3fc7f9826d2f261e3a9116e5be9.tar.bz2 |
Cache external programs in coredata.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-x | interpreter.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/interpreter.py b/interpreter.py index 94b1c5c..1191d59 100755 --- a/interpreter.py +++ b/interpreter.py @@ -615,8 +615,12 @@ class Interpreter(): if not isinstance(required, bool): raise InvalidArguments('Line %d: "required" argument must be a boolean.' % node.lineno()) exename = args[0] + if exename in self.coredata.ext_progs and\ + self.coredata.ext_progs[exename].found(): + return self.coredata.ext_progs[exename] result = shutil.which(exename) # Does .exe appending on Windows. progobj = ExternalProgram(exename, result) + self.coredata.ext_progs[exename] = progobj if required and not progobj.found(): raise InvalidArguments('Line %d: program "%s" not found.' % (node.lineno(), exename)) return progobj |