From 67ee127f1a7a90faf5c8fbecf19885bc45591c85 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Wed, 12 Feb 2014 23:26:29 +0000 Subject: VS Integration: install toolsets for x64 too (PR18738) This does exactly the same thing as for Win32, except it passes -m64 to the compiler and the files go in a different directory. Differential Revision: http://llvm-reviews.chandlerc.com/D2749 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201269 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/msbuild/CMakeLists.txt | 70 +++++++++++++++---------- tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in | 2 +- tools/msbuild/install.bat | 41 +++++++++------ tools/msbuild/uninstall.bat | 50 ++++++++++-------- 4 files changed, 97 insertions(+), 66 deletions(-) (limited to 'tools/msbuild') diff --git a/tools/msbuild/CMakeLists.txt b/tools/msbuild/CMakeLists.txt index 08b8aee978..f8c2512676 100644 --- a/tools/msbuild/CMakeLists.txt +++ b/tools/msbuild/CMakeLists.txt @@ -1,41 +1,55 @@ if (WIN32) - set(prop_file_in "Microsoft.Cpp.Win32.llvm.props.in") - set(prop_file_v100 "Microsoft.Cpp.Win32.LLVM-vs2010.props") - set(prop_file_v110 "Microsoft.Cpp.Win32.LLVM-vs2012.props") - set(prop_file_v110_xp "Microsoft.Cpp.Win32.LLVM-vs2012_xp.props") - set(prop_file_v120 "toolset-vs2013.props") - set(prop_file_v120_xp "toolset-vs2013_xp.props") - # CPack will install a registry key in this format that we wish to reference. set(REG_KEY "${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}") - set(VS_VERSION "v100") - set(MSC_VERSION "1600") - configure_file(${prop_file_in} ${prop_file_v100}) - set(VS_VERSION "v110") - set(MSC_VERSION "1700") - configure_file(${prop_file_in} ${prop_file_v110}) - set(VS_VERSION "v110_xp") - configure_file(${prop_file_in} ${prop_file_v110_xp}) - set(VS_VERSION "v120") - set(MSC_VERSION "1800") - configure_file(${prop_file_in} ${prop_file_v120}) - set(VS_VERSION "v120_xp") - configure_file(${prop_file_in} ${prop_file_v120_xp}) + foreach (platform "Win32" "x64") + set(prop_file_in "Microsoft.Cpp.Win32.llvm.props.in") + set(prop_file_v100 "Microsoft.Cpp.${platform}.LLVM-vs2010.props") + set(prop_file_v110 "Microsoft.Cpp.${platform}.LLVM-vs2012.props") + set(prop_file_v110_xp "Microsoft.Cpp.${platform}.LLVM-vs2012_xp.props") + set(prop_file_v120 "toolset-vs2013.props") + set(prop_file_v120_xp "toolset-vs2013_xp.props") + + if (platform STREQUAL "Win32") + set(mflag "m32") + else() + set(mflag "m64") + endif() + set(VS_VERSION "v100") + set(MSC_VERSION "1600") + configure_file(${prop_file_in} ${platform}/${prop_file_v100}) + set(VS_VERSION "v110") + set(MSC_VERSION "1700") + configure_file(${prop_file_in} ${platform}/${prop_file_v110}) + set(VS_VERSION "v110_xp") + configure_file(${prop_file_in} ${platform}/${prop_file_v110_xp}) + set(VS_VERSION "v120") + set(MSC_VERSION "1800") + configure_file(${prop_file_in} ${platform}/${prop_file_v120}) + set(VS_VERSION "v120_xp") + configure_file(${prop_file_in} ${platform}/${prop_file_v120_xp}) + set(VS_VERSION) + set(MSC_VERSION) + set(mflag) + + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v100}" DESTINATION tools/msbuild/${platform}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v110}" DESTINATION tools/msbuild/${platform}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v110_xp}" DESTINATION tools/msbuild/${platform}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v120}" DESTINATION tools/msbuild/${platform}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v120_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") + install(FILES "Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets" DESTINATION "tools/msbuild/${platform}" RENAME "Microsoft.Cpp.${platform}.LLVM-vs2012_xp.targets") + install(FILES "toolset-vs2013.targets" DESTINATION "tools/msbuild/${platform}") + install(FILES "toolset-vs2013_xp.targets" DESTINATION "tools/msbuild/${platform}") + endforeach() set(REG_KEY) - set(VS_VERSION) - set(MSC_VERSION) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v100}" DESTINATION tools/msbuild) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v110}" DESTINATION tools/msbuild) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v110_xp}" DESTINATION tools/msbuild) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v120}" DESTINATION tools/msbuild) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v120_xp}" DESTINATION tools/msbuild) install(DIRECTORY . DESTINATION tools/msbuild FILES_MATCHING - PATTERN "*.targets" PATTERN "*.bat" PATTERN ".svn" EXCLUDE ) diff --git a/tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in b/tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in index a6ef4eafc5..78cd8e2343 100644 --- a/tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in +++ b/tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in @@ -12,7 +12,7 @@ - -fmsc-version=@MSC_VERSION@ %(AdditionalOptions) + -@mflag@ -fmsc-version=@MSC_VERSION@ %(AdditionalOptions) diff --git a/tools/msbuild/install.bat b/tools/msbuild/install.bat index c4c61ace8e..3b19fe76d8 100644 --- a/tools/msbuild/install.bat +++ b/tools/msbuild/install.bat @@ -6,24 +6,31 @@ set SUCCESS=0 REM Change to the directory of this batch file. cd /d %~dp0 +set PLATFORM=None +:START +IF %PLATFORM% == x64 GOTO END +IF %PLATFORM% == Win32 SET PLATFORM=x64 +IF %PLATFORM% == None SET PLATFORM=Win32 + REM Search for the MSBuild toolsets directory. -SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D% GOTO FOUND_V100 -SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D% GOTO FOUND_V100 :TRY_V110 -SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D% GOTO FOUND_V110 -SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D% GOTO FOUND_V110 :TRY_V120 -SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D% GOTO FOUND_V120 -SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D% GOTO FOUND_V120 +:END IF %SUCCESS% == 1 goto DONE echo Failed to find MSBuild toolsets directory. goto FAILED @@ -32,9 +39,9 @@ goto FAILED :FOUND_V100 IF NOT EXIST %D%\LLVM-vs2010 mkdir %D%\LLVM-vs2010 IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy Microsoft.Cpp.Win32.LLVM-vs2010.props %D%\LLVM-vs2010 +copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.props %D%\LLVM-vs2010 IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy Microsoft.Cpp.Win32.LLVM-vs2010.targets %D%\LLVM-vs2010 +copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.targets %D%\LLVM-vs2010 IF NOT %ERRORLEVEL% == 0 GOTO FAILED set SUCCESS=1 GOTO TRY_V110 @@ -42,15 +49,15 @@ GOTO TRY_V110 :FOUND_V110 IF NOT EXIST %D%\LLVM-vs2012 mkdir %D%\LLVM-vs2012 IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy Microsoft.Cpp.Win32.LLVM-vs2012.props %D%\LLVM-vs2012 +copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.props %D%\LLVM-vs2012 IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy Microsoft.Cpp.Win32.LLVM-vs2012.targets %D%\LLVM-vs2012 +copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.targets %D%\LLVM-vs2012 IF NOT %ERRORLEVEL% == 0 GOTO FAILED IF NOT EXIST %D%\LLVM-vs2012_xp mkdir %D%\LLVM-vs2012_xp IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy Microsoft.Cpp.Win32.LLVM-vs2012_xp.props %D%\LLVM-vs2012_xp +copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.props %D%\LLVM-vs2012_xp IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets %D%\LLVM-vs2012_xp +copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.targets %D%\LLVM-vs2012_xp IF NOT %ERRORLEVEL% == 0 GOTO FAILED set SUCCESS=1 GOTO TRY_V120 @@ -58,16 +65,18 @@ GOTO TRY_V120 :FOUND_V120 IF NOT EXIST %D%\LLVM-vs2013 mkdir %D%\LLVM-vs2013 IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy toolset-vs2013.props %D%\LLVM-vs2013\toolset.props +copy %PLATFORM%\toolset-vs2013.props %D%\LLVM-vs2013\toolset.props IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy toolset-vs2013.targets %D%\LLVM-vs2013\toolset.targets +copy %PLATFORM%\toolset-vs2013.targets %D%\LLVM-vs2013\toolset.targets IF NOT %ERRORLEVEL% == 0 GOTO FAILED IF NOT EXIST %D%\LLVM-vs2013_xp mkdir %D%\LLVM-vs2013_xp IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy toolset-vs2013_xp.props %D%\LLVM-vs2013_xp\toolset.props +copy %PLATFORM%\toolset-vs2013_xp.props %D%\LLVM-vs2013_xp\toolset.props IF NOT %ERRORLEVEL% == 0 GOTO FAILED -copy toolset-vs2013_xp.targets %D%\LLVM-vs2013_xp\toolset.targets +copy %PLATFORM%\toolset-vs2013_xp.targets %D%\LLVM-vs2013_xp\toolset.targets IF NOT %ERRORLEVEL% == 0 GOTO FAILED +GOTO START + :DONE echo Done! diff --git a/tools/msbuild/uninstall.bat b/tools/msbuild/uninstall.bat index 7e94f87544..b0bc943daf 100644 --- a/tools/msbuild/uninstall.bat +++ b/tools/msbuild/uninstall.bat @@ -5,41 +5,45 @@ echo Uninstalling MSVC integration... REM CD to the directory of this batch file. cd /d %~dp0 -SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" -IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.props -IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.targets -IF EXIST %D%\LLVM-vs2010 rmdir %D%\LLVM-vs2010 +set PLATFORM=None +:START +IF %PLATFORM% == x64 GOTO END +IF %PLATFORM% == Win32 SET PLATFORM=x64 +IF %PLATFORM% == None SET PLATFORM=Win32 + -SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" -IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.props -IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.targets +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets" +IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.props +IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.targets +IF EXIST %D%\LLVM-vs2010 rmdir %D%\LLVM-vs2010 +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets" +IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.props +IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.targets IF EXIST %D%\LLVM-vs2010 rmdir %D%\LLVM-vs2010 -SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets" -IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.props -IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.targets +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets" +IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.props +IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.targets IF EXIST %D%\LLVM-vs2012 rmdir %D%\LLVM-vs2012 -IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.props -IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets +IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.props +IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.targets IF EXIST %D%\LLVM-vs2012_xp rmdir %D%\LLVM-vs2012_xp - -SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets" -IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.props -IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.targets +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets" +IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.props +IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.targets IF EXIST %D%\LLVM-vs2012 rmdir %D%\LLVM-vs2012 -IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.props -IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets +IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.props +IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.targets IF EXIST %D%\LLVM-vs2012_xp rmdir %D%\LLVM-vs2012_xp -SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.props IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.targets IF EXIST %D%\LLVM-vs2013 rmdir %D%\LLVM-vs2013 IF EXIST %D%\LLVM-vs2013_xp del %D%\LLVM-vs2013_xp\toolset.props IF EXIST %D%\LLVM-vs2013_xp del %D%\LLVM-vs2013_xp\toolset.targets IF EXIST %D%\LLVM-vs2013_xp rmdir %D%\LLVM-vs2013_xp - -SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets" +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets" IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.props IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.targets IF EXIST %D%\LLVM-vs2013 rmdir %D%\LLVM-vs2013 @@ -47,4 +51,8 @@ IF EXIST %D%\LLVM-vs2013_xp del %D%\LLVM-vs2013_xp\toolset.props IF EXIST %D%\LLVM-vs2013_xp del %D%\LLVM-vs2013_xp\toolset.targets IF EXIST %D%\LLVM-vs2013_xp rmdir %D%\LLVM-vs2013_xp + +GOTO START + +:END echo Done! -- cgit v1.2.3