aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/interpreter.py b/interpreter.py
index 09c7ae0..abcc6ab 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -18,7 +18,6 @@ import bparser
import nodes
import environment
import os, sys, platform
-from nodes import BoolStatement
class InterpreterException(Exception):
pass
@@ -151,7 +150,6 @@ class BuildTarget(InterpreterObject):
self.external_deps = []
self.include_dirs = []
self.methods.update({'add_dep': self.add_dep_method,
- 'link' : self.link_method,
'pch' : self.pch_method,
'add_include_dirs': self.add_include_dirs_method,
'add_compiler_args' : self.add_compiler_args_method,
@@ -165,6 +163,11 @@ class BuildTarget(InterpreterObject):
def process_kwargs(self, kwargs):
self.need_install = kwargs.get('install', self.need_install)
+ llist = kwargs.get('link_with', [])
+ if not isinstance(llist, list):
+ llist = [llist]
+ for linktarget in llist:
+ self.link(linktarget)
def get_subdir(self):
return self.subdir
@@ -210,8 +213,8 @@ class BuildTarget(InterpreterObject):
def add_dep_method(self, args):
[self.add_external_dep(dep) for dep in args]
- def link_method(self, args):
- target = args[0]
+ def link(self, target):
+ target
if not isinstance(target, StaticLibrary) and \
not isinstance(target, SharedLibrary):
raise InvalidArguments('Link target is not library.')
@@ -609,7 +612,7 @@ class Interpreter():
return self.function_call(arg)
elif isinstance(arg, nodes.MethodCall):
return self.method_call(arg)
- elif isinstance(arg, BoolStatement):
+ elif isinstance(arg, nodes.BoolStatement) or isinstance(arg, nodes.BoolExpression):
return arg.get_value()
else:
raise InvalidCode('Line %d: Irreducible argument.' % arg.lineno())