aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers.py
diff options
context:
space:
mode:
authorAlistair Thomas <astavale@yahoo.co.uk>2017-06-21 19:02:29 +0100
committerAlistair Thomas <astavale@yahoo.co.uk>2017-06-22 20:09:58 +0100
commite5559903b3857a333c6cbc88b44d6759c293e5df (patch)
tree140a008acba1b48631836456678bc1926babb684 /mesonbuild/compilers.py
parent080307dd71d9b41a103369863137ed5b73eb131a (diff)
downloadmeson-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.py110
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 []