aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-09-02 22:52:37 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2016-09-02 22:52:37 +0300
commita9da6c513281bd7c213d8d3d33c78c7ceed9dfd4 (patch)
tree427d16a3d47561291a3bd2465177133f2a187f73
parent36870ace0fb52ee8f2ca40c8ddb9cfb142032906 (diff)
downloadmeson-a9da6c513281bd7c213d8d3d33c78c7ceed9dfd4.zip
meson-a9da6c513281bd7c213d8d3d33c78c7ceed9dfd4.tar.gz
meson-a9da6c513281bd7c213d8d3d33c78c7ceed9dfd4.tar.bz2
Moved targets with same name into subdirs to make all tests pass.
-rw-r--r--mesonbuild/backend/ninjabackend.py21
-rw-r--r--mesonbuild/compilers.py15
-rw-r--r--test cases/common/86 same basename/meson.build8
-rw-r--r--test cases/common/86 same basename/sharedsub/meson.build1
-rw-r--r--test cases/common/86 same basename/staticsub/meson.build3
5 files changed, 16 insertions, 32 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 7a9ad44..1f848f3 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1433,19 +1433,6 @@ rule FORTRAN_DEP_HACK
return []
return compiler.get_no_stdinc_args()
-
- def get_pdb_name_suffix(self, target):
- if isinstance(target, build.Executable):
- suffix = '__exe'
- elif isinstance(target, build.SharedLibrary):
- suffix = '__dll'
- elif isinstance(target, build.StaticLibrary):
- suffix = '__lib'
- else:
- raise MesonException('Tried to build PDB for a non-buildtarget. Please file a bug.')
- return suffix
-
-
def get_compile_debugfile_args(self, compiler, target, objfile):
if compiler.id != 'msvc':
return []
@@ -1473,16 +1460,14 @@ rule FORTRAN_DEP_HACK
#
# If you feel that the above is completely wrong and all of this is
# actually doable, please send patches.
- suffix = self.get_pdb_name_suffix(target)
if target.has_pch():
tfilename = self.get_target_filename_abs(target)
- return compiler.get_compile_debugfile_args(tfilename, suffix)
+ return compiler.get_compile_debugfile_args(tfilename)
else:
- return compiler.get_compile_debugfile_args(objfile, suffix)
+ return compiler.get_compile_debugfile_args(objfile)
def get_link_debugfile_args(self, linker, target, outname):
- suffix = self.get_pdb_name_suffix(target)
- return linker.get_link_debugfile_args(outname, suffix)
+ return linker.get_link_debugfile_args(outname)
def generate_single_compile(self, target, outfile, src, is_generated=False, header_deps=[], order_deps=[]):
if(isinstance(src, str) and src.endswith('.h')):
diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py
index 4738abd..8394aca 100644
--- a/mesonbuild/compilers.py
+++ b/mesonbuild/compilers.py
@@ -354,10 +354,10 @@ class Compiler():
# Some compilers (msvc) write debug info to a separate file.
# These args specify where it should be written.
- def get_compile_debugfile_args(self, rel_obj, fname_suffix):
+ def get_compile_debugfile_args(self, rel_obj):
return []
- def get_link_debugfile_args(self, rel_obj, fname_suffix):
+ def get_link_debugfile_args(self, rel_obj):
return []
class CCompiler(Compiler):
@@ -1607,15 +1607,13 @@ class VisualStudioCCompiler(CCompiler):
raise MesonException('Compiling test app failed.')
return not(warning_text in stde or warning_text in stdo)
- def get_compile_debugfile_args(self, rel_obj, name_suffix):
+ def get_compile_debugfile_args(self, rel_obj):
pdbarr = rel_obj.split('.')[:-1]
- pdbarr[-1] += name_suffix
pdbarr += ['pdb']
return ['/Fd' + '.'.join(pdbarr)]
- def get_link_debugfile_args(self, targetfile, name_suffix):
+ def get_link_debugfile_args(self, targetfile):
pdbarr = targetfile.split('.')[:-1]
- pdbarr[-1] += name_suffix
pdbarr += ['pdb']
return ['/DEBUG', '/PDB:' + '.'.join(pdbarr)]
@@ -2295,9 +2293,8 @@ class VisualStudioLinker():
def unix_compile_flags_to_native(self, args):
return args[:]
- def get_link_debugfile_args(self, targetfile, name_suffix):
+ def get_link_debugfile_args(self, targetfile):
pdbarr = targetfile.split('.')[:-1]
- pdbarr[-1] += name_suffix
pdbarr += ['pdb']
return ['/DEBUG', '/PDB:' + '.'.join(pdbarr)]
@@ -2350,5 +2347,5 @@ class ArLinker():
def unix_compile_flags_to_native(self, args):
return args[:]
- def get_link_debugfile_args(self, targetfile, suffix):
+ def get_link_debugfile_args(self, targetfile):
return []
diff --git a/test cases/common/86 same basename/meson.build b/test cases/common/86 same basename/meson.build
index 3dc384e..856c536 100644
--- a/test cases/common/86 same basename/meson.build
+++ b/test cases/common/86 same basename/meson.build
@@ -1,13 +1,11 @@
project('same basename', 'c')
+subdir('sharedsub')
+subdir('staticsub')
+
# Use the same source file to check that each top level target
# has its own unique working directory. If they don't
# then the .o files will clobber each other.
-shlib = shared_library('name', 'lib.c', c_args : '-DSHAR')
-
-# On Windows a static lib is now libfoo.a, so it does not conflict with foo.lib
-# from the shared library above
-stlib = static_library('name', 'lib.c', c_args : '-DSTAT')
exe1 = executable('name', 'exe1.c', link_with : stlib)
exe2 = executable('name2', 'exe2.c', link_with : shlib)
diff --git a/test cases/common/86 same basename/sharedsub/meson.build b/test cases/common/86 same basename/sharedsub/meson.build
new file mode 100644
index 0000000..29654a9
--- /dev/null
+++ b/test cases/common/86 same basename/sharedsub/meson.build
@@ -0,0 +1 @@
+shlib = shared_library('name', '../lib.c', c_args : '-DSHAR')
diff --git a/test cases/common/86 same basename/staticsub/meson.build b/test cases/common/86 same basename/staticsub/meson.build
new file mode 100644
index 0000000..5e5242e
--- /dev/null
+++ b/test cases/common/86 same basename/staticsub/meson.build
@@ -0,0 +1,3 @@
+# On Windows a static lib is now libfoo.a, so it does not conflict with foo.lib
+# from the shared library above
+stlib = static_library('name', '../lib.c', c_args : '-DSTAT')