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',''),