1;NSIS Modern User Interface 2;create the windows install exectuable 3;Piano Booster 4 5;-------------------------------- 6;Include Modern UI 7 8 !include "MUI2.nsh" 9 10;-------------------------------- 11;Defines 12 13 !cd "..\..\" 14 15 !define PB_BUILT_DIR "release\build" 16 !if ! /FileExists "${PB_BUILT_DIR}\pianobooster.exe" 17 !error "the release file '${PB_BUILT_DIR}\pianobooster.exe' not found" 18 !endif 19 20 21 ; The Env PB_INSTALL_FILES_PATH must be set to the path of all the addition release files 22 ; trick to see if at compile time an environment variable exists 23 ; see https://stackoverflow.com/questions/22149007/nsis-how-to-check-at-compile-time-if-an-environment-variable-exists 24 !if "$%PB_INSTALL_FILES_PATH%" == "${U+24}%PB_INSTALL_FILES_PATH%" 25 !error "the environmental variable PB_INSTALL_FILES_PATH is not set" 26 !endif 27 28 ; Put file there 29 30 !define FILES_FOR_RELEASE $%PB_INSTALL_FILES_PATH% 31 !echo "The FILES_FOR_RELEASE path is ${FILES_FOR_RELEASE}" 32 33 !if ! /FileExists "${FILES_FOR_RELEASE}\Qt5Core.dll" 34 !error "File '${FILES_FOR_RELEASE}\Qt5Core.dll' not found" 35 !endif 36 37 38;-------------------------------- 39;General 40 41 ; The name of the installer 42 Name "Piano Booster" 43 44 ; The file to write 45 OutFile "PianoBoosterInstall.exe" 46 47 ; The default installation directory 48 InstallDir "$PROGRAMFILES\Piano Booster" 49 50 ; Registry key to check for directory (so if you install again, it will 51 ; overwrite the old one automatically) 52 InstallDirRegKey HKCU "Software\NSIS_PianoBooster" "" 53 54 55 ;Request application privileges for Windows Vista 56 RequestExecutionLevel admin 57 58;-------------------------------- 59;Variables 60 61 Var StartMenuFolder 62 63;-------------------------------- 64;Interface Settings 65 66 !define MUI_ABORTWARNING 67 68;-------------------------------- 69;Pages 70 71 !insertmacro MUI_PAGE_WELCOME 72 #!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" 73 #!insertmacro MUI_PAGE_COMPONENTS 74 !insertmacro MUI_PAGE_DIRECTORY 75 76 ;Start Menu Folder Page Configuration 77 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 78 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\NSIS_PianoBooster" 79 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" 80 81 !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder 82 83 !insertmacro MUI_PAGE_INSTFILES 84 !insertmacro MUI_PAGE_FINISH 85 86 !insertmacro MUI_UNPAGE_WELCOME 87 !insertmacro MUI_UNPAGE_CONFIRM 88 !insertmacro MUI_UNPAGE_INSTFILES 89 !insertmacro MUI_UNPAGE_FINISH 90 91;-------------------------------- 92;Languages 93 !insertmacro MUI_LANGUAGE "Afrikaans" 94 !insertmacro MUI_LANGUAGE "Albanian" 95 !insertmacro MUI_LANGUAGE "Arabic" 96 !insertmacro MUI_LANGUAGE "Asturian" 97 !insertmacro MUI_LANGUAGE "Basque" 98 !insertmacro MUI_LANGUAGE "Belarusian" 99 !insertmacro MUI_LANGUAGE "Bosnian" 100 !insertmacro MUI_LANGUAGE "Breton" 101 !insertmacro MUI_LANGUAGE "Bulgarian" 102 !insertmacro MUI_LANGUAGE "Catalan" 103 !insertmacro MUI_LANGUAGE "Corsican" 104 !insertmacro MUI_LANGUAGE "Croatian" 105 !insertmacro MUI_LANGUAGE "Czech" 106 !insertmacro MUI_LANGUAGE "Danish" 107 !insertmacro MUI_LANGUAGE "Dutch" 108 !insertmacro MUI_LANGUAGE "English" 109 !insertmacro MUI_LANGUAGE "Esperanto" 110 !insertmacro MUI_LANGUAGE "Estonian" 111 !insertmacro MUI_LANGUAGE "Farsi" 112 !insertmacro MUI_LANGUAGE "Finnish" 113 !insertmacro MUI_LANGUAGE "French" 114 !insertmacro MUI_LANGUAGE "Galician" 115 !insertmacro MUI_LANGUAGE "German" 116 !insertmacro MUI_LANGUAGE "Greek" 117 !insertmacro MUI_LANGUAGE "Hebrew" 118 !insertmacro MUI_LANGUAGE "Hungarian" 119 !insertmacro MUI_LANGUAGE "Icelandic" 120 !insertmacro MUI_LANGUAGE "Indonesian" 121 !insertmacro MUI_LANGUAGE "Irish" 122 !insertmacro MUI_LANGUAGE "Italian" 123 !insertmacro MUI_LANGUAGE "Japanese" 124 !insertmacro MUI_LANGUAGE "Korean" 125 !insertmacro MUI_LANGUAGE "Kurdish" 126 !insertmacro MUI_LANGUAGE "Latvian" 127 !insertmacro MUI_LANGUAGE "Lithuanian" 128 !insertmacro MUI_LANGUAGE "Luxembourgish" 129 !insertmacro MUI_LANGUAGE "Macedonian" 130 !insertmacro MUI_LANGUAGE "Malay" 131 !insertmacro MUI_LANGUAGE "Mongolian" 132 !insertmacro MUI_LANGUAGE "Norwegian" 133 !insertmacro MUI_LANGUAGE "NorwegianNynorsk" 134 !insertmacro MUI_LANGUAGE "Pashto" 135 !insertmacro MUI_LANGUAGE "Polish" 136 !insertmacro MUI_LANGUAGE "Portuguese" 137 !insertmacro MUI_LANGUAGE "PortugueseBR" 138 !insertmacro MUI_LANGUAGE "Romanian" 139 !insertmacro MUI_LANGUAGE "Russian" 140 !insertmacro MUI_LANGUAGE "ScotsGaelic" 141 !insertmacro MUI_LANGUAGE "Serbian" 142 !insertmacro MUI_LANGUAGE "SerbianLatin" 143 !insertmacro MUI_LANGUAGE "SimpChinese" 144 !insertmacro MUI_LANGUAGE "Slovak" 145 !insertmacro MUI_LANGUAGE "Slovenian" 146 !insertmacro MUI_LANGUAGE "Spanish" 147 !insertmacro MUI_LANGUAGE "SpanishInternational" 148 !insertmacro MUI_LANGUAGE "Swedish" 149 !insertmacro MUI_LANGUAGE "Tatar" 150 !insertmacro MUI_LANGUAGE "Thai" 151 !insertmacro MUI_LANGUAGE "TradChinese" 152 !insertmacro MUI_LANGUAGE "Turkish" 153 !insertmacro MUI_LANGUAGE "Ukrainian" 154 !insertmacro MUI_LANGUAGE "Uzbek" 155 !insertmacro MUI_LANGUAGE "Vietnamese" 156 !insertmacro MUI_LANGUAGE "Welsh" 157;-------------------------------- 158;Installer Sections 159 160Section "Install Section" 161 162 163 SetOutPath "$INSTDIR" 164 165 SetOutPath $INSTDIR 166 File "${PB_BUILT_DIR}\pianobooster.exe" 167 File /r "${FILES_FOR_RELEASE}\*.*" 168 169 170 171 CreateDirectory $INSTDIR\translations 172 SetOutPath $INSTDIR\translations 173 File "${PB_BUILT_DIR}\translations\*.qm" 174 File "${PB_BUILT_DIR}\translations\langs.json" 175 176 CreateDirectory $INSTDIR\fonts 177 SetOutPath $INSTDIR\fonts 178 File "${PB_BUILT_DIR}\fonts\*.ttf" 179 180 CreateDirectory $INSTDIR\doc 181 SetOutPath $INSTDIR\doc 182 File license.txt 183 File gplv3.txt 184 185 CreateDirectory "$DOCUMENTS\My Music" 186 SetOutPath "$DOCUMENTS\My Music" 187 ; Temporary fix 188 File /r "${PB_BUILT_DIR}\BoosterMusicBooks\BoosterMusicBooks4" 189 190 SetOutPath $INSTDIR 191 192 ; Write the installation path into the registry 193 WriteRegStr HKCU SOFTWARE\NSIS_PianoBooster "" "$INSTDIR" 194 195 ;Create uninstaller 196 WriteUninstaller "$INSTDIR\Uninstall.exe" 197 198 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application 199 200 ;Create shortcuts 201 CreateDirectory "$SMPROGRAMS\$StartMenuFolder" 202 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Piano Booster.lnk" "$INSTDIR\pianobooster.exe" "" "$INSTDIR\pianobooster.exe" 0 203 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" 204 205 !insertmacro MUI_STARTMENU_WRITE_END 206 207SectionEnd 208 209;-------------------------------- 210;Descriptions 211 212 ;Language strings 213; LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." 214 215 ;Assign language strings to sections 216; !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN 217; !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) 218; !insertmacro MUI_FUNCTION_DESCRIPTION_END 219 220;-------------------------------- 221;Uninstaller Section 222 223Section "Uninstall" 224 225 226 ; Remove files and uninstaller 227 RMDir /r "$INSTDIR" 228 229 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder 230 231 ; Remove shortcuts, if any 232 Delete "$SMPROGRAMS\$StartMenuFolder\*.*" 233 RMDir "$SMPROGRAMS\$StartMenuFolder" 234 235 ; Remove registry keys 236 DeleteRegKey /ifempty HKCU "Software\NSIS_PianoBooster" 237 238SectionEnd 239