aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/d.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-09-16 14:40:55 +0300
committerGitHub <noreply@github.com>2018-09-16 14:40:55 +0300
commitb9f229a4940999fd2976e64aa8a51358cce52fdb (patch)
tree4a60e54787f0920c772b9e7fc144847b559f2ac1 /mesonbuild/compilers/d.py
parent0e89b03be63c8b0a4ffb530cc20dc29aa01844db (diff)
parent5b0ad0f8adfa9c64def004bc96e931f1df803bc2 (diff)
downloadmeson-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.py27
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 []