aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/interpreter.py b/interpreter.py
index 65e1b4e..ffbee6d 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -169,6 +169,15 @@ class ConfigurationDataHolder(InterpreterObject):
# Interpreter objects can not be pickled so we must have
# these wrappers.
+class DependencyHolder(InterpreterObject):
+ def __init__(self, dep):
+ InterpreterObject.__init__(self)
+ self.held_object = dep
+ self.methods.update({'found' : self.found_method})
+
+ def found_method(self, args, kwargs):
+ return self.held_object.found()
+
class ExternalProgramHolder(InterpreterObject):
def __init__(self, ep):
InterpreterObject.__init__(self)
@@ -1112,7 +1121,7 @@ class Interpreter():
if not dep.found():
dep = dependencies.find_external_dependency(name, kwargs)
self.coredata.deps[identifier] = dep
- return dep
+ return DependencyHolder(dep)
def func_executable(self, node, args, kwargs):
return self.build_target(node, args, kwargs, ExecutableHolder)