From fcf225f9c7f682f0e36761e871acb9714c7a1095 Mon Sep 17 00:00:00 2001 From: serega404 Date: Wed, 20 Jan 2021 18:09:59 +0300 Subject: [PATCH] Updated NSIS installer Added: - game icon - left side image - desktop shortcut - main menu shortcut - working directory in AppData --- .gitignore | 2 + buildPackages.sh | 4 + build_packages/NSIS/ProgressiaInstaller.nsi | 103 ++++++++++++++++---- build_packages/NSIS/left_side.bmp | Bin 0 -> 154542 bytes build_packages/NSIS/logo.ico | Bin 0 -> 191671 bytes 5 files changed, 88 insertions(+), 21 deletions(-) create mode 100644 build_packages/NSIS/left_side.bmp create mode 100644 build_packages/NSIS/logo.ico diff --git a/.gitignore b/.gitignore index fe884228..54b9b194 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,8 @@ build_packages/* !build_packages/NSIS build_packages/NSIS/* !build_packages/NSIS/ProgressiaInstaller.nsi +!build_packages/NSIS/logo.ico +!build_packages/NSIS/left_side.bmp # ... and except build_packages/DEB/template !build_packages/DEB diff --git a/buildPackages.sh b/buildPackages.sh index d1d4f5a3..a415b1f6 100755 --- a/buildPackages.sh +++ b/buildPackages.sh @@ -128,6 +128,7 @@ buildWindowsInstaller() { { cp -r 'build/libs/lib' 'build_packages/NSIS/lib' && cp 'build/libs/Progressia.jar' 'build_packages/NSIS/Progressia.jar' && + cp 'LICENSE' 'build_packages/NSIS/LICENSE.txt' && echo "------ NSIS ------" && makensis "$configurationFile" && echo "---- NSIS END ----" && @@ -144,6 +145,9 @@ buildWindowsInstaller() { if [ -e 'build_packages/NSIS/Progressia.jar' ]; then rm 'build_packages/NSIS/Progressia.jar' fi + if [ -e 'build_packages/NSIS/LICENSE.txt' ]; then + rm 'build_packages/NSIS/LICENSE.txt' + fi echo "Cleaned up" } || { echoerr "Could not clean up after building Windows installer" diff --git a/build_packages/NSIS/ProgressiaInstaller.nsi b/build_packages/NSIS/ProgressiaInstaller.nsi index 63dd4ff2..abf8d73d 100644 --- a/build_packages/NSIS/ProgressiaInstaller.nsi +++ b/build_packages/NSIS/ProgressiaInstaller.nsi @@ -10,16 +10,32 @@ ;-------------------------------- ;General + !define PROJECT_NAME "Progressia" + + ; MUI Settings / Icons + !define MUI_ICON "logo.ico" + ;!define MUI_UNICON ;Uninstall icon + + ; MUI Settings / Header + ; !define MUI_HEADERIMAGE + ; !define MUI_HEADERIMAGE_RIGHT + ; !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange-r-nsis.bmp" + ; !define MUI_HEADERIMAGE_UNBITMAP "${NSISDIR}\Contrib\Graphics\Header\orange-uninstall-r-nsis.bmp" + + ; MUI Settings / Wizard + !define MUI_WELCOMEFINISHPAGE_BITMAP "left_side.bmp" + !define MUI_UNWELCOMEFINISHPAGE_BITMAP "left_side.bmp" + ;Name and file - Name "Progressia" - OutFile "ProgressiaInstaller.exe" + Name "${PROJECT_NAME}" + OutFile "${PROJECT_NAME}Installer.exe" Unicode True ;Default installation folder - InstallDir "$PROGRAMFILES\Progressia" + InstallDir "$PROGRAMFILES\${PROJECT_NAME}" ;Get installation folder from registry if available - InstallDirRegKey HKLM "Software\Progressia" "Install_Dir" + InstallDirRegKey HKLM "Software\${PROJECT_NAME}" "" ;Request application privileges for Windows Vista RequestExecutionLevel admin @@ -33,14 +49,18 @@ ;Pages !insertmacro MUI_PAGE_WELCOME - ;!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" + !insertmacro MUI_PAGE_LICENSE "LICENSE.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES + !define MUI_FINISHPAGE_RUN + !define MUI_FINISHPAGE_RUN_TEXT "Start ${PROJECT_NAME}" + !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_COMPONENTS !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH @@ -52,35 +72,40 @@ ;-------------------------------- ;Installer Sections -Section "Install Progressia" SecDummy +Section "Install ${PROJECT_NAME}" SEC0000 + SectionIn RO ;Make it read-only SetOutPath "$INSTDIR" + SetOverwrite on ;Files File Progressia.jar + File logo.ico File /r lib ;Store installation folder WriteRegStr HKLM SOFTWARE\Progressia "Install_Dir" "$INSTDIR" ;Create uninstaller - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Progressia" "DisplayName" "Progressia (remove only)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Progressia" "UninstallString" "$INSTDIR\Uninstall.exe" + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROJECT_NAME}" "DisplayName" "${PROJECT_NAME} (remove only)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROJECT_NAME}" "UninstallString" "$INSTDIR\Uninstall.exe" WriteUninstaller "$INSTDIR\Uninstall.exe" - + SectionEnd -;-------------------------------- -;Descriptions +Section "Create Desktop Shortcut" SEC0001 + SetOutPath "$APPDATA\${PROJECT_NAME}" + CreateShortCut "$DESKTOP\${PROJECT_NAME}.lnk" "$INSTDIR\${PROJECT_NAME}.jar" "" "$INSTDIR\logo.ico" +SectionEnd - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." +Section "Start Menu Shortcuts" SEC0002 - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END + CreateDirectory "$SMPROGRAMS\${PROJECT_NAME}" + CreateShortcut "$SMPROGRAMS\${PROJECT_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + CreateShortcut "$SMPROGRAMS\${PROJECT_NAME}\${PROJECT_NAME}.lnk" "$INSTDIR\${PROJECT_NAME}.jar" "" "$INSTDIR\logo.ico" + +SectionEnd ;-------------------------------- ;Uninstaller Section @@ -92,9 +117,45 @@ Section "Uninstall" Delete $INSTDIR\Uninstall.exe Delete $INSTDIR\Progressia.jar Delete $INSTDIR\lib\*.* + Delete $INSTDIR\logo.ico + + RMDir $INSTDIR\lib + + Delete $DESKTOP\${PROJECT_NAME}.lnk + + Delete $SMPROGRAMS\${PROJECT_NAME}\Uninstall.lnk + Delete $SMPROGRAMS\${PROJECT_NAME}\${PROJECT_NAME}.lnk - RMDir /r "$INSTDIR" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Progressia" - DeleteRegKey HKLM "Software\Progressia" + RMDir $INSTDIR + + RMDir /r $SMPROGRAMS\${PROJECT_NAME} + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROJECT_NAME}" + DeleteRegKey HKLM "Software\${PROJECT_NAME}" SectionEnd + +Section "un.Remove user data" + + RMDir /r "$APPDATA\${PROJECT_NAME}" + +SectionEnd + +;-------------------------------- +;Functions + +Function LaunchLink + SetOutPath "$APPDATA\${PROJECT_NAME}" + ExecShell "" "$INSTDIR\${PROJECT_NAME}.jar" +FunctionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "Install ${PROJECT_NAME}." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC0000} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file diff --git a/build_packages/NSIS/left_side.bmp b/build_packages/NSIS/left_side.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1dd523c665302af759548aefba2a81d1baf7d838 GIT binary patch literal 154542 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 F{{hTpLtX#? literal 0 HcmV?d00001 diff --git a/build_packages/NSIS/logo.ico b/build_packages/NSIS/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..e858a481ddffc1f524cc554042fbc900fa7d3d9d GIT binary patch literal 191671 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 O3V;Hj04Pwe75G0ZzIbc^ literal 0 HcmV?d00001