parameters: (self, config)
return_statement: return cflags
docstring: Returns the flags that need to be added to .c and .cc compilations.
docstring_summary: Returns the flags that need to be added to .c and .cc compilations.
docstring_tokens: Returns the flags that need to be added to . c and . cc compilations .
function: def GetCflags(self, config):
      """Returns the flags that need to be added to .c and .cc compilations."""
      config = self._TargetConfig(config)
      cflags = []
      cflags.extend(['/wd' + w for w in self.msvs_disabled_warnings[config]])
      cl = self._GetWrapper(self, self.msvs_settings[config],
                            'VCCLCompilerTool', append=cflags)
      cl('Optimization',
         map={'0': 'd', '1': '1', '2': '2', '3': 'x'}, prefix='/O', default='2')
      cl('InlineFunctionExpansion', prefix='/Ob')
      cl('DisableSpecificWarnings', prefix='/wd')
      cl('StringPooling', map={'true': '/GF'})
      cl('EnableFiberSafeOptimizations', map={'true': '/GT'})
      cl('OmitFramePointers', map={'false': '-', 'true': ''}, prefix='/Oy')
      cl('EnableIntrinsicFunctions', map={'false': '-', 'true': ''}, prefix='/Oi')
      cl('FavorSizeOrSpeed', map={'1': 't', '2': 's'}, prefix='/O')
      cl('FloatingPointModel',
          map={'0': 'precise', '1': 'strict', '2': 'fast'}, prefix='/fp:',
          default='0')
      cl('CompileAsManaged', map={'false': '', 'true': '/clr'})
      cl('WholeProgramOptimization', map={'true': '/GL'})
      cl('WarningLevel', prefix='/W')
      cl('WarnAsError', map={'true': '/WX'})
      cl('CallingConvention',
          map={'0': 'd', '1': 'r', '2': 'z', '3': 'v'}, prefix='/G')
      cl('DebugInformationFormat',
          map={'1': '7', '3': 'i', '4': 'I'}, prefix='/Z')
      cl('RuntimeTypeInfo', map={'true': '/GR', 'false': '/GR-'})
      cl('EnableFunctionLevelLinking', map={'true': '/Gy', 'false': '/Gy-'})
      cl('MinimalRebuild', map={'true': '/Gm'})
      cl('BufferSecurityCheck', map={'true': '/GS', 'false': '/GS-'})
      cl('BasicRuntimeChecks', map={'1': 's', '2': 'u', '3': '1'}, prefix='/RTC')
      cl('RuntimeLibrary',
          map={'0': 'T', '1': 'Td', '2': 'D', '3': 'Dd'}, prefix='/M')
      cl('ExceptionHandling', map={'1': 'sc','2': 'a'}, prefix='/EH')
      cl('DefaultCharIsUnsigned', map={'true': '/J'})
      cl('TreatWChar_tAsBuiltInType',
          map={'false': '-', 'true': ''}, prefix='/Zc:wchar_t')
      cl('EnablePREfast', map={'true': '/analyze'})
      cl('AdditionalOptions', prefix='')
      cl('EnableEnhancedInstructionSet',
          map={'1': 'SSE', '2': 'SSE2', '3': 'AVX', '4': 'IA32', '5': 'AVX2'},
          prefix='/arch:')
      cflags.extend(['/FI' + f for f in self._Setting(
          ('VCCLCompilerTool', 'ForcedIncludeFiles'), config, default=[])])
      if self.vs_version.project_version >= 12.0:
        # New flag introduced in VS2013 (project version 12.0) Forces writes to
        # the program database (PDB) to be serialized through MSPDBSRV.EXE.
        # https://msdn.microsoft.com/en-us/library/dn502518.aspx
        cflags.append('/FS')
      # ninja handles parallelism by itself, don't have the compiler do it too.
      cflags = filter(lambda x: not x.startswith('/MP'), cflags)
      return cflags
function_tokens: def GetCflags ( self , config ) : config = self . _TargetConfig ( config ) cflags = [ ] cflags . extend ( [ '/wd' + w for w in self . msvs_disabled_warnings [ config ] ] ) cl = self . _GetWrapper ( self , self . msvs_settings [ config ] , 'VCCLCompilerTool' , append = cflags ) cl ( 'Optimization' , map = { '0' : 'd' , '1' : '1' , '2' : '2' , '3' : 'x' } , prefix = '/O' , default = '2' ) cl ( 'InlineFunctionExpansion' , prefix = '/Ob' ) cl ( 'DisableSpecificWarnings' , prefix = '/wd' ) cl ( 'StringPooling' , map = { 'true' : '/GF' } ) cl ( 'EnableFiberSafeOptimizations' , map = { 'true' : '/GT' } ) cl ( 'OmitFramePointers' , map = { 'false' : '-' , 'true' : '' } , prefix = '/Oy' ) cl ( 'EnableIntrinsicFunctions' , map = { 'false' : '-' , 'true' : '' } , prefix = '/Oi' ) cl ( 'FavorSizeOrSpeed' , map = { '1' : 't' , '2' : 's' } , prefix = '/O' ) cl ( 'FloatingPointModel' , map = { '0' : 'precise' , '1' : 'strict' , '2' : 'fast' } , prefix = '/fp:' , default = '0' ) cl ( 'CompileAsManaged' , map = { 'false' : '' , 'true' : '/clr' } ) cl ( 'WholeProgramOptimization' , map = { 'true' : '/GL' } ) cl ( 'WarningLevel' , prefix = '/W' ) cl ( 'WarnAsError' , map = { 'true' : '/WX' } ) cl ( 'CallingConvention' , map = { '0' : 'd' , '1' : 'r' , '2' : 'z' , '3' : 'v' } , prefix = '/G' ) cl ( 'DebugInformationFormat' , map = { '1' : '7' , '3' : 'i' , '4' : 'I' } , prefix = '/Z' ) cl ( 'RuntimeTypeInfo' , map = { 'true' : '/GR' , 'false' : '/GR-' } ) cl ( 'EnableFunctionLevelLinking' , map = { 'true' : '/Gy' , 'false' : '/Gy-' } ) cl ( 'MinimalRebuild' , map = { 'true' : '/Gm' } ) cl ( 'BufferSecurityCheck' , map = { 'true' : '/GS' , 'false' : '/GS-' } ) cl ( 'BasicRuntimeChecks' , map = { '1' : 's' , '2' : 'u' , '3' : '1' } , prefix = '/RTC' ) cl ( 'RuntimeLibrary' , map = { '0' : 'T' , '1' : 'Td' , '2' : 'D' , '3' : 'Dd' } , prefix = '/M' ) cl ( 'ExceptionHandling' , map = { '1' : 'sc' , '2' : 'a' } , prefix = '/EH' ) cl ( 'DefaultCharIsUnsigned' , map = { 'true' : '/J' } ) cl ( 'TreatWChar_tAsBuiltInType' , map = { 'false' : '-' , 'true' : '' } , prefix = '/Zc:wchar_t' ) cl ( 'EnablePREfast' , map = { 'true' : '/analyze' } ) cl ( 'AdditionalOptions' , prefix = '' ) cl ( 'EnableEnhancedInstructionSet' , map = { '1' : 'SSE' , '2' : 'SSE2' , '3' : 'AVX' , '4' : 'IA32' , '5' : 'AVX2' } , prefix = '/arch:' ) cflags . extend ( [ '/FI' + f for f in self . _Setting ( ( 'VCCLCompilerTool' , 'ForcedIncludeFiles' ) , config , default = [ ] ) ] ) if self . vs_version . project_version >= 12.0 : # New flag introduced in VS2013 (project version 12.0) Forces writes to # the program database (PDB) to be serialized through MSPDBSRV.EXE. # https://msdn.microsoft.com/en-us/library/dn502518.aspx cflags . append ( '/FS' ) # ninja handles parallelism by itself, don't have the compiler do it too. cflags = filter ( lambda x : not x . startswith ( '/MP' ) , cflags ) return cflags