VS Integration: install toolsets for x64 too (PR18738)
authorHans Wennborg <hans@hanshq.net>
Wed, 12 Feb 2014 23:26:29 +0000 (23:26 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 12 Feb 2014 23:26:29 +0000 (23:26 +0000)
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
tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in
tools/msbuild/install.bat
tools/msbuild/uninstall.bat

index 08b8aee9788b9e3c6a2136c8fb54bee05233d523..f8c25126769f51bf86e805b73f6d5dcad71a5a42 100644 (file)
@@ -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
     )
index a6ef4eafc5831809f3095431fd6667fc0674e0a4..78cd8e234342686535e7024b8e0aaf839d7051c9 100644 (file)
@@ -12,7 +12,7 @@
   <ItemDefinitionGroup>\r
     <ClCompile>\r
       <!-- Set the value of _MSC_VER to claim for compatibility -->\r
-      <AdditionalOptions>-fmsc-version=@MSC_VERSION@ %(AdditionalOptions)</AdditionalOptions>\r
+      <AdditionalOptions>-@mflag@ -fmsc-version=@MSC_VERSION@ %(AdditionalOptions)</AdditionalOptions>\r
     </ClCompile>\r
   </ItemDefinitionGroup>\r
 </Project>\r
index c4c61ace8e04736a14e58a2d2f88bc19426cdf95..3b19fe76d81ed7f6101a271d892abbc0fc1c9184 100644 (file)
@@ -6,24 +6,31 @@ set SUCCESS=0
 REM Change to the directory of this batch file.\r
 cd /d %~dp0\r
 \r
+set PLATFORM=None\r
+:START\r
+IF %PLATFORM% == x64 GOTO END\r
+IF %PLATFORM% == Win32 SET PLATFORM=x64\r
+IF %PLATFORM% == None SET PLATFORM=Win32\r
+\r
 REM Search for the MSBuild toolsets directory.\r
-SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D% GOTO FOUND_V100\r
-SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D% GOTO FOUND_V100\r
 \r
 :TRY_V110\r
-SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D% GOTO FOUND_V110\r
-SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D% GOTO FOUND_V110\r
 \r
 :TRY_V120\r
-SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D% GOTO FOUND_V120\r
-SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D% GOTO FOUND_V120\r
 \r
+:END\r
 IF %SUCCESS% == 1 goto DONE\r
 echo Failed to find MSBuild toolsets directory.\r
 goto FAILED\r
@@ -32,9 +39,9 @@ goto FAILED
 :FOUND_V100\r
 IF NOT EXIST %D%\LLVM-vs2010 mkdir %D%\LLVM-vs2010\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy Microsoft.Cpp.Win32.LLVM-vs2010.props %D%\LLVM-vs2010\r
+copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.props %D%\LLVM-vs2010\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy Microsoft.Cpp.Win32.LLVM-vs2010.targets %D%\LLVM-vs2010\r
+copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.targets %D%\LLVM-vs2010\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
 set SUCCESS=1\r
 GOTO TRY_V110\r
@@ -42,15 +49,15 @@ GOTO TRY_V110
 :FOUND_V110\r
 IF NOT EXIST %D%\LLVM-vs2012 mkdir %D%\LLVM-vs2012\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy Microsoft.Cpp.Win32.LLVM-vs2012.props %D%\LLVM-vs2012\r
+copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.props %D%\LLVM-vs2012\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy Microsoft.Cpp.Win32.LLVM-vs2012.targets %D%\LLVM-vs2012\r
+copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.targets %D%\LLVM-vs2012\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
 IF NOT EXIST %D%\LLVM-vs2012_xp mkdir %D%\LLVM-vs2012_xp\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy Microsoft.Cpp.Win32.LLVM-vs2012_xp.props %D%\LLVM-vs2012_xp\r
+copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.props %D%\LLVM-vs2012_xp\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets %D%\LLVM-vs2012_xp\r
+copy %PLATFORM%\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.targets %D%\LLVM-vs2012_xp\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
 set SUCCESS=1\r
 GOTO TRY_V120\r
@@ -58,16 +65,18 @@ GOTO TRY_V120
 :FOUND_V120\r
 IF NOT EXIST %D%\LLVM-vs2013 mkdir %D%\LLVM-vs2013\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy toolset-vs2013.props %D%\LLVM-vs2013\toolset.props\r
+copy %PLATFORM%\toolset-vs2013.props %D%\LLVM-vs2013\toolset.props\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy toolset-vs2013.targets %D%\LLVM-vs2013\toolset.targets\r
+copy %PLATFORM%\toolset-vs2013.targets %D%\LLVM-vs2013\toolset.targets\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
 IF NOT EXIST %D%\LLVM-vs2013_xp mkdir %D%\LLVM-vs2013_xp\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy toolset-vs2013_xp.props %D%\LLVM-vs2013_xp\toolset.props\r
+copy %PLATFORM%\toolset-vs2013_xp.props %D%\LLVM-vs2013_xp\toolset.props\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
-copy toolset-vs2013_xp.targets %D%\LLVM-vs2013_xp\toolset.targets\r
+copy %PLATFORM%\toolset-vs2013_xp.targets %D%\LLVM-vs2013_xp\toolset.targets\r
 IF NOT %ERRORLEVEL% == 0 GOTO FAILED\r
+GOTO START\r
+\r
 \r
 :DONE\r
 echo Done!\r
index 7e94f87544996a5868411a2e58945457d231c8a7..b0bc943daf1ffb32cdd921ca0c26095ee98b6bbc 100644 (file)
@@ -5,41 +5,45 @@ echo Uninstalling MSVC integration...
 REM CD to the directory of this batch file.\r
 cd /d %~dp0\r
 \r
-SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets"\r
-IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.props\r
-IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.targets\r
-IF EXIST %D%\LLVM-vs2010 rmdir %D%\LLVM-vs2010\r
+set PLATFORM=None\r
+:START\r
+IF %PLATFORM% == x64 GOTO END\r
+IF %PLATFORM% == Win32 SET PLATFORM=x64\r
+IF %PLATFORM% == None SET PLATFORM=Win32\r
+\r
 \r
-SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets"\r
-IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.props\r
-IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.Win32.LLVM-vs2010.targets\r
+SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets"\r
+IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.props\r
+IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.targets\r
+IF EXIST %D%\LLVM-vs2010 rmdir %D%\LLVM-vs2010\r
+SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets"\r
+IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.props\r
+IF EXIST %D%\LLVM-vs2010 del %D%\LLVM-vs2010\Microsoft.Cpp.%PLATFORM%.LLVM-vs2010.targets\r
 IF EXIST %D%\LLVM-vs2010 rmdir %D%\LLVM-vs2010\r
 \r
-SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets"\r
-IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.props\r
-IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.targets\r
+SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets"\r
+IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.props\r
+IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.targets\r
 IF EXIST %D%\LLVM-vs2012 rmdir %D%\LLVM-vs2012\r
-IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.props\r
-IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets\r
+IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.props\r
+IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.targets\r
 IF EXIST %D%\LLVM-vs2012_xp rmdir %D%\LLVM-vs2012_xp\r
-\r
-SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Win32\PlatformToolsets"\r
-IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.props\r
-IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.Win32.LLVM-vs2012.targets\r
+SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\%PLATFORM%\PlatformToolsets"\r
+IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.props\r
+IF EXIST %D%\LLVM-vs2012 del %D%\LLVM-vs2012\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012.targets\r
 IF EXIST %D%\LLVM-vs2012 rmdir %D%\LLVM-vs2012\r
-IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.props\r
-IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets\r
+IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.props\r
+IF EXIST %D%\LLVM-vs2012_xp del %D%\LLVM-vs2012_xp\Microsoft.Cpp.%PLATFORM%.LLVM-vs2012_xp.targets\r
 IF EXIST %D%\LLVM-vs2012_xp rmdir %D%\LLVM-vs2012_xp\r
 \r
-SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.props\r
 IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.targets\r
 IF EXIST %D%\LLVM-vs2013 rmdir %D%\LLVM-vs2013\r
 IF EXIST %D%\LLVM-vs2013_xp del %D%\LLVM-vs2013_xp\toolset.props\r
 IF EXIST %D%\LLVM-vs2013_xp del %D%\LLVM-vs2013_xp\toolset.targets\r
 IF EXIST %D%\LLVM-vs2013_xp rmdir %D%\LLVM-vs2013_xp\r
-\r
-SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets"\r
+SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\%PLATFORM%\PlatformToolsets"\r
 IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.props\r
 IF EXIST %D%\LLVM-vs2013 del %D%\LLVM-vs2013\toolset.targets\r
 IF EXIST %D%\LLVM-vs2013 rmdir %D%\LLVM-vs2013\r
@@ -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\r
 IF EXIST %D%\LLVM-vs2013_xp rmdir %D%\LLVM-vs2013_xp\r
 \r
+\r
+GOTO START\r
+\r
+:END\r
 echo Done!\r