This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via ff049a3e8ed0ad4dbc79bc647b9a35f7fa914eea (commit) via e6d2bcfde2c0cd254ce1461e368ff79eb0010473 (commit) from cbd8aca5c680925359fb953287fbace472a4e3cb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ff049a3e8ed0ad4dbc79bc647b9a35f7fa914eea commit ff049a3e8ed0ad4dbc79bc647b9a35f7fa914eea Merge: cbd8aca e6d2bcf Author: Clinton Stimpson <clin...@elemtech.com> AuthorDate: Fri Jul 29 14:24:02 2011 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Fri Jul 29 14:24:02 2011 -0400 Merge topic 'cpack-nsis-multi-installs' into next e6d2bcf CPack/NSIS: Fix reinstall and multiple install issues when using components. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e6d2bcfde2c0cd254ce1461e368ff79eb0010473 commit e6d2bcfde2c0cd254ce1461e368ff79eb0010473 Author: Clinton Stimpson <clin...@elemtech.com> AuthorDate: Fri Jul 29 12:23:22 2011 -0600 Commit: Clinton Stimpson <clin...@elemtech.com> CommitDate: Fri Jul 29 12:23:22 2011 -0600 CPack/NSIS: Fix reinstall and multiple install issues when using components. Fix NSIS template to more thoroughly use CPACK_PACKAGE_INSTALL_REGISTRY_KEY. This allows different versions of software to have a separate sections in the registry to keep track of things (installed components, and uninstall stuff). Change default of CPACK_PACKAGE_INSTALL_REGISTRY_KEY to follow the value of CPACK_PACKAGE_INSTALL_DIRECTORY so if an installation overwrites another installation, the proper registry entries are more likely to be overwritten. Fix CPack/NSIS generator to not insert code in the NSIS template to skip installation of already installed components. This enables a repair like behavior and also enables installing patch releases on top of an older installation. diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake index bf52b25..d82de93 100644 --- a/Modules/CPack.cmake +++ b/Modules/CPack.cmake @@ -322,7 +322,7 @@ cpack_set_if_not_set(CPACK_PACKAGE_FILE_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}") + "${CPACK_PACKAGE_INSTALL_DIRECTORY}") cpack_set_if_not_set(CPACK_PACKAGE_DEFAULT_LOCATION "/") cpack_set_if_not_set(CPACK_PACKAGE_RELOCATABLE "true") diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in index df9d2d3..6259a5b 100644 --- a/Modules/NSIS.template.in +++ b/Modules/NSIS.template.in @@ -74,7 +74,7 @@ Var AR_RegFlags ClearErrors ;Reading component status from registry - ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@\Components\${SecName}" "Installed" + ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed" IfErrors "default_${SecName}" ;Status will stay default if registry value not found ;(component was never installed) @@ -107,13 +107,13 @@ Var AR_RegFlags ;Section is not selected: ;Calling Section uninstall macro and writing zero installed flag !insertmacro "Remove_${${SecName}}" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@\Components\${SecName}" \ + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \ "Installed" 0 Goto "exit_${SecName}" "leave_${SecName}:" ;Section is selected: - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@\Components\${SecName}" \ + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \ "Installed" 1 "exit_${SecName}:" @@ -493,7 +493,7 @@ Function ConditionalAddToRegisty Pop $0 Pop $1 StrCmp "$0" "" ConditionalAddToRegisty_EmptyString - WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" \ + WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \ "$1" "$0" ;MessageBox MB_OK "Set Registry: '$1' to '$0'" DetailPrint "Set install registry entry: '$1' to '$0'" @@ -804,17 +804,17 @@ FunctionEnd Section "Uninstall" ReadRegStr $START_MENU SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" "StartMenu" + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu" ;MessageBox MB_OK "Start menu is in: $START_MENU" ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" "DoNotAddToPath" + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DoNotAddToPath" ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" "AddToPathAllUsers" + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathAllUsers" ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" "AddToPathCurrentUser" + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathCurrentUser" ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS" ReadRegStr $INSTALL_DESKTOP SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" "InstallToDesktop" + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "InstallToDesktop" ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP " @CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@ @@ -831,7 +831,7 @@ Section "Uninstall" ;Remove the uninstaller itself. Delete "$INSTDIR\Uninstall.exe" - DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" + DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" ;Remove the installation directory if it is empty. RMDir "$INSTDIR" diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index e5fe575..7bb46a7 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -672,9 +672,6 @@ CreateComponentDescription(cmCPackComponent *component, } componentCode += " SetOutPath \"$INSTDIR\"\n"; - componentCode += " IntCmp $" + component->Name - + "_was_installed ${SF_SELECTED} noinstall_" + component->Name + "\n"; - // Create the actual installation commands if (component->IsDownloaded) { @@ -824,7 +821,6 @@ CreateComponentDescription(cmCPackComponent *component, componentCode += " File /r \"${INST_DIR}\\" + component->Name + "\\*.*\"\n"; } - componentCode += " noinstall_" + component->Name + ":\n"; componentCode += "SectionEnd\n"; // Macro used to remove the component ----------------------------------------------------------------------- Summary of changes: Modules/CPack.cmake | 2 +- Modules/NSIS.template.in | 20 ++++++++++---------- Source/CPack/cmCPackNSISGenerator.cxx | 4 ---- 3 files changed, 11 insertions(+), 15 deletions(-) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits