diff options
author | mohdamerkhalidi <mohdamerkhalidi@users.noreply.github.com> | 2018-08-15 01:34:43 +0530 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-08-14 23:04:43 +0300 |
commit | 28754ea621930a812f6c885d3c64cd90d95b4ce8 (patch) | |
tree | cee85c5a929d5cb0bdccacb9920528d35c03ba41 | |
parent | 9b3671e711619505e9bd422cbc328c0078154bc9 (diff) | |
download | meson-28754ea621930a812f6c885d3c64cd90d95b4ce8.zip meson-28754ea621930a812f6c885d3c64cd90d95b4ce8.tar.gz meson-28754ea621930a812f6c885d3c64cd90d95b4ce8.tar.bz2 |
Adding a new AR Linker Class for the ARM Compiler. (#3949)
-rw-r--r-- | mesonbuild/environment.py | 4 | ||||
-rw-r--r-- | mesonbuild/linkers.py | 14 |
2 files changed, 14 insertions, 4 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index 6688c62..c64fe59 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -15,7 +15,7 @@ import configparser, os, platform, re, shlex, shutil, subprocess from . import coredata -from .linkers import ArLinker, VisualStudioLinker +from .linkers import ArLinker, ArmarLinker, VisualStudioLinker from . import mesonlib from .mesonlib import EnvironmentException, Popen_safe from . import mlog @@ -885,6 +885,8 @@ This is probably wrong, it should always point to the native compiler.''' % evar continue if '/OUT:' in out or '/OUT:' in err: return VisualStudioLinker(linker) + if p.returncode == 0 and ('armar' in linker or 'armar.exe' in linker): + return ArmarLinker(linker) if p.returncode == 0: return ArLinker(linker) if p.returncode == 1 and err.startswith('usage'): # OSX diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py index 7e89de5..6e40ab4 100644 --- a/mesonbuild/linkers.py +++ b/mesonbuild/linkers.py @@ -83,9 +83,6 @@ class ArLinker(StaticLinker): self.std_args = ['csrD'] else: self.std_args = ['csr'] - # For 'armar' the options should be prefixed with '-'. - if 'armar' in stdo: - self.std_args = ['-csr'] def can_linker_accept_rsp(self): return mesonlib.is_windows() @@ -129,3 +126,14 @@ class ArLinker(StaticLinker): def get_link_debugfile_args(self, targetfile): return [] + +class ArmarLinker(ArLinker): + + def __init__(self, exelist): + self.exelist = exelist + self.id = 'armar' + self.std_args = ['-csr'] + + def can_linker_accept_rsp(self): + # armar cann't accept arguments using the @rsp syntax + return False |