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

llvm-svn: 189434
This commit is contained in:
Hans Wennborg 2013-08-28 01:19:26 +00:00
parent aae63a0ce6
commit d2cbe22b4a
4 changed files with 83 additions and 0 deletions

View File

@ -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)

View File

@ -0,0 +1,10 @@
if (WIN32)
install(DIRECTORY .
DESTINATION tools/msbuild
FILES_MATCHING
PATTERN "*.targets"
PATTERN "*.props"
PATTERN "*.bat"
PATTERN ".svn" EXCLUDE
)
endif()

View File

@ -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

View File

@ -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