1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00

Sync CPack NSIS with latest CMake

This commit is contained in:
Mathieu Schroeter 2023-06-25 18:14:38 +02:00
parent 7ff45eacde
commit da13271d5e
2 changed files with 60 additions and 41 deletions

View File

@ -30,6 +30,7 @@
;-------------------------------- ;--------------------------------
;General ;General
!ifdef INNER !ifdef INNER
Name "@CPACK_NSIS_PACKAGE_NAME@"
OutFile "${TEMPINSTALLER}.exe" OutFile "${TEMPINSTALLER}.exe"
SetCompress off ; for speed SetCompress off ; for speed
!else !else
@ -70,12 +71,14 @@
RequestExecutionLevel admin RequestExecutionLevel admin
@CPACK_NSIS_DEFINES@ @CPACK_NSIS_DEFINES@
@CPACK_NSIS_MANIFEST_DPI_AWARE_CODE@
@CPACK_NSIS_BRANDING_TEXT_CODE@
!include Sections.nsh !include Sections.nsh
;--- Component support macros: --- ;--- Component support macros: ---
; The code for the add/remove functionality is from: ; The code for the add/remove functionality is from:
; http://nsis.sourceforge.net/Add/Remove_Functionality ; https://nsis.sourceforge.io/Add/Remove_Functionality
; It has been modified slightly and extended to provide ; It has been modified slightly and extended to provide
; inter-component dependencies. ; inter-component dependencies.
Var AR_SecFlags Var AR_SecFlags
@ -410,7 +413,7 @@ Function un.RemoveFromPath
FunctionEnd FunctionEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uninstall sutff ; Uninstall stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
########################################### ###########################################
@ -514,15 +517,15 @@ Done:
Exch $R1 Exch $R1
FunctionEnd FunctionEnd
Function ConditionalAddToRegisty Function ConditionalAddToRegistry
Pop $0 Pop $0
Pop $1 Pop $1
StrCmp "$0" "" ConditionalAddToRegisty_EmptyString StrCmp "$0" "" ConditionalAddToRegistry_EmptyString
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \
"$1" "$0" "$1" "$0"
;MessageBox MB_OK "Set Registry: '$1' to '$0'" ;MessageBox MB_OK "Set Registry: '$1' to '$0'"
DetailPrint "Set install registry entry: '$1' to '$0'" DetailPrint "Set install registry entry: '$1' to '$0'"
ConditionalAddToRegisty_EmptyString: ConditionalAddToRegistry_EmptyString:
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
@ -552,28 +555,21 @@ Function DownloadFile
FunctionEnd FunctionEnd
!endif !endif
;--------------------------------
; Installation types
@CPACK_NSIS_INSTALLATION_TYPES@
;--------------------------------
; Component sections
@CPACK_NSIS_COMPONENT_SECTIONS@
;-------------------------------- ;--------------------------------
; Define some macro setting for the gui ; Define some macro setting for the gui
@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@ @CPACK_NSIS_INSTALLER_MUI_ICON_CODE@
@CPACK_NSIS_INSTALLER_ICON_CODE@ @CPACK_NSIS_INSTALLER_ICON_CODE@
@CPACK_NSIS_INSTALLER_MUI_WELCOMEFINISH_CODE@ @CPACK_NSIS_INSTALLER_MUI_WELCOMEFINISH_CODE@
@CPACK_NSIS_INSTALLER_MUI_UNWELCOMEFINISH_CODE@ @CPACK_NSIS_INSTALLER_MUI_UNWELCOMEFINISH_CODE@
@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@ @CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@
;-------------------------------- ;--------------------------------
;Pages ;Pages
@CPACK_NSIS_INSTALLER_WELCOME_TITLE_CODE@
@CPACK_NSIS_INSTALLER_WELCOME_TITLE_3LINES_CODE@
!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@" @CPACK_NSIS_LICENSE_PAGE@
Page custom InstallOptionsPage Page custom InstallOptionsPage
!insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_DIRECTORY
@ -586,32 +582,38 @@ FunctionEnd
@CPACK_NSIS_PAGE_COMPONENTS@ @CPACK_NSIS_PAGE_COMPONENTS@
!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_INSTFILES
@CPACK_NSIS_INSTALLER_FINISH_TITLE_CODE@
@CPACK_NSIS_INSTALLER_FINISH_TITLE_3LINES_CODE@
!insertmacro MUI_PAGE_FINISH !insertmacro MUI_PAGE_FINISH
!ifdef INNER
!insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_INSTFILES
!endif
;-------------------------------- ;--------------------------------
;Languages ;Languages
!insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "English" ;first language is the default language
!insertmacro MUI_LANGUAGE "Afrikaans"
!insertmacro MUI_LANGUAGE "Albanian" !insertmacro MUI_LANGUAGE "Albanian"
!insertmacro MUI_LANGUAGE "Arabic" !insertmacro MUI_LANGUAGE "Arabic"
!insertmacro MUI_LANGUAGE "Asturian"
!insertmacro MUI_LANGUAGE "Basque" !insertmacro MUI_LANGUAGE "Basque"
!insertmacro MUI_LANGUAGE "Belarusian" !insertmacro MUI_LANGUAGE "Belarusian"
!insertmacro MUI_LANGUAGE "Bosnian" !insertmacro MUI_LANGUAGE "Bosnian"
!insertmacro MUI_LANGUAGE "Breton" !insertmacro MUI_LANGUAGE "Breton"
!insertmacro MUI_LANGUAGE "Bulgarian" !insertmacro MUI_LANGUAGE "Bulgarian"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Corsican"
!insertmacro MUI_LANGUAGE "Croatian" !insertmacro MUI_LANGUAGE "Croatian"
!insertmacro MUI_LANGUAGE "Czech" !insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Esperanto"
!insertmacro MUI_LANGUAGE "Estonian" !insertmacro MUI_LANGUAGE "Estonian"
!insertmacro MUI_LANGUAGE "Farsi" !insertmacro MUI_LANGUAGE "Farsi"
!insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "Finnish"
!insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Galician"
!insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Greek" !insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Hebrew" !insertmacro MUI_LANGUAGE "Hebrew"
@ -630,25 +632,31 @@ FunctionEnd
!insertmacro MUI_LANGUAGE "Malay" !insertmacro MUI_LANGUAGE "Malay"
!insertmacro MUI_LANGUAGE "Mongolian" !insertmacro MUI_LANGUAGE "Mongolian"
!insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "Norwegian"
!insertmacro MUI_LANGUAGE "NorwegianNynorsk"
!insertmacro MUI_LANGUAGE "Pashto"
!insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Romanian" !insertmacro MUI_LANGUAGE "Romanian"
!insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "ScotsGaelic"
!insertmacro MUI_LANGUAGE "Serbian" !insertmacro MUI_LANGUAGE "Serbian"
!insertmacro MUI_LANGUAGE "SerbianLatin" !insertmacro MUI_LANGUAGE "SerbianLatin"
!insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "Slovak" !insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Slovenian" !insertmacro MUI_LANGUAGE "Slovenian"
!insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "SpanishInternational"
!insertmacro MUI_LANGUAGE "Swedish" !insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Tatar"
!insertmacro MUI_LANGUAGE "Thai" !insertmacro MUI_LANGUAGE "Thai"
!insertmacro MUI_LANGUAGE "TradChinese" !insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Turkish" !insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Ukrainian" !insertmacro MUI_LANGUAGE "Ukrainian"
!insertmacro MUI_LANGUAGE "Uzbek"
!insertmacro MUI_LANGUAGE "Vietnamese"
!insertmacro MUI_LANGUAGE "Welsh" !insertmacro MUI_LANGUAGE "Welsh"
;-------------------------------- ;--------------------------------
;Reserve Files ;Reserve Files
@ -659,6 +667,17 @@ FunctionEnd
ReserveFile "NSIS.InstallOptions.ini" ReserveFile "NSIS.InstallOptions.ini"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; for UserInfo::GetName and UserInfo::GetAccountType
ReserveFile /plugin 'UserInfo.dll'
;--------------------------------
; Installation types
@CPACK_NSIS_INSTALLATION_TYPES@
;--------------------------------
; Component sections
@CPACK_NSIS_COMPONENT_SECTIONS@
@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
;-------------------------------- ;--------------------------------
;Installer Sections ;Installer Sections
@ -679,44 +698,44 @@ Section "-Core installation"
!endif !endif
Push "DisplayName" Push "DisplayName"
Push "@CPACK_NSIS_DISPLAY_NAME@" Push "@CPACK_NSIS_DISPLAY_NAME@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "DisplayVersion" Push "DisplayVersion"
Push "@CPACK_PACKAGE_VERSION@" Push "@CPACK_PACKAGE_VERSION@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "Publisher" Push "Publisher"
Push "@CPACK_PACKAGE_VENDOR@" Push "@CPACK_PACKAGE_VENDOR@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "UninstallString" Push "UninstallString"
Push "$INSTDIR\Uninstall.exe" Push "$INSTDIR\Uninstall.exe"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "NoRepair" Push "NoRepair"
Push "1" Push "1"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
!ifdef CPACK_NSIS_ADD_REMOVE !ifdef CPACK_NSIS_ADD_REMOVE
;Create add/remove functionality ;Create add/remove functionality
Push "ModifyPath" Push "ModifyPath"
Push "$INSTDIR\AddRemove.exe" Push "$INSTDIR\AddRemove.exe"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
!else !else
Push "NoModify" Push "NoModify"
Push "1" Push "1"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
!endif !endif
; Optional registration ; Optional registration
Push "DisplayIcon" Push "DisplayIcon"
Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@" Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "HelpLink" Push "HelpLink"
Push "@CPACK_NSIS_HELP_LINK@" Push "@CPACK_NSIS_HELP_LINK@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "URLInfoAbout" Push "URLInfoAbout"
Push "@CPACK_NSIS_URL_INFO_ABOUT@" Push "@CPACK_NSIS_URL_INFO_ABOUT@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "Contact" Push "Contact"
Push "@CPACK_NSIS_CONTACT@" Push "@CPACK_NSIS_CONTACT@"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
!insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State" !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
@ -734,19 +753,19 @@ Section "-Core installation"
; Write special uninstall registry entries ; Write special uninstall registry entries
Push "StartMenu" Push "StartMenu"
Push "$STARTMENU_FOLDER" Push "$STARTMENU_FOLDER"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "DoNotAddToPath" Push "DoNotAddToPath"
Push "$DO_NOT_ADD_TO_PATH" Push "$DO_NOT_ADD_TO_PATH"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "AddToPathAllUsers" Push "AddToPathAllUsers"
Push "$ADD_TO_PATH_ALL_USERS" Push "$ADD_TO_PATH_ALL_USERS"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "AddToPathCurrentUser" Push "AddToPathCurrentUser"
Push "$ADD_TO_PATH_CURRENT_USER" Push "$ADD_TO_PATH_CURRENT_USER"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
Push "InstallToDesktop" Push "InstallToDesktop"
Push "$INSTALL_DESKTOP" Push "$INSTALL_DESKTOP"
Call ConditionalAddToRegisty Call ConditionalAddToRegistry
!insertmacro MUI_STARTMENU_WRITE_END !insertmacro MUI_STARTMENU_WRITE_END
@ -882,7 +901,7 @@ Section "Uninstall"
@CPACK_NSIS_DELETE_ICONS@ @CPACK_NSIS_DELETE_ICONS@
@CPACK_NSIS_DELETE_ICONS_EXTRA@ @CPACK_NSIS_DELETE_ICONS_EXTRA@
;Delete empty start menu parent diretories ;Delete empty start menu parent directories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
startMenuDeleteLoop: startMenuDeleteLoop:
@ -895,13 +914,13 @@ Section "Uninstall"
StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
startMenuDeleteLoopDone: startMenuDeleteLoopDone:
; If the user changed the shortcut, then untinstall may not work. This should ; If the user changed the shortcut, then uninstall may not work. This should
; try to fix it. ; try to fix it.
StrCpy $MUI_TEMP "$START_MENU" StrCpy $MUI_TEMP "$START_MENU"
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS_EXTRA@ @CPACK_NSIS_DELETE_ICONS_EXTRA@
;Delete empty start menu parent diretories ;Delete empty start menu parent directories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
secondStartMenuDeleteLoop: secondStartMenuDeleteLoop:

View File

@ -2,7 +2,7 @@
CMAKE_VERSION=3.15 CMAKE_VERSION=3.15
mv /C/msys64/mingw64/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in /C/msys64/mingw64/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in.orig mv /C/msys64/mingw64/share/cmake/Modules/Internal/CPack/NSIS.template.in /C/msys64/mingw64/share/cmake/Modules/Internal/CPack/NSIS.template.in.orig
mv /C/msys64/mingw32/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in /C/msys64/mingw32/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in.orig mv /C/msys64/mingw32/share/cmake/Modules/Internal/CPack/NSIS.template.in /C/msys64/mingw32/share/cmake/Modules/Internal/CPack/NSIS.template.in.orig
cp $(dirname $0)/NSIS.template.in /C/msys64/mingw64/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in cp $(dirname $0)/NSIS.template.in /C/msys64/mingw64/share/cmake/Modules/Internal/CPack/NSIS.template.in
cp $(dirname $0)/NSIS.template.in /C/msys64/mingw32/share/cmake-$CMAKE_VERSION/Modules/NSIS.template.in cp $(dirname $0)/NSIS.template.in /C/msys64/mingw32/share/cmake/Modules/Internal/CPack/NSIS.template.in