aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/common/172 identical target name in subproject flat layout
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/common/172 identical target name in subproject flat layout')
-rw-r--r--meson/test cases/common/172 identical target name in subproject flat layout/foo.c1
-rw-r--r--meson/test cases/common/172 identical target name in subproject flat layout/main.c16
-rw-r--r--meson/test cases/common/172 identical target name in subproject flat layout/meson.build15
-rw-r--r--meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/foo.c1
-rw-r--r--meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/meson.build3
5 files changed, 36 insertions, 0 deletions
diff --git a/meson/test cases/common/172 identical target name in subproject flat layout/foo.c b/meson/test cases/common/172 identical target name in subproject flat layout/foo.c
new file mode 100644
index 000000000..ed427899a
--- /dev/null
+++ b/meson/test cases/common/172 identical target name in subproject flat layout/foo.c
@@ -0,0 +1 @@
+int meson_test_main_foo(void) { return 10; }
diff --git a/meson/test cases/common/172 identical target name in subproject flat layout/main.c b/meson/test cases/common/172 identical target name in subproject flat layout/main.c
new file mode 100644
index 000000000..6f02aeb82
--- /dev/null
+++ b/meson/test cases/common/172 identical target name in subproject flat layout/main.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+int meson_test_main_foo(void);
+int meson_test_subproj_foo(void);
+
+int main(void) {
+ if (meson_test_main_foo() != 10) {
+ printf("Failed meson_test_main_foo\n");
+ return 1;
+ }
+ if (meson_test_subproj_foo() != 20) {
+ printf("Failed meson_test_subproj_foo\n");
+ return 1;
+ }
+ return 0;
+}
diff --git a/meson/test cases/common/172 identical target name in subproject flat layout/meson.build b/meson/test cases/common/172 identical target name in subproject flat layout/meson.build
new file mode 100644
index 000000000..ce1d4b8e1
--- /dev/null
+++ b/meson/test cases/common/172 identical target name in subproject flat layout/meson.build
@@ -0,0 +1,15 @@
+project('subproject targets', 'c')
+
+if meson.backend() == 'xcode'
+ error('MESON_SKIP_TEST: many targets with the same name not supported in Xcode. Patches welcome.')
+endif
+
+# Idea behind this test is to create targets with identical name
+# but different output files. We can do this by choosing different
+# name_prefix of libraries. Target id does not depend on name_prefix.
+
+main_foo = static_library('foo', 'foo.c', name_prefix : 'main')
+subproj_foo = subproject('subproj').get_variable('foo')
+
+exe = executable('prog', 'main.c', link_with : [main_foo, subproj_foo])
+test('main test', exe)
diff --git a/meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/foo.c b/meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/foo.c
new file mode 100644
index 000000000..f33429229
--- /dev/null
+++ b/meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/foo.c
@@ -0,0 +1 @@
+int meson_test_subproj_foo(void) { return 20; }
diff --git a/meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/meson.build b/meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/meson.build
new file mode 100644
index 000000000..c92719469
--- /dev/null
+++ b/meson/test cases/common/172 identical target name in subproject flat layout/subprojects/subproj/meson.build
@@ -0,0 +1,3 @@
+project('subproj', 'c')
+
+foo = static_library('foo', 'foo.c', name_prefix : 'subproj')