diff options
author | Phillip Johnston <phillip@embeddedartistry.com> | 2020-03-12 13:32:39 -0700 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-03-15 22:29:29 +0200 |
commit | 79198de6cf012e681b436f8bcea4230c2979841c (patch) | |
tree | 800c45c7cc4d91476c56284d19eb8fdc5f47adf7 /mesonbuild/compilers | |
parent | b54e557a40497a0f9080e32cd0da91b2b59762cc (diff) | |
download | meson-79198de6cf012e681b436f8bcea4230c2979841c.zip meson-79198de6cf012e681b436f8bcea4230c2979841c.tar.gz meson-79198de6cf012e681b436f8bcea4230c2979841c.tar.bz2 |
Resolve Clang failure to use -Og with --optimization=g
Clang supports the GCC -Og flag, but --optimization=g is not setting that. This is because Clang is referencing the clike_optimization_args, which does not define a flag for 'g'.
To address this, we'll mimic the GNU options instead of the C-like ones.
Fixes #6619
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r-- | mesonbuild/compilers/mixins/clang.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py index 1c52af2..6bc7d6c 100644 --- a/mesonbuild/compilers/mixins/clang.py +++ b/mesonbuild/compilers/mixins/clang.py @@ -19,7 +19,6 @@ import typing as T from ... import mesonlib from ...linkers import AppleDynamicLinker -from ..compilers import clike_optimization_args from .gnu import GnuLikeCompiler if T.TYPE_CHECKING: @@ -32,6 +31,14 @@ clang_color_args = { 'never': ['-Xclang', '-fno-color-diagnostics'], } # type: T.Dict[str, T.List[str]] +clang_optimization_args = { + '0': [], + 'g': ['-Og'], + '1': ['-O1'], + '2': ['-O2'], + '3': ['-O3'], + 's': ['-Os'], +} # type: T.Dict[str, T.List[str]] class ClangCompiler(GnuLikeCompiler): def __init__(self): @@ -49,7 +56,7 @@ class ClangCompiler(GnuLikeCompiler): return clang_color_args[colortype][:] def get_optimization_args(self, optimization_level: str) -> T.List[str]: - return clike_optimization_args[optimization_level] + return clang_optimization_args[optimization_level] def get_pch_suffix(self) -> str: return 'pch' |