| Index: win_toolchain/package_from_installed.py
|
| diff --git a/win_toolchain/package_from_installed.py b/win_toolchain/package_from_installed.py
|
| index c71de3dab9f78809f6e2f5310397c732415729e7..7424d630b4747fc48a8e20c1174eb441b1d8dad1 100644
|
| --- a/win_toolchain/package_from_installed.py
|
| +++ b/win_toolchain/package_from_installed.py
|
| @@ -21,6 +21,7 @@ useful as the resulting zip can't be redistributed, and most will presumably
|
| have a Pro license anyway).
|
| """
|
|
|
| +import glob
|
| import optparse
|
| import os
|
| import platform
|
| @@ -67,10 +68,14 @@ def BuildFileList():
|
| elif VS_VERSION == '2015':
|
| paths += [
|
| ('VC/redist/x86/Microsoft.VC140.CRT', 'sys32'),
|
| + ('VC/redist/x86/Microsoft.VC140.CRT', 'win_sdk/bin/x86'),
|
| ('VC/redist/x86/Microsoft.VC140.MFC', 'sys32'),
|
| ('VC/redist/debug_nonredist/x86/Microsoft.VC140.DebugCRT', 'sys32'),
|
| ('VC/redist/debug_nonredist/x86/Microsoft.VC140.DebugMFC', 'sys32'),
|
| ('VC/redist/x64/Microsoft.VC140.CRT', 'sys64'),
|
| + ('VC/redist/x64/Microsoft.VC140.CRT', 'VC/bin/amd64_x86'),
|
| + ('VC/redist/x64/Microsoft.VC140.CRT', 'VC/bin/amd64'),
|
| + ('VC/redist/x64/Microsoft.VC140.CRT', 'win_sdk/bin/x64'),
|
| ('VC/redist/x64/Microsoft.VC140.MFC', 'sys64'),
|
| ('VC/redist/debug_nonredist/x64/Microsoft.VC140.DebugCRT', 'sys64'),
|
| ('VC/redist/debug_nonredist/x64/Microsoft.VC140.DebugMFC', 'sys64'),
|
| @@ -151,19 +156,37 @@ def BuildFileList():
|
| installer),
|
| os.path.join('installers', installer)))
|
|
|
| - system_crt_files = [
|
| - # Needed to let debug binaries run.
|
| - 'ucrtbased.dll',
|
| - ]
|
| - bitness = platform.architecture()[0]
|
| - # When running 64-bit python the x64 DLLs will be in System32
|
| - x64_path = 'System32' if bitness == '64bit' else 'Sysnative'
|
| - x64_path = os.path.join(r'C:\Windows', x64_path)
|
| - for system_crt_file in system_crt_files:
|
| - result.append((os.path.join(r'C:\Windows\SysWOW64', system_crt_file),
|
| - os.path.join('sys32', system_crt_file)))
|
| - result.append((os.path.join(x64_path, system_crt_file),
|
| - os.path.join('sys64', system_crt_file)))
|
| + if VS_VERSION == '2015':
|
| + # Copy the x86 ucrt DLLs to all directories with 32-bit binaries that are
|
| + # added to the path by SetEnv.cmd, and to sys32.
|
| + ucrt_paths = glob.glob(os.path.join(sdk_path, r'redist\ucrt\dlls\x86\*'))
|
| + for ucrt_path in ucrt_paths:
|
| + ucrt_file = os.path.split(ucrt_path)[1]
|
| + for dest_dir in [ r'win_sdk\bin\x86', 'sys32' ]:
|
| + result.append((ucrt_path, os.path.join(dest_dir, ucrt_file)))
|
| +
|
| + # Copy the x64 ucrt DLLs to all directories with 64-bit binaries that are
|
| + # added to the path by SetEnv.cmd, and to sys64.
|
| + ucrt_paths = glob.glob(os.path.join(sdk_path, r'redist\ucrt\dlls\x64\*'))
|
| + for ucrt_path in ucrt_paths:
|
| + ucrt_file = os.path.split(ucrt_path)[1]
|
| + for dest_dir in [ r'VC\bin\amd64_x86', r'VC\bin\amd64',
|
| + r'win_sdk\bin\x64', 'sys64']:
|
| + result.append((ucrt_path, os.path.join(dest_dir, ucrt_file)))
|
| +
|
| + system_crt_files = [
|
| + # Needed to let debug binaries run.
|
| + 'ucrtbased.dll',
|
| + ]
|
| + bitness = platform.architecture()[0]
|
| + # When running 64-bit python the x64 DLLs will be in System32
|
| + x64_path = 'System32' if bitness == '64bit' else 'Sysnative'
|
| + x64_path = os.path.join(r'C:\Windows', x64_path)
|
| + for system_crt_file in system_crt_files:
|
| + result.append((os.path.join(r'C:\Windows\SysWOW64', system_crt_file),
|
| + os.path.join('sys32', system_crt_file)))
|
| + result.append((os.path.join(x64_path, system_crt_file),
|
| + os.path.join('sys64', system_crt_file)))
|
|
|
| # Generically drop all arm stuff that we don't need, and
|
| # drop .msi files because we don't need installers.
|
| @@ -185,7 +208,6 @@ def GenerateSetEnvCmd(target_dir):
|
| # Common to x86 and x64
|
| 'set VSINSTALLDIR=%~dp0..\\..\\\n'
|
| 'set VCINSTALLDIR=%~dp0..\\..\\VC\\\n'
|
| - 'set PATH=%~dp0..\\..\\Common7\\IDE;%PATH%\n'
|
| 'set INCLUDE=%~dp0..\\..\\win_sdk\\Include\\WINVERSION\\um;'
|
| '%~dp0..\\..\\win_sdk\\Include\\WINVERSION\\shared;'
|
| '%~dp0..\\..\\win_sdk\\Include\\WINVERSION\\winrt;'.replace(
|
|
|