aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinterpreter.py11
-rw-r--r--test cases/23 global arg/builder.txt4
2 files changed, 8 insertions, 7 deletions
diff --git a/interpreter.py b/interpreter.py
index 8de9d16..678f43f 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -537,18 +537,19 @@ class Interpreter():
i = IncludeDirs(self.subdir, args, kwargs)
return i
- def func_add_global_arguments(self, node, args):
+ def func_add_global_arguments(self, node, args, kwargs):
for a in args:
if not isinstance(a, str):
raise InvalidArguments('Line %d: Argument %s is not a string.' % (node.lineno(), str(a)))
if len(self.build.get_targets()) > 0:
raise InvalidCode('Line %d: global flags can not be set once any build target is defined.' % node.lineno())
- lang = args[0].lower()
- switches = args[1:]
+ if not 'language' in kwargs:
+ raise InvalidCode('Line %d: missing language definition in add_global_arguments' % node.lineno())
+ lang = kwargs['language'].lower()
if lang in self.build.global_args:
- self.build.global_args[lang] += switches
+ self.build.global_args[lang] += args
else:
- self.build.global_args[lang] = switches
+ self.build.global_args[lang] = args
def flatten(self, args):
if isinstance(args, nodes.StringStatement):
diff --git a/test cases/23 global arg/builder.txt b/test cases/23 global arg/builder.txt
index 8a2b2a0..7ab6d44 100644
--- a/test cases/23 global arg/builder.txt
+++ b/test cases/23 global arg/builder.txt
@@ -1,7 +1,7 @@
project('global arg test', 'cxx', 'c')
-add_global_arguments('c', '-DMYTHING')
-add_global_arguments('cxx', '-DMYCXXTHING')
+add_global_arguments('-DMYTHING', language : 'c')
+add_global_arguments('-DMYCXXTHING', language : 'cxx')
exe1 = executable('prog', 'prog.c')
exe2 = executable('prog2', 'prog.cc')