CPack/NSIS: Add option for custom Uninstall filename

Fixes: #10728
This commit is contained in:
Johnny Jazeix
2019-10-25 12:08:58 +02:00
committed by Brad King
parent 44b5f037e6
commit c97abc9688
4 changed files with 17 additions and 4 deletions
+5
View File
@@ -128,3 +128,8 @@ on Windows Nullsoft Scriptable Install System.
set(CPACK_NSIS_MENU_LINKS set(CPACK_NSIS_MENU_LINKS
"doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html" "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html"
"CMake Help" "https://cmake.org" "CMake Web Site") "CMake Help" "https://cmake.org" "CMake Web Site")
.. variable:: CPACK_NSIS_UNINSTALL_NAME
Specify the name of the program to uninstall the version.
Default is ``Uninstall``.
@@ -0,0 +1,6 @@
cpack-nsis-uninstaller-name
---------------------------
* The :cpack_gen:`CPack NSIS Generator` now supports
:variable:`CPACK_NSIS_UNINSTALL_NAME`.
This can be used to specify the name of the Uninstall program.
+2
View File
@@ -688,6 +688,8 @@ endif()
# value of CPACK_NSIS_PACKAGE_NAME instead # value of CPACK_NSIS_PACKAGE_NAME instead
# of CPACK_PACKAGE_INSTALL_DIRECTORY # of CPACK_PACKAGE_INSTALL_DIRECTORY
_cpack_set_default(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}") _cpack_set_default(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
# Specify the name of the Uninstall file in NSIS
_cpack_set_default(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
if(CPACK_NSIS_DISPLAY_NAME_SET) if(CPACK_NSIS_DISPLAY_NAME_SET)
_cpack_set_default(CPACK_NSIS_PACKAGE_NAME "${CPACK_NSIS_DISPLAY_NAME}") _cpack_set_default(CPACK_NSIS_PACKAGE_NAME "${CPACK_NSIS_DISPLAY_NAME}")
+4 -4
View File
@@ -642,7 +642,7 @@ Section "-Core installation"
WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
;Create uninstaller ;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe" WriteUninstaller "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
Push "DisplayName" Push "DisplayName"
Push "@CPACK_NSIS_DISPLAY_NAME@" Push "@CPACK_NSIS_DISPLAY_NAME@"
Call ConditionalAddToRegisty Call ConditionalAddToRegisty
@@ -653,7 +653,7 @@ Section "-Core installation"
Push "@CPACK_PACKAGE_VENDOR@" Push "@CPACK_PACKAGE_VENDOR@"
Call ConditionalAddToRegisty Call ConditionalAddToRegisty
Push "UninstallString" Push "UninstallString"
Push "$INSTDIR\Uninstall.exe" Push "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
Call ConditionalAddToRegisty Call ConditionalAddToRegisty
Push "NoRepair" Push "NoRepair"
Push "1" Push "1"
@@ -690,7 +690,7 @@ Section "-Core installation"
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
@CPACK_NSIS_CREATE_ICONS@ @CPACK_NSIS_CREATE_ICONS@
@CPACK_NSIS_CREATE_ICONS_EXTRA@ @CPACK_NSIS_CREATE_ICONS_EXTRA@
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
;Read a value from an InstallOptions INI file ;Read a value from an InstallOptions INI file
!insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
@@ -829,7 +829,7 @@ Section "Uninstall"
!endif !endif
;Remove the uninstaller itself. ;Remove the uninstaller itself.
Delete "$INSTDIR\Uninstall.exe" Delete "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
;Remove the installation directory if it is empty. ;Remove the installation directory if it is empty.