diff options
Diffstat (limited to 'meson/test cases/common/151 duplicate source names')
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()) |