(self, target_arch)
Returns a command (with arguments) to be used to set up the
    environment.
Returns a command (with arguments) to be used to set up the
    environment.
Returns a command ( with arguments ) to be used to set up the environment .
def _SetupScriptInternal(self, target_arch):
    """Returns a command (with arguments) to be used to set up the
    environment."""
    assert target_arch in ('x86', 'x64'), "target_arch not supported"
    # If WindowsSDKDir is set and SetEnv.Cmd exists then we are using the
    # depot_tools build tools and should run SetEnv.Cmd to set up the
    # environment. The check for WindowsSDKDir alone is not sufficient because
    # this is set by running vcvarsall.bat.
    sdk_dir = os.environ.get('WindowsSDKDir', '')
    setup_path = JoinPath(sdk_dir, 'Bin', 'SetEnv.Cmd')
    if self.sdk_based and sdk_dir and os.path.exists(setup_path):
      return [setup_path, '/' + target_arch]

    is_host_arch_x64 = (
      os.environ.get('PROCESSOR_ARCHITECTURE') == 'AMD64' or
      os.environ.get('PROCESSOR_ARCHITEW6432') == 'AMD64'
    )

    # For VS2017 (and newer) it's fairly easy
    if self.short_name >= '2017':
      script_path = JoinPath(self.path,
                             'VC', 'Auxiliary', 'Build', 'vcvarsall.bat')

      # Always use a native executable, cross-compiling if necessary.
      host_arch = 'amd64' if is_host_arch_x64 else 'x86'
      msvc_target_arch = 'amd64' if target_arch == 'x64' else 'x86'
      arg = host_arch
      if host_arch != msvc_target_arch:
        arg += '_' + msvc_target_arch

      return [script_path, arg]

    # We try to find the best version of the env setup batch.
    vcvarsall = JoinPath(self.path, 'VC', 'vcvarsall.bat')
    if target_arch == 'x86':
      if self.short_name >= '2013' and self.short_name[-1] != 'e' and \
         is_host_arch_x64:
        # VS2013 and later, non-Express have a x64-x86 cross that we want
        # to prefer.
        return [vcvarsall, 'amd64_x86']
      else:
        # Otherwise, the standard x86 compiler. We don't use VC/vcvarsall.bat
        # for x86 because vcvarsall calls vcvars32, which it can only find if
        # VS??COMNTOOLS is set, which isn't guaranteed.
        return [JoinPath(self.path, 'Common7', 'Tools', 'vsvars32.bat')]
    elif target_arch == 'x64':
      arg = 'x86_amd64'
      # Use the 64-on-64 compiler if we're not using an express edition and
      # we're running on a 64bit OS.
      if self.short_name[-1] != 'e' and is_host_arch_x64:
        arg = 'amd64'
      return [vcvarsall, arg]
def _SetupScriptInternal ( self , target_arch ) : assert target_arch in ( 'x86' , 'x64' ) , "target_arch not supported" # If WindowsSDKDir is set and SetEnv.Cmd exists then we are using the # depot_tools build tools and should run SetEnv.Cmd to set up the # environment. The check for WindowsSDKDir alone is not sufficient because # this is set by running vcvarsall.bat. sdk_dir = os . environ . get ( 'WindowsSDKDir' , '' ) setup_path = JoinPath ( sdk_dir , 'Bin' , 'SetEnv.Cmd' ) if self . sdk_based and sdk_dir and os . path . exists ( setup_path ) : return [ setup_path , '/' + target_arch ] is_host_arch_x64 = ( os . environ . get ( 'PROCESSOR_ARCHITECTURE' ) == 'AMD64' or os . environ . get ( 'PROCESSOR_ARCHITEW6432' ) == 'AMD64' ) # For VS2017 (and newer) it's fairly easy if self . short_name >= '2017' : script_path = JoinPath ( self . path , 'VC' , 'Auxiliary' , 'Build' , 'vcvarsall.bat' ) # Always use a native executable, cross-compiling if necessary. host_arch = 'amd64' if is_host_arch_x64 else 'x86' msvc_target_arch = 'amd64' if target_arch == 'x64' else 'x86' arg = host_arch if host_arch != msvc_target_arch : arg += '_' + msvc_target_arch return [ script_path , arg ] # We try to find the best version of the env setup batch. vcvarsall = JoinPath ( self . path , 'VC' , 'vcvarsall.bat' ) if target_arch == 'x86' : if self . short_name >= '2013' and self . short_name [ - 1 ] != 'e' and is_host_arch_x64 : # VS2013 and later, non-Express have a x64-x86 cross that we want # to prefer. return [ vcvarsall , 'amd64_x86' ] else : # Otherwise, the standard x86 compiler. We don't use VC/vcvarsall.bat # for x86 because vcvarsall calls vcvars32, which it can only find if # VS??COMNTOOLS is set, which isn't guaranteed. return [ JoinPath ( self . path , 'Common7' , 'Tools' , 'vsvars32.bat' ) ] elif target_arch == 'x64' : arg = 'x86_amd64' # Use the 64-on-64 compiler if we're not using an express edition and # we're running on a 64bit OS. if self . short_name [ - 1 ] != 'e' and is_host_arch_x64 : arg = 'amd64' return [ vcvarsall , arg ]