aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Ittershagen <pit@shgn.de>2017-04-06 23:49:26 +0200
committerPhilipp Ittershagen <pit@shgn.de>2017-04-06 23:49:26 +0200
commit69d07fe75a141d41a7b2a0459cdae58bbd8a892b (patch)
tree6c77f5e96f87c15f84b330ed1779b08772b9a826
parentdd9f75e1885a6fd18beda3bd2dbdf4fdde1dc49e (diff)
downloadmeson-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.
-rw-r--r--mesonbuild/interpreter.py6
-rw-r--r--test cases/common/123 subproject project arguments/exe.c4
-rw-r--r--test cases/common/123 subproject project arguments/exe.cpp4
-rw-r--r--test cases/common/123 subproject project arguments/meson.build1
-rw-r--r--test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c4
-rw-r--r--test cases/common/23 global arg/meson.build2
-rw-r--r--test cases/common/23 global arg/prog.c4
-rw-r--r--test cases/common/23 global arg/prog.cc4
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;
}