aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/cpp.py
diff options
context:
space:
mode:
authorVasu Penugonda <34339497+sompen@users.noreply.github.com>2018-06-21 03:25:39 +0530
committerJussi Pakkanen <jpakkane@gmail.com>2018-06-21 00:55:39 +0300
commit7140afc0a86f2aae0689617fca985ef209a7c097 (patch)
tree90ea64438db91b8c29b2d70d5d1c5683fe0e86f1 /mesonbuild/compilers/cpp.py
parentf3c01a3c4f973ad234ead327f696b5e7fb43e4f6 (diff)
downloadmeson-7140afc0a86f2aae0689617fca985ef209a7c097.zip
meson-7140afc0a86f2aae0689617fca985ef209a7c097.tar.gz
meson-7140afc0a86f2aae0689617fca985ef209a7c097.tar.bz2
Added ARMCLANG compiler support for C/C++ (#3717)
Diffstat (limited to 'mesonbuild/compilers/cpp.py')
-rw-r--r--mesonbuild/compilers/cpp.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index c3bb59d..126900a 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -27,6 +27,7 @@ from .compilers import (
ElbrusCompiler,
IntelCompiler,
ArmCompiler,
+ ArmclangCompiler,
)
class CPPCompiler(CCompiler):
@@ -98,6 +99,34 @@ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
return ['-lstdc++']
+class ArmclangCPPCompiler(ArmclangCompiler, CPPCompiler):
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwargs):
+ CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)
+ ArmclangCompiler.__init__(self)
+ default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
+ self.warn_args = {'1': default_warn_args,
+ '2': default_warn_args + ['-Wextra'],
+ '3': default_warn_args + ['-Wextra', '-Wpedantic']}
+
+ def get_options(self):
+ opts = CPPCompiler.get_options(self)
+ opts.update({'cpp_std': coredata.UserComboOption('cpp_std', 'C++ language standard to use',
+ ['none', 'c++98', 'c++03', 'c++11', 'c++14', 'c++17'
+ 'gnu++98', 'gnu++03', 'gnu++11', 'gnu++14', 'gnu++17'],
+ 'none')})
+ return opts
+
+ def get_option_compile_args(self, options):
+ args = []
+ std = options['cpp_std']
+ if std.value != 'none':
+ args.append('-std=' + std.value)
+ return args
+
+ def get_option_link_args(self, options):
+ return []
+
+
class GnuCPPCompiler(GnuCompiler, CPPCompiler):
def __init__(self, exelist, version, gcc_type, is_cross, exe_wrap, defines, **kwargs):
CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap, **kwargs)