aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-05-28 21:31:59 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2016-05-28 21:31:59 +0300
commit4377f773e0c573ba132a1abd93fc430f4ebaa489 (patch)
tree266a73b1b3bc57b237eb0c45dcd0dff69e49b8e7 /mesonbuild/interpreter.py
parent1b78e354a60af228ab0ab9497f3d890064e09caf (diff)
downloadmeson-4377f773e0c573ba132a1abd93fc430f4ebaa489.zip
meson-4377f773e0c573ba132a1abd93fc430f4ebaa489.tar.gz
meson-4377f773e0c573ba132a1abd93fc430f4ebaa489.tar.bz2
Can set global linker arguments. Closes #536.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 71e9c8d..dc03915 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1003,6 +1003,7 @@ class Interpreter():
'configure_file' : self.func_configure_file,
'include_directories' : self.func_include_directories,
'add_global_arguments' : self.func_add_global_arguments,
+ 'add_global_link_arguments' : self.func_add_global_link_arguments,
'add_languages' : self.func_add_languages,
'find_program' : self.func_find_program,
'find_library' : self.func_find_library,
@@ -1919,6 +1920,20 @@ class Interpreter():
else:
self.build.global_args[lang] = args
+ @stringArgs
+ def func_add_global_link_arguments(self, node, args, kwargs):
+ if self.subproject != '':
+ raise InvalidCode('Global arguments can not be set in subprojects because there is no way to make that reliable.')
+ if self.global_args_frozen:
+ raise InvalidCode('Tried to set global arguments after a build target has been declared.\nThis is not permitted. Please declare all global arguments before your targets.')
+ if not 'language' in kwargs:
+ raise InvalidCode('Missing language definition in add_global_arguments')
+ lang = kwargs['language'].lower()
+ if lang in self.build.global_link_args:
+ self.build.global_link_args[lang] += args
+ else:
+ self.build.global_link_args[lang] = args
+
def flatten(self, args):
if isinstance(args, mparser.StringNode):
return args.value