aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/linkers.py
diff options
context:
space:
mode:
authorGoaLitiuM <goalitium@kapsi.fi>2018-08-18 12:55:21 +0300
committerGoaLitiuM <goalitium@kapsi.fi>2018-08-20 22:27:31 +0300
commit82b38b60718b7edfb7f3ef2860287e6ac8c74aab (patch)
tree055ac46b926d43e8837d169f684638485c965b9d /mesonbuild/linkers.py
parent79f05b189a95e61cb6954765bc54cfcf05f1f3b1 (diff)
downloadmeson-82b38b60718b7edfb7f3ef2860287e6ac8c74aab.zip
meson-82b38b60718b7edfb7f3ef2860287e6ac8c74aab.tar.gz
meson-82b38b60718b7edfb7f3ef2860287e6ac8c74aab.tar.bz2
Fallback to LDC as static linker when not in MSVC build environment
Diffstat (limited to 'mesonbuild/linkers.py')
-rw-r--r--mesonbuild/linkers.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py
index 6e40ab4..93106b3 100644
--- a/mesonbuild/linkers.py
+++ b/mesonbuild/linkers.py
@@ -137,3 +137,52 @@ class ArmarLinker(ArLinker):
def can_linker_accept_rsp(self):
# armar cann't accept arguments using the @rsp syntax
return False
+
+class LDCLinker(StaticLinker):
+
+ def __init__(self, exelist):
+ self.exelist = exelist
+ self.id = 'ldc2'
+
+ def can_linker_accept_rsp(self):
+ return mesonlib.is_windows()
+
+ def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
+ return []
+
+ def get_exelist(self):
+ return self.exelist[:]
+
+ def get_std_link_args(self):
+ return ['-lib']
+
+ def get_output_args(self, target):
+ return ['-of=' + target]
+
+ def get_buildtype_linker_args(self, buildtype):
+ return []
+
+ def get_linker_always_args(self):
+ return []
+
+ def get_coverage_link_args(self):
+ return []
+
+ def get_always_args(self):
+ return []
+
+ def thread_link_flags(self, env):
+ return []
+
+ def openmp_flags(self):
+ return []
+
+ def get_option_link_args(self, options):
+ return []
+
+ @classmethod
+ def unix_args_to_native(cls, args):
+ return args[:]
+
+ def get_link_debugfile_args(self, targetfile):
+ return []