parameters: (env)
docstring: Add Builders and construction variables for Microsoft Visual
      Studio project files to an Environment.
docstring_summary: Add Builders and construction variables for Microsoft Visual
      Studio project files to an Environment.
docstring_tokens: Add Builders and construction variables for Microsoft Visual Studio project files to an Environment .
function: def generate(env):
      """Add Builders and construction variables for Microsoft Visual
      Studio project files to an Environment."""
      try:
          env['BUILDERS']['MSVSProject']
      except KeyError:
          env['BUILDERS']['MSVSProject'] = projectBuilder
  
      try:
          env['BUILDERS']['MSVSSolution']
      except KeyError:
          env['BUILDERS']['MSVSSolution'] = solutionBuilder
  
      env['MSVSPROJECTCOM'] = projectAction
      env['MSVSSOLUTIONCOM'] = solutionAction
  
      if SCons.Script.call_stack:
          # XXX Need to find a way to abstract this; the build engine
          # shouldn't depend on anything in SCons.Script.
          env['MSVSSCONSCRIPT'] = SCons.Script.call_stack[0].sconscript
      else:
          global default_MSVS_SConscript
          if default_MSVS_SConscript is None:
              default_MSVS_SConscript = env.File('SConstruct')
          env['MSVSSCONSCRIPT'] = default_MSVS_SConscript
  
      env['MSVSSCONS'] = '"%s" -c "%s"' % (python_executable, getExecScriptMain(env))
      env['MSVSSCONSFLAGS'] = '-C "${MSVSSCONSCRIPT.dir.get_abspath()}" -f ${MSVSSCONSCRIPT.name}'
      env['MSVSSCONSCOM'] = '$MSVSSCONS $MSVSSCONSFLAGS'
      env['MSVSBUILDCOM'] = '$MSVSSCONSCOM "$MSVSBUILDTARGET"'
      env['MSVSREBUILDCOM'] = '$MSVSSCONSCOM "$MSVSBUILDTARGET"'
      env['MSVSCLEANCOM'] = '$MSVSSCONSCOM -c "$MSVSBUILDTARGET"'
  
      # Set-up ms tools paths for default version
      msvc_setup_env_once(env)
  
      if 'MSVS_VERSION' in env:
          version_num, suite = msvs_parse_version(env['MSVS_VERSION'])
      else:
          (version_num, suite) = (7.0, None) # guess at a default
      if 'MSVS' not in env:
          env['MSVS'] = {}
      if (version_num < 7.0):
          env['MSVS']['PROJECTSUFFIX']  = '.dsp'
          env['MSVS']['SOLUTIONSUFFIX'] = '.dsw'
      elif (version_num < 10.0):
          env['MSVS']['PROJECTSUFFIX']  = '.vcproj'
          env['MSVS']['SOLUTIONSUFFIX'] = '.sln'
      else:
          env['MSVS']['PROJECTSUFFIX']  = '.vcxproj'
          env['MSVS']['SOLUTIONSUFFIX'] = '.sln'
  
      if (version_num >= 10.0):
          env['MSVSENCODING'] = 'utf-8'
      else:
          env['MSVSENCODING'] = 'Windows-1252'
  
      env['GET_MSVSPROJECTSUFFIX']  = GetMSVSProjectSuffix
      env['GET_MSVSSOLUTIONSUFFIX']  = GetMSVSSolutionSuffix
      env['MSVSPROJECTSUFFIX']  = '${GET_MSVSPROJECTSUFFIX}'
      env['MSVSSOLUTIONSUFFIX']  = '${GET_MSVSSOLUTIONSUFFIX}'
      env['SCONS_HOME'] = os.environ.get('SCONS_HOME')
function_tokens: def generate ( env ) : try : env [ 'BUILDERS' ] [ 'MSVSProject' ] except KeyError : env [ 'BUILDERS' ] [ 'MSVSProject' ] = projectBuilder try : env [ 'BUILDERS' ] [ 'MSVSSolution' ] except KeyError : env [ 'BUILDERS' ] [ 'MSVSSolution' ] = solutionBuilder env [ 'MSVSPROJECTCOM' ] = projectAction env [ 'MSVSSOLUTIONCOM' ] = solutionAction if SCons . Script . call_stack : # XXX Need to find a way to abstract this; the build engine # shouldn't depend on anything in SCons.Script. env [ 'MSVSSCONSCRIPT' ] = SCons . Script . call_stack [ 0 ] . sconscript else : global default_MSVS_SConscript if default_MSVS_SConscript is None : default_MSVS_SConscript = env . File ( 'SConstruct' ) env [ 'MSVSSCONSCRIPT' ] = default_MSVS_SConscript env [ 'MSVSSCONS' ] = '"%s" -c "%s"' % ( python_executable , getExecScriptMain ( env ) ) env [ 'MSVSSCONSFLAGS' ] = '-C "${MSVSSCONSCRIPT.dir.get_abspath()}" -f ${MSVSSCONSCRIPT.name}' env [ 'MSVSSCONSCOM' ] = '$MSVSSCONS $MSVSSCONSFLAGS' env [ 'MSVSBUILDCOM' ] = '$MSVSSCONSCOM "$MSVSBUILDTARGET"' env [ 'MSVSREBUILDCOM' ] = '$MSVSSCONSCOM "$MSVSBUILDTARGET"' env [ 'MSVSCLEANCOM' ] = '$MSVSSCONSCOM -c "$MSVSBUILDTARGET"' # Set-up ms tools paths for default version msvc_setup_env_once ( env ) if 'MSVS_VERSION' in env : version_num , suite = msvs_parse_version ( env [ 'MSVS_VERSION' ] ) else : ( version_num , suite ) = ( 7.0 , None ) # guess at a default if 'MSVS' not in env : env [ 'MSVS' ] = { } if ( version_num < 7.0 ) : env [ 'MSVS' ] [ 'PROJECTSUFFIX' ] = '.dsp' env [ 'MSVS' ] [ 'SOLUTIONSUFFIX' ] = '.dsw' elif ( version_num < 10.0 ) : env [ 'MSVS' ] [ 'PROJECTSUFFIX' ] = '.vcproj' env [ 'MSVS' ] [ 'SOLUTIONSUFFIX' ] = '.sln' else : env [ 'MSVS' ] [ 'PROJECTSUFFIX' ] = '.vcxproj' env [ 'MSVS' ] [ 'SOLUTIONSUFFIX' ] = '.sln' if ( version_num >= 10.0 ) : env [ 'MSVSENCODING' ] = 'utf-8' else : env [ 'MSVSENCODING' ] = 'Windows-1252' env [ 'GET_MSVSPROJECTSUFFIX' ] = GetMSVSProjectSuffix env [ 'GET_MSVSSOLUTIONSUFFIX' ] = GetMSVSSolutionSuffix env [ 'MSVSPROJECTSUFFIX' ] = '${GET_MSVSPROJECTSUFFIX}' env [ 'MSVSSOLUTIONSUFFIX' ] = '${GET_MSVSSOLUTIONSUFFIX}' env [ 'SCONS_HOME' ] = os . environ . get ( 'SCONS_HOME' )