aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-02-24 22:00:37 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2014-02-24 22:00:37 +0200
commit8e29f2b16079e0f9ff3b85d45e7592fcdcd50775 (patch)
tree0d4d7de5dc707f9adfd4e8ceb536f00a687d6bfd
parent645ab7fea8d88c3cfe18065c8dbf315feb1f0ba3 (diff)
downloadmeson-8e29f2b16079e0f9ff3b85d45e7592fcdcd50775.zip
meson-8e29f2b16079e0f9ff3b85d45e7592fcdcd50775.tar.gz
meson-8e29f2b16079e0f9ff3b85d45e7592fcdcd50775.tar.bz2
Can have multiple source files with the same name in one target.
-rw-r--r--backends.py3
-rw-r--r--test cases/common/54 same file name/d1/file.c1
-rw-r--r--test cases/common/54 same file name/d2/file.c1
-rw-r--r--test cases/common/54 same file name/meson.build3
-rw-r--r--test cases/common/54 same file name/prog.c6
5 files changed, 13 insertions, 1 deletions
diff --git a/backends.py b/backends.py
index 4af9be2..c92f48e 100644
--- a/backends.py
+++ b/backends.py
@@ -878,7 +878,8 @@ class NinjaBackend(Backend):
src_filename = os.path.basename(src)
else:
src_filename = src
- rel_obj = os.path.join(self.get_target_private_dir(target), os.path.basename(src_filename))
+ obj_basename = src_filename.replace('/', '_').replace('\\', '_')
+ rel_obj = os.path.join(self.get_target_private_dir(target), obj_basename)
rel_obj += '.' + self.environment.get_object_suffix()
dep_file = rel_obj + '.' + compiler.get_depfile_suffix()
if self.environment.coredata.use_pch:
diff --git a/test cases/common/54 same file name/d1/file.c b/test cases/common/54 same file name/d1/file.c
new file mode 100644
index 0000000..8084d73
--- /dev/null
+++ b/test cases/common/54 same file name/d1/file.c
@@ -0,0 +1 @@
+int func1() { return 42; }
diff --git a/test cases/common/54 same file name/d2/file.c b/test cases/common/54 same file name/d2/file.c
new file mode 100644
index 0000000..d1444a2
--- /dev/null
+++ b/test cases/common/54 same file name/d2/file.c
@@ -0,0 +1 @@
+int func2() { return 42; }
diff --git a/test cases/common/54 same file name/meson.build b/test cases/common/54 same file name/meson.build
new file mode 100644
index 0000000..3f351af
--- /dev/null
+++ b/test cases/common/54 same file name/meson.build
@@ -0,0 +1,3 @@
+project('samefile', 'c')
+
+test('basic', executable('prog', 'prog.c', 'd1/file.c', 'd2/file.c'))
diff --git a/test cases/common/54 same file name/prog.c b/test cases/common/54 same file name/prog.c
new file mode 100644
index 0000000..3441288
--- /dev/null
+++ b/test cases/common/54 same file name/prog.c
@@ -0,0 +1,6 @@
+int func1();
+int func2();
+
+int main(int argc, char **argv) {
+ return func1() - func2();
+}