aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/common/151 duplicate source names
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/common/151 duplicate source names')
-rw-r--r--meson/test cases/common/151 duplicate source names/dir1/file.c16
-rw-r--r--meson/test cases/common/151 duplicate source names/dir1/meson.build1
-rw-r--r--meson/test cases/common/151 duplicate source names/dir2/dir1/file.c1
-rw-r--r--meson/test cases/common/151 duplicate source names/dir2/file.c1
-rw-r--r--meson/test cases/common/151 duplicate source names/dir2/meson.build1
-rw-r--r--meson/test cases/common/151 duplicate source names/dir3/dir1/file.c1
-rw-r--r--meson/test cases/common/151 duplicate source names/dir3/file.c1
-rw-r--r--meson/test cases/common/151 duplicate source names/dir3/meson.build1
-rw-r--r--meson/test cases/common/151 duplicate source names/meson.build19
9 files changed, 42 insertions, 0 deletions
diff --git a/meson/test cases/common/151 duplicate source names/dir1/file.c b/meson/test cases/common/151 duplicate source names/dir1/file.c
new file mode 100644
index 000000000..1c4753eb9
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir1/file.c
@@ -0,0 +1,16 @@
+extern int dir2;
+extern int dir2_dir1;
+extern int dir3;
+extern int dir3_dir1;
+
+int main(void) {
+ if (dir2 != 20)
+ return 1;
+ if (dir2_dir1 != 21)
+ return 1;
+ if (dir3 != 30)
+ return 1;
+ if (dir3_dir1 != 31)
+ return 1;
+ return 0;
+}
diff --git a/meson/test cases/common/151 duplicate source names/dir1/meson.build b/meson/test cases/common/151 duplicate source names/dir1/meson.build
new file mode 100644
index 000000000..00bc85daf
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir1/meson.build
@@ -0,0 +1 @@
+sources += files('file.c')
diff --git a/meson/test cases/common/151 duplicate source names/dir2/dir1/file.c b/meson/test cases/common/151 duplicate source names/dir2/dir1/file.c
new file mode 100644
index 000000000..5aac8e53f
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir2/dir1/file.c
@@ -0,0 +1 @@
+int dir2_dir1 = 21;
diff --git a/meson/test cases/common/151 duplicate source names/dir2/file.c b/meson/test cases/common/151 duplicate source names/dir2/file.c
new file mode 100644
index 000000000..6cf8d6602
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir2/file.c
@@ -0,0 +1 @@
+int dir2 = 20;
diff --git a/meson/test cases/common/151 duplicate source names/dir2/meson.build b/meson/test cases/common/151 duplicate source names/dir2/meson.build
new file mode 100644
index 000000000..f116a0200
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir2/meson.build
@@ -0,0 +1 @@
+sources += files('file.c', 'dir1/file.c')
diff --git a/meson/test cases/common/151 duplicate source names/dir3/dir1/file.c b/meson/test cases/common/151 duplicate source names/dir3/dir1/file.c
new file mode 100644
index 000000000..04667c2ff
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir3/dir1/file.c
@@ -0,0 +1 @@
+int dir3_dir1 = 31;
diff --git a/meson/test cases/common/151 duplicate source names/dir3/file.c b/meson/test cases/common/151 duplicate source names/dir3/file.c
new file mode 100644
index 000000000..d16d0a8cf
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir3/file.c
@@ -0,0 +1 @@
+int dir3 = 30;
diff --git a/meson/test cases/common/151 duplicate source names/dir3/meson.build b/meson/test cases/common/151 duplicate source names/dir3/meson.build
new file mode 100644
index 000000000..70ddbf2d0
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/dir3/meson.build
@@ -0,0 +1 @@
+lib = static_library('lib', 'file.c', 'dir1/file.c')
diff --git a/meson/test cases/common/151 duplicate source names/meson.build b/meson/test cases/common/151 duplicate source names/meson.build
new file mode 100644
index 000000000..635aa8cf7
--- /dev/null
+++ b/meson/test cases/common/151 duplicate source names/meson.build
@@ -0,0 +1,19 @@
+project('proj', 'c')
+
+if meson.backend() == 'xcode'
+ # Xcode gives object files unique names but only if they would clash. For example
+ # two files named lib.o instead get the following names:
+ #
+ # lib-4fbe522d8ba4cb1f1b89cc2df640a2336b92e1a5565f0a4c5a79b5b5e2969eb9.o
+ # lib-4fbe522d8ba4cb1f1b89cc2df640a2336deeff2bc2297affaadbe20f5cbfee56.o
+ #
+ # No-one has reverse engineered the naming scheme so we would access them.
+ # IF you feel up to the challenge, patches welcome.
+ error('MESON_SKIP_TEST, Xcode can not extract objs when they would have the same filename.')
+endif
+
+sources = []
+subdir('dir1')
+subdir('dir2')
+subdir('dir3')
+executable('a.out', sources : sources, objects : lib.extract_all_objects())