aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-01-06 00:16:44 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-01-06 00:16:44 +0200
commitc2889038cad76bcfe39be1bbf331ef296692539d (patch)
tree97a44290b0c4fb3f08b78bdb7905e6aef1374de1 /interpreter.py
parentb3f656e2a796f772b9b9ced3a3dcbd2cbcfc8102 (diff)
downloadmeson-c2889038cad76bcfe39be1bbf331ef296692539d.zip
meson-c2889038cad76bcfe39be1bbf331ef296692539d.tar.gz
meson-c2889038cad76bcfe39be1bbf331ef296692539d.tar.bz2
Invoke methods through a dictionary.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/interpreter.py b/interpreter.py
index 985c908..e879d65 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -38,6 +38,7 @@ class BuildTarget(InterpreterObject):
self.name = name
self.sources = sources
self.external_deps = []
+ self.methods = {'add_dep': self.add_dep_method}
def get_basename(self):
return self.name
@@ -47,18 +48,18 @@ class BuildTarget(InterpreterObject):
def add_external_dep(self, dep):
if not isinstance(dep, environment.PkgConfigDependency):
- print(dep)
- print(type(dep))
raise InvalidArguments('Argument is not an external dependency')
self.external_deps.append(dep)
def get_external_deps(self):
return self.external_deps
+ def add_dep_method(self, method_name, args):
+ [self.add_external_dep(dep) for dep in args]
+
def method_call(self, method_name, args):
- if method_name == 'add_dep':
- [self.add_external_dep(dep) for dep in args]
- return
+ if method_name in self.methods:
+ return self.methods[method_name](self, args)
raise InvalidCode('Unknown method "%s" in BuildTarget.' % method_name)
class Executable(BuildTarget):