aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-10 02:57:08 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-10 02:57:08 +0200
commit93906894a9e4e3b87e72f32dc0dd7d9509b18abe (patch)
treebea94cce82ec19ad29a0a01f1c8c320c17a2aaab /interpreter.py
parentd62f14b419c576c078689f0b54ba6c4177566a25 (diff)
downloadmeson-93906894a9e4e3b87e72f32dc0dd7d9509b18abe.zip
meson-93906894a9e4e3b87e72f32dc0dd7d9509b18abe.tar.gz
meson-93906894a9e4e3b87e72f32dc0dd7d9509b18abe.tar.bz2
Can specify extra compiler flags with keyword arguments.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/interpreter.py b/interpreter.py
index 981e6a9..835474a 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -154,7 +154,6 @@ class BuildTarget(InterpreterObject):
self.include_dirs = []
self.methods.update({'add_dep': self.add_dep_method,
'add_include_dirs': self.add_include_dirs_method,
- 'add_compiler_args' : self.add_compiler_args_method,
})
self.link_targets = []
self.filename = 'no_name'
@@ -174,6 +173,14 @@ class BuildTarget(InterpreterObject):
if not isinstance(pchlist, list):
pchlist = [pchlist]
self.add_pch(pchlist)
+ clist = kwargs.get('c_args', [])
+ if not isinstance(clist, list):
+ clist = [clist]
+ self.add_compiler_args('c', clist)
+ cxxlist = kwargs.get('cxx_args', [])
+ if not isinstance(cxxlist, list):
+ cxxlist = [cxxlist]
+ self.add_compiler_args('cxx', cxxlist)
def get_subdir(self):
return self.subdir
@@ -236,12 +243,10 @@ class BuildTarget(InterpreterObject):
raise InvalidArguments('Include directory to be added is not an include directory object.')
self.include_dirs += args
- def add_compiler_args_method(self, args):
- for a in args:
+ def add_compiler_args(self, language, flags):
+ for a in flags:
if not isinstance(a, str):
raise InvalidArguments('A non-string passed to compiler args.')
- language = args[0]
- flags = args[1:]
if language in self.extra_args:
self.extra_args[language] += flags
else:
@@ -562,7 +567,6 @@ class Interpreter():
except KeyError:
kw_src = []
for s in kw_src:
- print(s)
if not self.environment.is_header(s):
sources.append(s)
if len(sources) == 0:
@@ -594,7 +598,6 @@ class Interpreter():
def assignment(self, node):
var_name = node.var_name
- print(node.value)
if not isinstance(var_name, nodes.AtomExpression):
raise InvalidArguments('Line %d: Tried to assign value to a non-variable.' % node.lineno())
var_name = var_name.get_value()