summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2006-02-23 14:38:40 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2006-02-23 14:38:40 (GMT)
commit1d96f839d7e67548e51b8d3729cf74ea167e4e08 (patch)
tree52c5d694af86fb5f46576a23100d991c05c23b67 /Modules
parent69ca764212be0b46bfdb0b7f873a0107d3f26bd6 (diff)
downloadCMake-1d96f839d7e67548e51b8d3729cf74ea167e4e08.zip
CMake-1d96f839d7e67548e51b8d3729cf74ea167e4e08.tar.gz
CMake-1d96f839d7e67548e51b8d3729cf74ea167e4e08.tar.bz2
ENH: Several NSIS features
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CPack.cmake36
-rw-r--r--Modules/NSIS.template.in18
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