aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/c.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers/c.py')
-rw-r--r--mesonbuild/compilers/c.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index cd3aad1..b63dce4 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -32,6 +32,7 @@ from .compilers import (
vs32_instruction_set_args,
vs64_instruction_set_args,
ArmCompiler,
+ ArmclangCompiler,
ClangCompiler,
Compiler,
CompilerArgs,
@@ -979,6 +980,34 @@ class ClangCCompiler(ClangCompiler, CCompiler):
return basic
+class ArmclangCCompiler(ArmclangCompiler, CCompiler):
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwargs):
+ CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)
+ ArmclangCompiler.__init__(self)
+ default_warn_args = ['-Wall', '-Winvalid-pch']
+ self.warn_args = {'1': default_warn_args,
+ '2': default_warn_args + ['-Wextra'],
+ '3': default_warn_args + ['-Wextra', '-Wpedantic']}
+
+ def get_options(self):
+ opts = CCompiler.get_options(self)
+ opts.update({'c_std': coredata.UserComboOption('c_std', 'C language standard to use',
+ ['none', 'c90', 'c99', 'c11',
+ 'gnu90', 'gnu99', 'gnu11'],
+ 'none')})
+ return opts
+
+ def get_option_compile_args(self, options):
+ args = []
+ std = options['c_std']
+ if std.value != 'none':
+ args.append('-std=' + std.value)
+ return args
+
+ def get_option_link_args(self, options):
+ return []
+
+
class GnuCCompiler(GnuCompiler, CCompiler):
def __init__(self, exelist, version, gcc_type, is_cross, exe_wrapper=None, defines=None, **kwargs):
CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)