From: Hans Wennborg Date: Wed, 28 Aug 2013 01:19:26 +0000 (+0000) Subject: cmake: Add msbuild integration to the install X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=110b5209d92f224050f2755539bda8f1d801f94b cmake: Add msbuild integration to the install This adds the msbuild integration files to the install, provides batch scripts for (un)installing it in a convenient way, and hooks up the nsis installer to run those scripts. Differential Revision: http://llvm-reviews.chandlerc.com/D1537 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189434 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d38fe5d8a2..56adcf335d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -512,6 +512,11 @@ set(CPACK_RESOURCE_FILE_LICENSE "${LLVM_MAIN_SRC_DIR}/LICENSE.TXT") if(WIN32 AND NOT UNIX) set(CPACK_PACKAGE_ICON "${LLVM_MAIN_SRC_DIR}\\\\cmake\\\\nsis_logo.bmp") set(CPACK_NSIS_MODIFY_PATH "ON") + set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON") + set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS + "ExecWait '$INSTDIR/tools/msbuild/install.bat'") + set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS + "ExecWait '$INSTDIR/tools/msbuild/uninstall.bat'") endif() include(CPack) diff --git a/tools/msbuild/CMakeLists.txt b/tools/msbuild/CMakeLists.txt new file mode 100644 index 00000000000..a1dca8aca8d --- /dev/null +++ b/tools/msbuild/CMakeLists.txt @@ -0,0 +1,10 @@ +if (WIN32) + install(DIRECTORY . + DESTINATION tools/msbuild + FILES_MATCHING + PATTERN "*.targets" + PATTERN "*.props" + PATTERN "*.bat" + PATTERN ".svn" EXCLUDE + ) +endif() diff --git a/tools/msbuild/install.bat b/tools/msbuild/install.bat new file mode 100644 index 00000000000..db11c863538 --- /dev/null +++ b/tools/msbuild/install.bat @@ -0,0 +1,34 @@ +@echo off + +echo Installing MSVC integration... + +REM Change to the directory of this batch file. +cd /d %~dp0 + +REM Search for the MSBuild toolsets directory. +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" +IF EXIST %D% GOTO FOUND_MSBUILD +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" +IF EXIST %D% GOTO FOUND_MSBUILD + +echo Failed to find MSBuild toolsets directory. +goto FAILED + +:FOUND_MSBUILD +IF NOT EXIST %D%\llvm mkdir %D%\llvm +IF NOT %ERRORLEVEL% == 0 GOTO FAILED + +copy Microsoft.Cpp.Win32.llvm.props %D%\llvm +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +copy Microsoft.Cpp.Win32.llvm.targets %D%\llvm +IF NOT %ERRORLEVEL% == 0 GOTO FAILED + +echo Done! +goto END + +:FAILED +echo MSVC integration install failed. +pause +goto END + +:END diff --git a/tools/msbuild/uninstall.bat b/tools/msbuild/uninstall.bat new file mode 100644 index 00000000000..8bc304e0b82 --- /dev/null +++ b/tools/msbuild/uninstall.bat @@ -0,0 +1,34 @@ +@echo off + +echo Uninstalling MSVC integration... + +REM CD to the directory of this batch file. +cd /d %~dp0 + +REM Search for the MSBuild toolsets directory. +SET D="%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" +IF EXIST %D% GOTO FOUND_MSBUILD +SET D="%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets" +IF EXIST %D% GOTO FOUND_MSBUILD + +echo Failed to find MSBuild toolsets directory. +goto FAILED + +:FOUND_MSBUILD + +del %D%\llvm\Microsoft.Cpp.Win32.llvm.props +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +del %D%\llvm\Microsoft.Cpp.Win32.llvm.targets +IF NOT %ERRORLEVEL% == 0 GOTO FAILED +rmdir %D%\llvm +IF NOT %ERRORLEVEL% == 0 GOTO FAILED + +echo Done! +goto END + +:FAILED +echo MSVC integration uninstall failed. +pause +goto END + +:END