aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2020-03-09 12:34:29 -0700
committerDylan Baker <dylan@pnwbakers.com>2020-03-09 16:55:08 -0700
commit23b5f9b35135eb0e8bb313f18d1d102b2803bfa0 (patch)
tree4d341b018c577fc6faecdde0aa81cf94c009a7e6
parent6d4df978e26ad79b1a3dad7ed4950f8254000996 (diff)
downloadmeson-23b5f9b35135eb0e8bb313f18d1d102b2803bfa0.zip
meson-23b5f9b35135eb0e8bb313f18d1d102b2803bfa0.tar.gz
meson-23b5f9b35135eb0e8bb313f18d1d102b2803bfa0.tar.bz2
linkers: Allow optlink to be invoked indirectly
-rw-r--r--mesonbuild/environment.py2
-rw-r--r--mesonbuild/linkers.py11
2 files changed, 10 insertions, 3 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index ece1242..8fa5408 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -793,7 +793,7 @@ class Environment:
exelist=compiler, version=search_version(o), direct=invoked_directly)
elif 'OPTLINK' in o:
# Opltink's stdout *may* beging with a \r character.
- return OptlinkDynamicLinker(for_machine, version=search_version(o))
+ return OptlinkDynamicLinker(compiler, for_machine, version=search_version(o))
elif o.startswith('Microsoft') or e.startswith('Microsoft'):
out = o or e
match = re.search(r'.*(X86|X64|ARM|ARM64).*', out)
diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py
index d6ea0c9..83687ad 100644
--- a/mesonbuild/linkers.py
+++ b/mesonbuild/linkers.py
@@ -968,15 +968,22 @@ class OptlinkDynamicLinker(VisualStudioLikeLinkerMixin, DynamicLinker):
"""Digital Mars dynamic linker for windows."""
- def __init__(self, for_machine: mesonlib.MachineChoice,
+ def __init__(self, exelist: T.List[str], for_machine: mesonlib.MachineChoice,
*, version: str = 'unknown version'):
# Use optlink instead of link so we don't interfer with other link.exe
# implementations.
- super().__init__('optlink', ['optlink.exe'], for_machine, '', [], version=version)
+ super().__init__('optlink', exelist, for_machine, '', [], version=version)
def get_allow_undefined_args(self) -> T.List[str]:
return []
+ def get_debugfile_args(self, targetfile: str) -> T.List[str]:
+ # Optlink does not generate pdb files.
+ return []
+
+ def get_always_args(self) -> T.List[str]:
+ return []
+
class CudaLinker(PosixDynamicLinkerMixin, DynamicLinker):
"""Cuda linker (nvlink)"""