aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/d.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-08-18 20:39:47 +0300
committerGitHub <noreply@github.com>2018-08-18 20:39:47 +0300
commitd83f77109a7ac22da53acfad8f7ff078d929cd9d (patch)
treeba2dc20e3a91379008d6c7c841a4f503d50b5bd8 /mesonbuild/compilers/d.py
parent8277d94e24d4382d49289c07ef20ea78d95443e1 (diff)
downloadmeson-d83f77109a7ac22da53acfad8f7ff078d929cd9d.zip
meson-d83f77109a7ac22da53acfad8f7ff078d929cd9d.tar.gz
meson-d83f77109a7ac22da53acfad8f7ff078d929cd9d.tar.bz2
Convert buildtype to optimization and debug options (#3489)
Diffstat (limited to 'mesonbuild/compilers/d.py')
-rw-r--r--mesonbuild/compilers/d.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index f0f3d54..93dca0e 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -23,6 +23,8 @@ from .compilers import (
d_ldc_buildtype_args,
get_gcc_soname_args,
gnu_color_args,
+ gnu_optimization_args,
+ clike_debug_args,
Compiler,
CompilerArgs,
)
@@ -41,6 +43,22 @@ d_feature_args = {'gcc': {'unittest': '-funittest',
}
}
+ldc_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-Os'],
+ }
+
+dmd_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-Os'],
+ }
+
class DCompiler(Compiler):
def __init__(self, exelist, version, is_cross, **kwargs):
self.language = 'd'
@@ -238,6 +256,8 @@ class DCompiler(Compiler):
return dcargs
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
class GnuDCompiler(DCompiler):
def __init__(self, exelist, version, is_cross, **kwargs):
@@ -288,6 +308,8 @@ class GnuDCompiler(DCompiler):
def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
return self.build_unix_rpath_args(build_dir, from_dir, rpath_paths, build_rpath, install_rpath)
+ def get_optimization_args(self, optimization_level):
+ return gnu_optimization_args[optimization_level]
class LLVMDCompiler(DCompiler):
def __init__(self, exelist, version, is_cross, **kwargs):
@@ -342,6 +364,9 @@ class LLVMDCompiler(DCompiler):
def unix_args_to_native(cls, args):
return cls.translate_args_to_nongnu(args)
+ def get_optimization_args(self, optimization_level):
+ return ldc_optimization_args[optimization_level]
+
class DmdDCompiler(DCompiler):
def __init__(self, exelist, version, is_cross, **kwargs):
@@ -392,3 +417,6 @@ class DmdDCompiler(DCompiler):
@classmethod
def unix_args_to_native(cls, args):
return cls.translate_args_to_nongnu(args)
+
+ def get_optimization_args(self, optimization_level):
+ return dmd_optimization_args[optimization_level]