@ -366,39 +366,6 @@ def RemoveUnusedToolchains(root):
RemoveToolchain ( root , toolchain [ 1 ] , True )
RemoveToolchain ( root , toolchain [ 1 ] , True )
def GetInstallerName ( ) :
""" Return the name of the Windows 10 Universal C Runtime installer for the
current platform , or None if installer is not needed or not applicable .
The registry has to be used instead of sys . getwindowsversion ( ) because
Python 2.7 is only manifested as being compatible up to Windows 8 , so the
version APIs helpfully return a maximum of 6.2 ( Windows 8 ) .
"""
key_name = r ' Software \ Microsoft \ Windows NT \ CurrentVersion '
key = winreg . OpenKey ( winreg . HKEY_LOCAL_MACHINE , key_name )
value , keytype = winreg . QueryValueEx ( key , " CurrentVersion " )
key . Close ( )
if keytype != winreg . REG_SZ :
raise Exception ( " Unexpected type in registry " )
if value == ' 6.1 ' :
# Windows 7 and Windows Server 2008 R2
return ' Windows6.1-KB2999226-x64.msu '
elif value == ' 6.2 ' :
# Windows 8 and Windows Server 2012
return ' Windows8-RT-KB2999226-x64.msu '
elif value == ' 6.3 ' :
# Windows 8.1, Windows Server 2012 R2, and Windows 10.
# The Windows 8.1 installer doesn't work on Windows 10, but it will never
# be used because the UCRT is always installed on Windows 10.
return ' Windows8.1-KB2999226-x64.msu '
else :
# Some future OS.
return None
def InstallUniversalCRTIfNeeded ( abs_target_dir ) :
return
def EnableCrashDumpCollection ( ) :
def EnableCrashDumpCollection ( ) :
""" Tell Windows Error Reporting to record crash dumps so that we can diagnose
""" Tell Windows Error Reporting to record crash dumps so that we can diagnose
linker crashes and other toolchain failures . Documented at :
linker crashes and other toolchain failures . Documented at :
@ -451,10 +418,10 @@ def main():
# the downloader script is.
# the downloader script is.
os . chdir ( os . path . normpath ( os . path . join ( BASEDIR ) ) )
os . chdir ( os . path . normpath ( os . path . join ( BASEDIR ) ) )
toolchain_dir = ' . '
toolchain_dir = ' . '
if os . environ . get ( ' GYP_MSVS_VERSION ' ) == ' 2015 ' :
if os . environ . get ( ' GYP_MSVS_VERSION ' ) == ' 2013 ' :
target_dir = os . path . normpath ( os . path . join ( toolchain_dir , ' vs_files ' ) )
else :
target_dir = os . path . normpath ( os . path . join ( toolchain_dir , ' vs2013_files ' ) )
target_dir = os . path . normpath ( os . path . join ( toolchain_dir , ' vs2013_files ' ) )
else :
target_dir = os . path . normpath ( os . path . join ( toolchain_dir , ' vs_files ' ) )
if not os . path . isdir ( target_dir ) :
if not os . path . isdir ( target_dir ) :
os . mkdir ( target_dir )
os . mkdir ( target_dir )
toolchain_target_dir = os . path . join ( target_dir , desired_hash )
toolchain_target_dir = os . path . join ( target_dir , desired_hash )
@ -536,9 +503,6 @@ def main():
EnableCrashDumpCollection ( )
EnableCrashDumpCollection ( )
if os . environ . get ( ' GYP_MSVS_VERSION ' ) == ' 2015 ' :
InstallUniversalCRTIfNeeded ( abs_toolchain_target_dir )
RemoveUnusedToolchains ( target_dir )
RemoveUnusedToolchains ( target_dir )
return 0
return 0