diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-02-23 14:38:40 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-02-23 14:38:40 (GMT) |
commit | 1d96f839d7e67548e51b8d3729cf74ea167e4e08 (patch) | |
tree | 52c5d694af86fb5f46576a23100d991c05c23b67 /Modules | |
parent | 69ca764212be0b46bfdb0b7f873a0107d3f26bd6 (diff) | |
download | CMake-1d96f839d7e67548e51b8d3729cf74ea167e4e08.zip CMake-1d96f839d7e67548e51b8d3729cf74ea167e4e08.tar.gz CMake-1d96f839d7e67548e51b8d3729cf74ea167e4e08.tar.bz2 |
ENH: Several NSIS features
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CPack.cmake | 36 | ||||
-rw-r--r-- | Modules/NSIS.template.in | 18 |
2 files changed, 32 insertions, 22 deletions
diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake index e0295a2..2a80741 100644 --- a/Modules/CPack.cmake +++ b/Modules/CPack.cmake @@ -16,6 +16,8 @@ cpack_set_if_not_set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") cpack_set_if_not_set(CPACK_PACKAGE_VERSION_MAJOR "0") cpack_set_if_not_set(CPACK_PACKAGE_VERSION_MINOR "1") cpack_set_if_not_set(CPACK_PACKAGE_VERSION_PATCH "1") +cpack_set_if_not_set(CPACK_PACKAGE_VERSION + "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") cpack_set_if_not_set(CPACK_PACKAGE_VENDOR "Humanity") cpack_set_if_not_set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME} built using CMake") @@ -25,6 +27,10 @@ cpack_set_if_not_set(CPACK_PACKAGE_DESCRIPTION_FILE # <project>-<major>.<minor>.<patch>-<release>-<platform>.<pkgtype> cpack_set_if_not_set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${CMAKE_SYSTEM_NAME}") +cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_DIRECTORY + "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}") +cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY + "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}") IF(NOT EXISTS "${CPACK_PACKAGE_DESCRIPTION_FILE}") MESSAGE(SEND_ERROR "CPack package description file: \"${CPACK_PACKAGE_DESCRIPTION_FILE}\" could not be found.") @@ -36,7 +42,7 @@ IF(NOT CPACK_GENERATOR) IF(APPLE) SET(CPACK_GENERATOR "PackageMaker") ELSE(APPLE) - SET(CPACK_GENERATOR "TGZ") + SET(CPACK_GENERATOR "STGZ") ENDIF(APPLE) ELSE(UNIX) SET(CPACK_GENERATOR "NSIS") @@ -50,19 +56,21 @@ SET(CPACK_BINARY_DIR "${CMAKE_BINARY_DIR}") # Search for system runtime libraries based on the platform. This is # not complete because it is used only for the release process by the # developers. -IF(MSVC) - STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}") - FOREACH(lib - "${SYSTEMROOT}/system32/mfc71.dll" - "${SYSTEMROOT}/system32/msvcp71.dll" - "${SYSTEMROOT}/system32/msvcr71.dll" - ) - IF(EXISTS ${lib}) - SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS - ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib}) - ENDIF(EXISTS ${lib}) - ENDFOREACH(lib) -ENDIF(MSVC) +IF(NOT CPACK_DISABLE_EXTRA_MSVC_LIBRARIES) + IF(MSVC) + STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}") + FOREACH(lib + "${SYSTEMROOT}/system32/mfc71.dll" + "${SYSTEMROOT}/system32/msvcp71.dll" + "${SYSTEMROOT}/system32/msvcr71.dll" + ) + IF(EXISTS ${lib}) + SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS + ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib}) + ENDIF(EXISTS ${lib}) + ENDFOREACH(lib) + ENDIF(MSVC) +ENDIF(NOT CPACK_DISABLE_EXTRA_MSVC_LIBRARIES) # Include system runtime libraries in the installation if any are # specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS. diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in index 97ad662..e84a112 100644 --- a/Modules/NSIS.template.in +++ b/Modules/NSIS.template.in @@ -19,7 +19,7 @@ !include "MUI.nsh" ;Default installation folder - InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_NAME@ ${VERSION}" + InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@" ;-------------------------------- ; determine admin versus local install @@ -51,7 +51,7 @@ FunctionEnd ;General ;Name and file - Name "@CPACK_PACKAGE_NAME@ ${VERSION}" + Name "@CPACK_PACKAGE_INSTALL_DIRECTORY@" OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@" ;-------------------------------- @@ -312,7 +312,7 @@ FunctionEnd ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_NAME@ ${VERSION}" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER @@ -344,10 +344,8 @@ Section "Dummy Section" SecDummy SetOutPath "$INSTDIR" File /r "${INST_DIR}\*.*" - @CPACK_NSIS_EXTRA_COMMANDS@ - ;Store installation folder - WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_NAME@ ${VERSION}" "" $INSTDIR + WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" @@ -359,6 +357,8 @@ Section "Dummy Section" SecDummy @CPACK_NSIS_CREATE_ICONS@ @CPACK_NSIS_CREATE_EXTRA_ICONS@ CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + +@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ !insertmacro MUI_STARTMENU_WRITE_END @@ -395,6 +395,8 @@ FunctionEnd Section "Uninstall" +@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@ + ;Remove files we installed. ;Keep the list of directories here in sync with the File commands above. @CPACK_NSIS_DELETE_FILES@ @@ -407,7 +409,7 @@ Section "Uninstall" RMDir "$INSTDIR" ; Remove the registry entries. - DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_NAME@ ${VERSION}" + DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP @@ -428,7 +430,7 @@ Section "Uninstall" StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop startMenuDeleteLoopDone: - DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_NAME@ ${VERSION}" + DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" Push $INSTDIR\bin Call un.RemoveFromPath |