aboutsummaryrefslogtreecommitdiff
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
parentd62f14b419c576c078689f0b54ba6c4177566a25 (diff)
downloadmeson-93906894a9e4e3b87e72f32dc0dd7d9509b18abe.zip
meson-93906894a9e4e3b87e72f32dc0dd7d9509b18abe.tar.gz
meson-93906894a9e4e3b87e72f32dc0dd7d9509b18abe.tar.bz2
Can specify extra compiler flags with keyword arguments.
-rwxr-xr-xinterpreter.py17
-rw-r--r--test cases/24 target arg/builder.txt7
2 files changed, 13 insertions, 11 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()
diff --git a/test cases/24 target arg/builder.txt b/test cases/24 target arg/builder.txt
index bf8abe7..a9ba17b 100644
--- a/test cases/24 target arg/builder.txt
+++ b/test cases/24 target arg/builder.txt
@@ -1,8 +1,7 @@
project('local arg test', 'cxx', 'c')
-exe1 = executable('prog', 'prog.cc', 'func.c')
-
-exe1.add_compiler_args('c', '-DCTHING')
-exe1.add_compiler_args('cxx', '-DCXXTHING')
+exe1 = executable('prog', 'prog.cc', 'func.c', \
+c_args : '-DCTHING', \
+cxx_args : '-DCXXTHING')
add_test('prog1', exe1)