diff options
author | Philipp Ittershagen <pit@shgn.de> | 2017-04-06 23:49:26 +0200 |
---|---|---|
committer | Philipp Ittershagen <pit@shgn.de> | 2017-04-06 23:49:26 +0200 |
commit | 69d07fe75a141d41a7b2a0459cdae58bbd8a892b (patch) | |
tree | 6c77f5e96f87c15f84b330ed1779b08772b9a826 | |
parent | dd9f75e1885a6fd18beda3bd2dbdf4fdde1dc49e (diff) | |
download | meson-69d07fe75a141d41a7b2a0459cdae58bbd8a892b.zip meson-69d07fe75a141d41a7b2a0459cdae58bbd8a892b.tar.gz meson-69d07fe75a141d41a7b2a0459cdae58bbd8a892b.tar.bz2 |
add_{project,global}_arguments: support language list
This patch adds support for specifying a list of languages when calling
add_project_arguments and add_global_arguments.
8 files changed, 26 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index d4a1b05..6984bdf 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2479,9 +2479,9 @@ different subdirectory. if 'language' not in kwargs: raise InvalidCode('Missing language definition in {}'.format(node.func_name)) - lang = kwargs['language'].lower() - args = argsdict.get(lang, []) + args - argsdict[lang] = args + for lang in mesonlib.stringlistify(kwargs['language']): + lang = lang.lower() + argsdict[lang] = argsdict.get(lang, []) + args def func_environment(self, node, args, kwargs): return EnvironmentVariablesHolder() diff --git a/test cases/common/123 subproject project arguments/exe.c b/test cases/common/123 subproject project arguments/exe.c index b04344a..d6440f0 100644 --- a/test cases/common/123 subproject project arguments/exe.c +++ b/test cases/common/123 subproject project arguments/exe.c @@ -18,6 +18,10 @@ #error #endif +#ifndef PROJECT_OPTION_C_CPP +#error +#endif + int main(int argc, char **argv) { return 0; } diff --git a/test cases/common/123 subproject project arguments/exe.cpp b/test cases/common/123 subproject project arguments/exe.cpp index 7ffe098..8471c6f 100644 --- a/test cases/common/123 subproject project arguments/exe.cpp +++ b/test cases/common/123 subproject project arguments/exe.cpp @@ -18,6 +18,10 @@ #error #endif +#ifndef PROJECT_OPTION_C_CPP +#error +#endif + int main(int argc, char **argv) { return 0; } diff --git a/test cases/common/123 subproject project arguments/meson.build b/test cases/common/123 subproject project arguments/meson.build index aee803c..12a9497 100644 --- a/test cases/common/123 subproject project arguments/meson.build +++ b/test cases/common/123 subproject project arguments/meson.build @@ -6,6 +6,7 @@ add_global_arguments('-DGLOBAL_ARGUMENT', language: 'c') add_project_arguments('-DPROJECT_OPTION', language: 'c') add_project_arguments('-DPROJECT_OPTION_1', language: 'c') add_project_arguments('-DPROJECT_OPTION_CPP', language: 'cpp') +add_project_arguments('-DPROJECT_OPTION_C_CPP', language: ['c', 'cpp']) sub = subproject('subexe', version : '1.0.0') e = executable('exe', 'exe.c') diff --git a/test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c b/test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c index 6ebd752..f748afc 100644 --- a/test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c +++ b/test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c @@ -6,6 +6,10 @@ #error #endif +#ifdef PROJECT_OPTION_C_CPP +#error +#endif + #ifndef GLOBAL_ARGUMENT #error #endif diff --git a/test cases/common/23 global arg/meson.build b/test cases/common/23 global arg/meson.build index aec5c2d..d7fd428 100644 --- a/test cases/common/23 global arg/meson.build +++ b/test cases/common/23 global arg/meson.build @@ -3,6 +3,8 @@ project('global arg test', 'cpp', 'c') add_global_arguments('-DMYTHING', language : 'c') add_global_arguments('-DMYCPPTHING', language : 'cpp') +add_global_arguments('-DMYCANDCPPTHING', language: ['c', 'cpp']) + exe1 = executable('prog', 'prog.c') exe2 = executable('prog2', 'prog.cc') diff --git a/test cases/common/23 global arg/prog.c b/test cases/common/23 global arg/prog.c index df91777..ace5a0a 100644 --- a/test cases/common/23 global arg/prog.c +++ b/test cases/common/23 global arg/prog.c @@ -6,6 +6,10 @@ #error "Wrong global argument set" #endif +#ifndef MYCANDCPPTHING +#error "Global argument not set" +#endif + int main(int argc, char **argv) { return 0; } diff --git a/test cases/common/23 global arg/prog.cc b/test cases/common/23 global arg/prog.cc index 342fdd0..0ffd85e 100644 --- a/test cases/common/23 global arg/prog.cc +++ b/test cases/common/23 global arg/prog.cc @@ -6,6 +6,10 @@ #error "Global argument not set" #endif +#ifndef MYCANDCPPTHING +#error "Global argument not set" +#endif + int main(int argc, char **argv) { return 0; } |