aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/linkers.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-02-23 20:23:03 +0200
committerGitHub <noreply@github.com>2020-02-23 20:23:03 +0200
commit9c604320a0cd47a5b22b52e157d43b73b0533e82 (patch)
tree0e90134be40901fcbea20faf36c539b474b80683 /mesonbuild/linkers.py
parentee94cb6c15732c8b5f329164af7f2b0a63f4fa6d (diff)
parent04e89d0867e358df347dbc8cb91e6df7bc365d9a (diff)
downloadmeson-9c604320a0cd47a5b22b52e157d43b73b0533e82.zip
meson-9c604320a0cd47a5b22b52e157d43b73b0533e82.tar.gz
meson-9c604320a0cd47a5b22b52e157d43b73b0533e82.tar.bz2
Merge pull request #6637 from mesonbuild/nirbheek/implement-symbolextractor-windows
Implement symbolextractor on windows + some cleanups/fixes
Diffstat (limited to 'mesonbuild/linkers.py')
-rw-r--r--mesonbuild/linkers.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py
index 84eb359..489525b 100644
--- a/mesonbuild/linkers.py
+++ b/mesonbuild/linkers.py
@@ -75,6 +75,9 @@ class StaticLinker:
def native_args_to_unix(cls, args: T.List[str]) -> T.List[str]:
return args[:]
+ def get_link_debugfile_name(self, targetfile: str) -> str:
+ return None
+
def get_link_debugfile_args(self, targetfile: str) -> T.List[str]:
# Static libraries do not have PDB files
return []
@@ -305,6 +308,10 @@ class DynamicLinker(metaclass=abc.ABCMeta):
m = 'Language {} does not support has_multi_link_arguments.'
raise mesonlib.EnvironmentException(m.format(self.id))
+ def get_debugfile_name(self, targetfile: str) -> str:
+ '''Name of debug file written out (see below)'''
+ return None
+
def get_debugfile_args(self, targetfile: str) -> T.List[str]:
"""Some compilers (MSVC) write debug into a separate file.
@@ -842,10 +849,12 @@ class VisualStudioLikeLinkerMixin:
def get_std_shared_lib_args(self) -> T.List[str]:
return self._apply_prefix('/DLL')
+ def get_debugfile_name(self, targetfile: str) -> str:
+ basename = targetfile.rsplit('.', maxsplit=1)[0]
+ return basename + '.pdb'
+
def get_debugfile_args(self, targetfile: str) -> T.List[str]:
- pdbarr = targetfile.split('.')[:-1]
- pdbarr += ['pdb']
- return self._apply_prefix(['/DEBUG', '/PDB:' + '.'.join(pdbarr)])
+ return self._apply_prefix(['/DEBUG', '/PDB:' + self.get_debugfile_name(targetfile)])
def get_link_whole_for(self, args: T.List[str]) -> T.List[str]:
# Only since VS2015