diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2018-09-16 14:40:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-16 14:40:55 +0300 |
commit | b9f229a4940999fd2976e64aa8a51358cce52fdb (patch) | |
tree | 4a60e54787f0920c772b9e7fc144847b559f2ac1 /mesonbuild/compilers/d.py | |
parent | 0e89b03be63c8b0a4ffb530cc20dc29aa01844db (diff) | |
parent | 5b0ad0f8adfa9c64def004bc96e931f1df803bc2 (diff) | |
download | meson-b9f229a4940999fd2976e64aa8a51358cce52fdb.zip meson-b9f229a4940999fd2976e64aa8a51358cce52fdb.tar.gz meson-b9f229a4940999fd2976e64aa8a51358cce52fdb.tar.bz2 |
Merge pull request #4175 from GoaLitiuM/d-archfixes
D: Improve target architecture handling
Diffstat (limited to 'mesonbuild/compilers/d.py')
-rw-r--r-- | mesonbuild/compilers/d.py | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 3d46390..6108e93 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -68,12 +68,12 @@ class DCompiler(Compiler): 'mtd': ['-mscrtlib=libcmtd'], } - def __init__(self, exelist, version, is_cross, is_64, **kwargs): + def __init__(self, exelist, version, is_cross, arch, **kwargs): self.language = 'd' super().__init__(exelist, version, **kwargs) self.id = 'unknown' self.is_cross = is_cross - self.is_64 = is_64 + self.arch = arch def sanity_check(self, work_dir, environment): source_name = os.path.join(work_dir, 'sanity.d') @@ -274,7 +274,7 @@ class DCompiler(Compiler): # LDC2 on Windows targets to current OS architecture, but # it should follow the target specified by the MSVC toolchain. if is_windows(): - if self.is_64: + if self.arch == 'x86_64': return ['-m64'] return ['-m32'] return [] @@ -410,8 +410,8 @@ class DCompiler(Compiler): return [] class GnuDCompiler(DCompiler): - def __init__(self, exelist, version, is_cross, is_64, **kwargs): - DCompiler.__init__(self, exelist, version, is_cross, is_64, **kwargs) + def __init__(self, exelist, version, is_cross, arch, **kwargs): + DCompiler.__init__(self, exelist, version, is_cross, arch, **kwargs) self.id = 'gcc' default_warn_args = ['-Wall', '-Wdeprecated'] self.warn_args = {'1': default_warn_args, @@ -465,8 +465,8 @@ class GnuDCompiler(DCompiler): return gnu_optimization_args[optimization_level] class LLVMDCompiler(DCompiler): - def __init__(self, exelist, version, is_cross, is_64, **kwargs): - DCompiler.__init__(self, exelist, version, is_cross, is_64, **kwargs) + def __init__(self, exelist, version, is_cross, arch, **kwargs): + DCompiler.__init__(self, exelist, version, is_cross, arch, **kwargs) self.id = 'llvm' self.base_options = ['b_coverage', 'b_colorout', 'b_vscrt'] @@ -501,11 +501,10 @@ class LLVMDCompiler(DCompiler): class DmdDCompiler(DCompiler): - def __init__(self, exelist, version, is_cross, is_64, **kwargs): - DCompiler.__init__(self, exelist, version, is_cross, is_64, **kwargs) + def __init__(self, exelist, version, is_cross, arch, **kwargs): + DCompiler.__init__(self, exelist, version, is_cross, arch, **kwargs) self.id = 'dmd' self.base_options = ['b_coverage', 'b_colorout', 'b_vscrt'] - self.is_msvc = 'VCINSTALLDIR' in os.environ def get_colorout_args(self, colortype): if colortype == 'always': @@ -521,9 +520,9 @@ class DmdDCompiler(DCompiler): if is_windows(): # DMD links against D runtime only when main symbol is found, # so these needs to be inserted when linking static D libraries. - if self.is_64: + if self.arch == 'x86_64': return ['phobos64.lib'] - elif self.is_msvc: + elif self.arch == 'x86_mscoff': return ['phobos32mscoff.lib'] return ['phobos.lib'] return [] @@ -536,9 +535,9 @@ class DmdDCompiler(DCompiler): # Force the target to 64-bit in order to stay consistent # across the different platforms. if is_windows(): - if self.is_64: + if self.arch == 'x86_64': return ['-m64'] - elif self.is_msvc: + elif self.arch == 'x86_mscoff': return ['-m32mscoff'] return ['-m32'] return [] |