diff options
author | Alistair Thomas <astavale@yahoo.co.uk> | 2017-06-21 19:02:29 +0100 |
---|---|---|
committer | Alistair Thomas <astavale@yahoo.co.uk> | 2017-06-22 20:09:58 +0100 |
commit | e5559903b3857a333c6cbc88b44d6759c293e5df (patch) | |
tree | 140a008acba1b48631836456678bc1926babb684 /mesonbuild/compilers.py | |
parent | 080307dd71d9b41a103369863137ed5b73eb131a (diff) | |
download | meson-e5559903b3857a333c6cbc88b44d6759c293e5df.zip meson-e5559903b3857a333c6cbc88b44d6759c293e5df.tar.gz meson-e5559903b3857a333c6cbc88b44d6759c293e5df.tar.bz2 |
Split linkers out from compilers.py
Diffstat (limited to 'mesonbuild/compilers.py')
-rw-r--r-- | mesonbuild/compilers.py | 110 |
1 files changed, 6 insertions, 104 deletions
diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py index 979a5ac..a1b2af7 100644 --- a/mesonbuild/compilers.py +++ b/mesonbuild/compilers.py @@ -1,4 +1,4 @@ -# Copyright 2012-2014 The Meson development team +# Copyright 2012-2017 The Meson development team # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,15 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import re -import shutil -import contextlib -import subprocess, os.path -import tempfile -from .import mesonlib +import contextlib, os.path, re, shutil, subprocess, tempfile + +from .linkers import StaticLinker +from . import coredata from . import mlog +from . import mesonlib from .mesonlib import EnvironmentException, MesonException, version_compare, Popen_safe -from . import coredata """This file contains the data files of all compilers Meson knows about. To support a new compiler, add its information below. @@ -3213,99 +3211,3 @@ class NAGFortranCompiler(FortranCompiler): def get_warn_args(self, level): return NAGFortranCompiler.std_warn_args - -class StaticLinker: - pass - -class VisualStudioLinker(StaticLinker): - always_args = ['/NOLOGO'] - - def __init__(self, exelist): - self.exelist = exelist - - def get_exelist(self): - return self.exelist[:] - - def get_std_link_args(self): - return [] - - def get_buildtype_linker_args(self, buildtype): - return [] - - def get_output_args(self, target): - return ['/OUT:' + target] - - def get_coverage_link_args(self): - return [] - - def get_always_args(self): - return VisualStudioLinker.always_args - - def get_linker_always_args(self): - return VisualStudioLinker.always_args - - def build_rpath_args(self, build_dir, from_dir, rpath_paths, install_rpath): - return [] - - def thread_link_flags(self): - return [] - - def get_option_link_args(self, options): - return [] - - @classmethod - def unix_args_to_native(cls, args): - return VisualStudioCCompiler.unix_args_to_native(args) - - def get_link_debugfile_args(self, targetfile): - # Static libraries do not have PDB files - return [] - -class ArLinker(StaticLinker): - - def __init__(self, exelist): - self.exelist = exelist - self.id = 'ar' - pc, stdo = Popen_safe(self.exelist + ['-h'])[0:2] - # Enable deterministic builds if they are available. - if '[D]' in stdo: - self.std_args = ['csrD'] - else: - self.std_args = ['csr'] - - def build_rpath_args(self, build_dir, from_dir, rpath_paths, install_rpath): - return [] - - def get_exelist(self): - return self.exelist[:] - - def get_std_link_args(self): - return self.std_args - - def get_output_args(self, target): - return [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): - 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 [] |