aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/c.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index aac99b4..95851be 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -353,6 +353,26 @@ class VisualStudioCCompiler(MSVCCompiler, VisualStudioLikeCCompilerMixin, CCompi
info, exe_wrap, **kwargs)
MSVCCompiler.__init__(self, target)
+ def get_options(self):
+ opts = super().get_options()
+ c_stds = ['none', 'c89', 'c99', 'c11']
+ opts.update({
+ 'std': coredata.UserComboOption(
+ 'C language standard to use',
+ c_stds,
+ 'none',
+ ),
+ })
+ return opts
+
+ def get_option_compile_args(self, options):
+ args = []
+ std = options['std']
+ # As of MVSC 16.7, /std:c11 is the only valid C standard option.
+ if std.value in {'c11'}:
+ args.append('/std:' + std.value)
+ return args
+
class ClangClCCompiler(ClangClCompiler, VisualStudioLikeCCompilerMixin, CCompiler):
def __init__(self, exelist, version, for_machine: MachineChoice,