aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/__init__.py2
-rw-r--r--mesonbuild/compilers/c.py20
-rw-r--r--mesonbuild/compilers/compilers.py34
-rw-r--r--mesonbuild/compilers/cpp.py30
4 files changed, 62 insertions, 24 deletions
diff --git a/mesonbuild/compilers/__init__.py b/mesonbuild/compilers/__init__.py
index a0ec469..e58a604 100644
--- a/mesonbuild/compilers/__init__.py
+++ b/mesonbuild/compilers/__init__.py
@@ -43,6 +43,7 @@ __all__ = [
'ARMCompiler',
'ARMCCompiler',
+ 'ARMCPPCompiler',
'CCompiler',
'ClangCCompiler',
'ClangCompiler',
@@ -125,6 +126,7 @@ from .c import (
VisualStudioCCompiler,
)
from .cpp import (
+ ARMCPPCompiler,
CPPCompiler,
ClangCPPCompiler,
GnuCPPCompiler,
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 01f76ef..a77842c 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -917,10 +917,6 @@ class ARMCCompiler(ARMCompiler, CCompiler):
def get_coverage_link_args(self):
return []
- # Override CCompiler.get_always_args
- def get_always_args(self):
- return []
-
def get_option_compile_args(self, options):
return []
@@ -928,22 +924,6 @@ class ARMCCompiler(ARMCompiler, CCompiler):
args = ['armlink']
return args
- # Override CCompiler.get_dependency_gen_args
- def get_dependency_gen_args(self, outtarget, outfile):
- return []
-
- # Override CCompiler.get_std_shared_lib_link_args
- def get_std_shared_lib_link_args(self):
- return []
-
- def get_pch_use_args(self, pch_dir, header):
- # FIXME: Add required arguments
- # NOTE from armcc user guide:
- # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05
- # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported
- # PCH files."
- return []
-
def get_compile_only_args(self):
return ['-c']
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 47e3daa..556d881 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -114,10 +114,10 @@ gnulike_buildtype_args = {'plain': [],
'minsize': ['-Os', '-g']}
arm_buildtype_args = {'plain': [],
- 'debug': ['-O0', '-g'],
- 'debugoptimized': ['-O2', '-g'],
- 'release': ['-O2'],
- 'minsize': ['-Os', '-g'],
+ 'debug': ['-O0', '--debug'],
+ 'debugoptimized': ['-O1', '--debug'],
+ 'release': ['-O3', '-Otime'],
+ 'minsize': ['-O3', '-Ospace'],
}
msvc_buildtype_args = {'plain': [],
@@ -1118,6 +1118,26 @@ class ARMCompiler:
def get_buildtype_linker_args(self, buildtype):
return arm_buildtype_linker_args[buildtype]
+ # Override CCompiler.get_always_args
+ def get_always_args(self):
+ return []
+
+ # Override CCompiler.get_dependency_gen_args
+ def get_dependency_gen_args(self, outtarget, outfile):
+ return []
+
+ # Override CCompiler.get_std_shared_lib_link_args
+ def get_std_shared_lib_link_args(self):
+ return []
+
+ def get_pch_use_args(self, pch_dir, header):
+ # FIXME: Add required arguments
+ # NOTE from armcc user guide:
+ # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05
+ # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported
+ # PCH files."
+ return []
+
def get_pch_suffix(self):
# NOTE from armcc user guide:
# "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05
@@ -1128,6 +1148,12 @@ class ARMCompiler:
def split_shlib_to_parts(self, fname):
return os.path.split(fname)[0], fname
+ def thread_flags(self, env):
+ return []
+
+ def thread_link_flags(self, env):
+ return []
+
class ClangCompiler:
def __init__(self, clang_type):
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index 1fa6f15..15e8457 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -26,6 +26,7 @@ from .compilers import (
ClangCompiler,
GnuCompiler,
IntelCompiler,
+ ARMCompiler,
)
class CPPCompiler(CCompiler):
@@ -133,6 +134,35 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
return ['-fpch-preprocess', '-include', os.path.basename(header)]
+class ARMCPPCompiler(ARMCompiler, CPPCompiler):
+ def __init__(self, exelist, version, is_cross, exe_wrap=None, defines=None, **kwargs):
+ CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap, **kwargs)
+ ARMCompiler.__init__(self, defines)
+ default_warn_args = []
+ self.warn_args = {'1': default_warn_args,
+ '2': default_warn_args + [],
+ '3': default_warn_args + []}
+
+ def get_options(self):
+ opts = {'cpp_std': coredata.UserComboOption('cpp_std', 'C++ language standard to use',
+ ['none', 'c++11'],
+ 'none')}
+ return opts
+
+ def get_option_compile_args(self, options):
+ args = []
+ std = options['cpp_std']
+ if std.value == 'c++11':
+ args.append('--cpp11')
+ return args
+
+ def get_option_link_args(self, options):
+ return []
+
+ def get_compiler_check_args(self):
+ return []
+
+
class IntelCPPCompiler(IntelCompiler, CPPCompiler):
def __init__(self, exelist, version, icc_type, is_cross, exe_wrap, **kwargs):
CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap, **kwargs)