Index: tools/msbuild/CMakeLists.txt =================================================================== --- tools/msbuild/CMakeLists.txt +++ tools/msbuild/CMakeLists.txt @@ -12,6 +12,8 @@ set(prop_file_v120_xp "toolset-vs2013_xp.props") set(prop_file_v140 "toolset-vs2014.props") set(prop_file_v140_xp "toolset-vs2014_xp.props") + set(prop_file_v141 "toolset-vs2017.props") + set(prop_file_v141_xp "toolset-vs2017_xp.props") if (platform STREQUAL "Win32") set(mflag "m32") @@ -36,6 +38,11 @@ configure_file(${prop_file_in} ${platform}/${prop_file_v140}) set(VS_VERSION "v140_xp") configure_file(${prop_file_in} ${platform}/${prop_file_v140_xp}) + set(VS_VERSION "v141") + set(MSC_VERSION "1911") + configure_file(${prop_file_in} ${platform}/${prop_file_v141}) + set(VS_VERSION "v141_xp") + configure_file(${prop_file_in} ${platform}/${prop_file_v141_xp}) set(VS_VERSION) set(MSC_VERSION) set(mflag) @@ -47,6 +54,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v120_xp}" DESTINATION tools/msbuild/${platform}) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v140}" DESTINATION tools/msbuild/${platform}) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v140_xp}" DESTINATION tools/msbuild/${platform}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v141}" DESTINATION tools/msbuild/${platform}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v141_xp}" DESTINATION tools/msbuild/${platform}) install(FILES "Microsoft.Cpp.Win32.LLVM-vs2010.targets" DESTINATION "tools/msbuild/${platform}" RENAME "Microsoft.Cpp.${platform}.LLVM-vs2010.targets") install(FILES "Microsoft.Cpp.Win32.LLVM-vs2012.targets" DESTINATION "tools/msbuild/${platform}" RENAME "Microsoft.Cpp.${platform}.LLVM-vs2012.targets") @@ -55,6 +64,8 @@ install(FILES "toolset-vs2013_xp.targets" DESTINATION "tools/msbuild/${platform}") install(FILES "toolset-vs2014.targets" DESTINATION "tools/msbuild/${platform}") install(FILES "toolset-vs2014_xp.targets" DESTINATION "tools/msbuild/${platform}") + install(FILES "toolset-vs2017.targets" DESTINATION "tools/msbuild/${platform}") + install(FILES "toolset-vs2017_xp.targets" DESTINATION "tools/msbuild/${platform}") endforeach() set(LIB_PATH_VERSION) Index: tools/msbuild/install.bat =================================================================== --- tools/msbuild/install.bat +++ tools/msbuild/install.bat @@ -40,6 +40,21 @@ :TRY_V150 +REM MSBuild is now under the Visual Studio installation. VSWhere is a new executable placed in a known +REM location that can be used to find the VS installation, starting with VS 2017 SP1 +IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( + FOR /f "usebackq delims=" %%i IN (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -latest -version 15 -property installationPath`) DO ( + SET D="%%i\Common7\IDE\VC\VCTargets\Platforms\%PLATFORM%\PlatformToolsets" + ) +) +REM On 32-bit Windows OSes before Windows 10, vswhere will be installed under %ProgramFiles% +IF EXIST "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( + FOR /f "usebackq delims=" %%i IN (`"%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -latest -version 15 -property installationPath`) DO ( + SET D="%%i\Common7\IDE\VC\VCTargets\Platforms\%PLATFORM%\PlatformToolsets" + ) +) +if EXIST %D% GOTO FOUND_V150 + GOTO PLATFORMLOOPHEAD :PLATFORMLOOPEND @@ -110,6 +125,21 @@ set SUCCESS=1 GOTO TRY_V150 +:FOUND_V150 +REM Routine for installing v150 toolchain. +IF NOT EXIST %D%\LLVM-vs2017 mkdir %D%\LLVM-vs2017 +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +copy %PLATFORM%\toolset-vs2017.props %D%\LLVM-vs2017\toolset.props +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +copy %PLATFORM%\toolset-vs2017.targets %D%\LLVM-vs2017\toolset.targets +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +IF NOT EXIST %D%\LLVM-vs2017_xp mkdir %D%\LLVM-vs2017_xp +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +copy %PLATFORM%\toolset-vs2017_xp.props %D%\LLVM-vs2017_xp\toolset.props +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +copy %PLATFORM%\toolset-vs2017_xp.targets %D%\LLVM-vs2017_xp\toolset.targets +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +set SUCCESS=1 :DONE echo Done! Index: tools/msbuild/toolset-vs2017.targets =================================================================== --- tools/msbuild/toolset-vs2017.targets +++ tools/msbuild/toolset-vs2017.targets @@ -0,0 +1,3 @@ + + + Index: tools/msbuild/toolset-vs2017_xp.targets =================================================================== --- tools/msbuild/toolset-vs2017_xp.targets +++ tools/msbuild/toolset-vs2017_xp.targets @@ -0,0 +1,21 @@ + + + + v4.0 + NoSupportCodeAnalysisXP;$(BeforeClCompileTargets) + + + + + + + + + + CheckWindowsSDK71A;$(PrepareForBuildDependsOn) + + + + + + Index: tools/msbuild/uninstall.bat =================================================================== --- tools/msbuild/uninstall.bat +++ tools/msbuild/uninstall.bat @@ -66,6 +66,26 @@ IF EXIST %D%\LLVM-vs2014_xp del %D%\LLVM-vs2014_xp\toolset.targets IF EXIST %D%\LLVM-vs2014_xp rmdir %D%\LLVM-vs2014_xp +REM MSBuild is now under the Visual Studio installation. VSWhere is a new executable placed in a known +REM location that can be used to find the VS installation, starting with VS 2017 SP1 +IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( + FOR /f "usebackq delims=" %%i IN (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -version 15 -property installationPath`) DO ( + SET D="%%i\Common7\IDE\VC\VCTargets\Platforms\%PLATFORM%\PlatformToolsets" + ) +) + +REM On 32-bit Windows OSes before Windows 10, vswhere will be installed under %ProgramFiles% +IF EXIST "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( + FOR /f "usebackq delims=" %%i IN (`"%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -version 15 -property installationPath`) DO ( + SET D="%%i\Common7\IDE\VC\VCTargets\Platforms\%PLATFORM%\PlatformToolsets" + ) +) +IF EXIST %D%\LLVM-vs2017 del %D%\LLVM-vs2017\toolset.props +IF EXIST %D%\LLVM-vs2017 del %D%\LLVM-vs2017\toolset.targets +IF EXIST %D%\LLVM-vs2017 rmdir %D%\LLVM-vs2017 +IF EXIST %D%\LLVM-vs2017_xp del %D%\LLVM-vs2017_xp\toolset.props +IF EXIST %D%\LLVM-vs2017_xp del %D%\LLVM-vs2017_xp\toolset.targets +IF EXIST %D%\LLVM-vs2017_xp rmdir %D%\LLVM-vs2017_xp GOTO LOOPHEAD Index: utils/lit/lit/TestingConfig.py =================================================================== --- utils/lit/lit/TestingConfig.py +++ utils/lit/lit/TestingConfig.py @@ -37,6 +37,7 @@ environment.update({ 'INCLUDE' : os.environ.get('INCLUDE',''), 'PATHEXT' : os.environ.get('PATHEXT',''), + 'PROGRAMDATA' : os.environ.get('PROGRAMDATA',''), 'PYTHONUNBUFFERED' : '1', 'TEMP' : os.environ.get('TEMP',''), 'TMP' : os.environ.get('TMP',''),