aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/common/223 persubproject options/subprojects
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/common/223 persubproject options/subprojects')
-rw-r--r--meson/test cases/common/223 persubproject options/subprojects/sub1/foo.c8
-rw-r--r--meson/test cases/common/223 persubproject options/subprojects/sub1/meson.build9
-rw-r--r--meson/test cases/common/223 persubproject options/subprojects/sub2/foo.c9
-rw-r--r--meson/test cases/common/223 persubproject options/subprojects/sub2/meson.build10
4 files changed, 36 insertions, 0 deletions
diff --git a/meson/test cases/common/223 persubproject options/subprojects/sub1/foo.c b/meson/test cases/common/223 persubproject options/subprojects/sub1/foo.c
new file mode 100644
index 000000000..82ad2c2d0
--- /dev/null
+++ b/meson/test cases/common/223 persubproject options/subprojects/sub1/foo.c
@@ -0,0 +1,8 @@
+int foo(void);
+
+int foo(void) {
+ /* This is built with -Werror, it would error if warning_level=3 was inherited
+ * from main project and not overridden by this subproject's default_options. */
+ int x;
+ return 0;
+}
diff --git a/meson/test cases/common/223 persubproject options/subprojects/sub1/meson.build b/meson/test cases/common/223 persubproject options/subprojects/sub1/meson.build
new file mode 100644
index 000000000..4e4bc1ba0
--- /dev/null
+++ b/meson/test cases/common/223 persubproject options/subprojects/sub1/meson.build
@@ -0,0 +1,9 @@
+project('sub1', 'c',
+ default_options : ['warning_level=0'])
+
+assert(get_option('default_library') == 'both', 'Should inherit parent project default_library')
+assert(get_option('warning_level') == '0')
+
+# 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/meson/test cases/common/223 persubproject options/subprojects/sub2/foo.c b/meson/test cases/common/223 persubproject options/subprojects/sub2/foo.c
new file mode 100644
index 000000000..cf7201b92
--- /dev/null
+++ b/meson/test cases/common/223 persubproject options/subprojects/sub2/foo.c
@@ -0,0 +1,9 @@
+int foo(void);
+
+#ifdef __GNUC__
+#warning This should not produce error
+#endif
+
+int foo(void) {
+ return 0;
+}
diff --git a/meson/test cases/common/223 persubproject options/subprojects/sub2/meson.build b/meson/test cases/common/223 persubproject options/subprojects/sub2/meson.build
new file mode 100644
index 000000000..f1226b8ba
--- /dev/null
+++ b/meson/test cases/common/223 persubproject options/subprojects/sub2/meson.build
@@ -0,0 +1,10 @@
+project('sub2', 'c',
+ default_options : ['default_library=shared',
+ 'werror=false'])
+
+assert(get_option('default_library') == 'static', 'Parent should override default_library')
+assert(not get_option('werror'))
+
+# If it doesn't build only a static library, it would make target name clash.
+library('lib1', 'foo.c')
+shared_library('lib1', 'foo.c')