linkers: Split Visual Studio Linker into a mixin

Because ICL has it's own linker that behaves basically just like the
VisualStudioLinker, but with a few peices of extra functionality.
pull/5331/head
Dylan Baker 6 years ago
parent 14fa3da33e
commit af19db7b40
  1. 13
      mesonbuild/linkers.py

@ -23,7 +23,7 @@ class StaticLinker:
return mesonlib.is_windows() return mesonlib.is_windows()
class VisualStudioLinker(StaticLinker): class VisualStudioLikeLinker:
always_args = ['/NOLOGO'] always_args = ['/NOLOGO']
def __init__(self, exelist, machine): def __init__(self, exelist, machine):
@ -31,7 +31,7 @@ class VisualStudioLinker(StaticLinker):
self.machine = machine self.machine = machine
def get_exelist(self): def get_exelist(self):
return self.exelist[:] return self.exelist.copy()
def get_std_link_args(self): def get_std_link_args(self):
return [] return []
@ -50,10 +50,10 @@ class VisualStudioLinker(StaticLinker):
return [] return []
def get_always_args(self): def get_always_args(self):
return VisualStudioLinker.always_args[:] return self.always_args.copy()
def get_linker_always_args(self): def get_linker_always_args(self):
return VisualStudioLinker.always_args[:] return self.always_args.copy()
def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath): def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
return [] return []
@ -77,6 +77,11 @@ class VisualStudioLinker(StaticLinker):
return [] return []
class VisualStudioLinker(VisualStudioLikeLinker, StaticLinker):
"""Microsoft's lib static linker."""
class ArLinker(StaticLinker): class ArLinker(StaticLinker):
def __init__(self, exelist): def __init__(self, exelist):

Loading…
Cancel
Save