aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2019-07-19 10:34:11 -0400
committerXavier Claessens <xclaesse@gmail.com>2020-02-06 14:11:24 -0500
commit3ba0073df6014d4b594df052f8e1fa75ce17b20e (patch)
treeaac412650192c2e934c3e58241b00287bb08b6f9 /test cases
parent0bf3c4ac4d9128154bf27649a39645b7d804582e (diff)
downloadmeson-3ba0073df6014d4b594df052f8e1fa75ce17b20e.zip
meson-3ba0073df6014d4b594df052f8e1fa75ce17b20e.tar.gz
meson-3ba0073df6014d4b594df052f8e1fa75ce17b20e.tar.bz2
Make 'default_library' per-subproject builtin option
Currently it's just like if all builtin/base/compiler options are yielding. This patch makes possible to have non-yielding builtin options. The value in is overriden in this order: - Value from parent project - Value from subproject's default_options if set - Value from subproject() default_options if set - Value from command line if set
Diffstat (limited to 'test cases')
-rw-r--r--test cases/common/229 persubproject options/foo.c5
-rw-r--r--test cases/common/229 persubproject options/meson.build10
-rw-r--r--test cases/common/229 persubproject options/subprojects/sub1/foo.c5
-rw-r--r--test cases/common/229 persubproject options/subprojects/sub1/meson.build7
-rw-r--r--test cases/common/229 persubproject options/subprojects/sub2/foo.c5
-rw-r--r--test cases/common/229 persubproject options/subprojects/sub2/meson.build7
6 files changed, 39 insertions, 0 deletions
diff --git a/test cases/common/229 persubproject options/foo.c b/test cases/common/229 persubproject options/foo.c
new file mode 100644
index 0000000..63e4de6
--- /dev/null
+++ b/test cases/common/229 persubproject options/foo.c
@@ -0,0 +1,5 @@
+int foo(void);
+
+int foo(void) {
+ return 0;
+}
diff --git a/test cases/common/229 persubproject options/meson.build b/test cases/common/229 persubproject options/meson.build
new file mode 100644
index 0000000..6a76697
--- /dev/null
+++ b/test cases/common/229 persubproject options/meson.build
@@ -0,0 +1,10 @@
+project('persubproject options', 'c', default_options : ['default_library=both'])
+
+assert(get_option('default_library') == 'both', 'Parent default_library should be "both"')
+
+# Check it build both by calling a method only both_libraries target implement
+lib = library('lib1', 'foo.c')
+lib.get_static_lib()
+
+subproject('sub1')
+subproject('sub2', default_options : ['default_library=static'])
diff --git a/test cases/common/229 persubproject options/subprojects/sub1/foo.c b/test cases/common/229 persubproject options/subprojects/sub1/foo.c
new file mode 100644
index 0000000..63e4de6
--- /dev/null
+++ b/test cases/common/229 persubproject options/subprojects/sub1/foo.c
@@ -0,0 +1,5 @@
+int foo(void);
+
+int foo(void) {
+ return 0;
+}
diff --git a/test cases/common/229 persubproject options/subprojects/sub1/meson.build b/test cases/common/229 persubproject options/subprojects/sub1/meson.build
new file mode 100644
index 0000000..7afc934
--- /dev/null
+++ b/test cases/common/229 persubproject options/subprojects/sub1/meson.build
@@ -0,0 +1,7 @@
+project('sub1', 'c')
+
+assert(get_option('default_library') == 'both', 'Should inherit parent project default_library')
+
+# Check it build both by calling a method only both_libraries target implement
+lib = library('lib1', 'foo.c')
+lib.get_static_lib()
diff --git a/test cases/common/229 persubproject options/subprojects/sub2/foo.c b/test cases/common/229 persubproject options/subprojects/sub2/foo.c
new file mode 100644
index 0000000..63e4de6
--- /dev/null
+++ b/test cases/common/229 persubproject options/subprojects/sub2/foo.c
@@ -0,0 +1,5 @@
+int foo(void);
+
+int foo(void) {
+ return 0;
+}
diff --git a/test cases/common/229 persubproject options/subprojects/sub2/meson.build b/test cases/common/229 persubproject options/subprojects/sub2/meson.build
new file mode 100644
index 0000000..546884d
--- /dev/null
+++ b/test cases/common/229 persubproject options/subprojects/sub2/meson.build
@@ -0,0 +1,7 @@
+project('sub2', 'c', default_options : ['default_library=shared'])
+
+assert(get_option('default_library') == 'static', 'Parent should override default_library')
+
+# If it doesn't build only a static library, it would make target name clash.
+library('lib1', 'foo.c')
+shared_library('lib1', 'foo.c')