diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index aac99b426..95851be1d 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,