diff options
-rwxr-xr-x | interpreter.py | 11 | ||||
-rw-r--r-- | test cases/23 global arg/builder.txt | 4 |
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') |