1Name "@PROJECT_NAME@"
2SetCompressor /SOLID lzma
3Unicode true
4# BrandingText " "
5# Request application privileges for Windows Vista
6RequestExecutionLevel admin
7
8# Defines
9!define SOURCE_FILES "@CMAKE_SOURCE_DIR@"
10!define BINARY_FILES "@CMAKE_BINARY_DIR@"
11!define FUIDSYNTH_FILES "@FLUIDSYNTH_PREFIX@"
12!define DRUMSTICK_FILES "@Drumstick_DIR@"
13!define UCHARDET_FILES "@UCHARDET_PREFIX@"
14!define REGKEY "SOFTWARE\$(^Name)"
15!define VERSION @PROJECT_VERSION@
16!define PROGNAME "@PROJECT_NAME@"
17!define COMPANY "Drumstick"
18!define URL https://dmidiplayer.sourceforge.io
19
20# Included files
21!include Sections.nsh
22!include MUI2.nsh
23!include Library.nsh
24!include x64.nsh
25
26# MUI defines
27!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-install.ico"
28!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-uninstall.ico"
29!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
30!define MUI_STARTMENUPAGE_NODISABLE
31!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
32!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
33!define MUI_STARTMENUPAGE_DEFAULTFOLDER "@PROJECT_NAME@"
34!define MUI_FINISHPAGE_NOAUTOCLOSE
35!define MUI_UNFINISHPAGE_NOAUTOCLOSE
36
37# Variables
38Var StartMenuGroup
39Var LibInstall
40
41# Installer pages
42!define MUI_WELCOMEPAGE_TITLE_3LINES
43!insertmacro MUI_PAGE_WELCOME
44!insertmacro MUI_PAGE_LICENSE ${SOURCE_FILES}/gpl-3.0.rtf
45!insertmacro MUI_PAGE_DIRECTORY
46!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
47!insertmacro MUI_PAGE_INSTFILES
48!define MUI_FINISHPAGE_TITLE_3LINES
49!insertmacro MUI_PAGE_FINISH
50
51!define MUI_WELCOMEPAGE_TITLE_3LINES
52!insertmacro MUI_UNPAGE_WELCOME
53!insertmacro MUI_UNPAGE_CONFIRM
54!insertmacro MUI_UNPAGE_INSTFILES
55!define MUI_FINISHPAGE_TITLE_3LINES
56!insertmacro MUI_UNPAGE_FINISH
57
58# Installer languages
59!insertmacro MUI_LANGUAGE "English" ; The first language is the default language
60!insertmacro MUI_LANGUAGE "French"
61!insertmacro MUI_LANGUAGE "German"
62!insertmacro MUI_LANGUAGE "Spanish"
63!insertmacro MUI_LANGUAGE "SpanishInternational"
64!insertmacro MUI_LANGUAGE "SimpChinese"
65!insertmacro MUI_LANGUAGE "TradChinese"
66!insertmacro MUI_LANGUAGE "Japanese"
67!insertmacro MUI_LANGUAGE "Korean"
68!insertmacro MUI_LANGUAGE "Italian"
69!insertmacro MUI_LANGUAGE "Dutch"
70!insertmacro MUI_LANGUAGE "Danish"
71!insertmacro MUI_LANGUAGE "Swedish"
72!insertmacro MUI_LANGUAGE "Norwegian"
73!insertmacro MUI_LANGUAGE "NorwegianNynorsk"
74!insertmacro MUI_LANGUAGE "Finnish"
75!insertmacro MUI_LANGUAGE "Greek"
76!insertmacro MUI_LANGUAGE "Russian"
77!insertmacro MUI_LANGUAGE "Portuguese"
78!insertmacro MUI_LANGUAGE "PortugueseBR"
79!insertmacro MUI_LANGUAGE "Polish"
80!insertmacro MUI_LANGUAGE "Ukrainian"
81!insertmacro MUI_LANGUAGE "Czech"
82!insertmacro MUI_LANGUAGE "Slovak"
83!insertmacro MUI_LANGUAGE "Croatian"
84!insertmacro MUI_LANGUAGE "Bulgarian"
85!insertmacro MUI_LANGUAGE "Hungarian"
86!insertmacro MUI_LANGUAGE "Thai"
87!insertmacro MUI_LANGUAGE "Romanian"
88!insertmacro MUI_LANGUAGE "Latvian"
89!insertmacro MUI_LANGUAGE "Macedonian"
90!insertmacro MUI_LANGUAGE "Estonian"
91!insertmacro MUI_LANGUAGE "Turkish"
92!insertmacro MUI_LANGUAGE "Lithuanian"
93!insertmacro MUI_LANGUAGE "Slovenian"
94!insertmacro MUI_LANGUAGE "Serbian"
95!insertmacro MUI_LANGUAGE "SerbianLatin"
96!insertmacro MUI_LANGUAGE "Arabic"
97!insertmacro MUI_LANGUAGE "Farsi"
98!insertmacro MUI_LANGUAGE "Hebrew"
99!insertmacro MUI_LANGUAGE "Indonesian"
100!insertmacro MUI_LANGUAGE "Mongolian"
101!insertmacro MUI_LANGUAGE "Luxembourgish"
102!insertmacro MUI_LANGUAGE "Albanian"
103!insertmacro MUI_LANGUAGE "Breton"
104!insertmacro MUI_LANGUAGE "Belarusian"
105!insertmacro MUI_LANGUAGE "Icelandic"
106!insertmacro MUI_LANGUAGE "Malay"
107!insertmacro MUI_LANGUAGE "Bosnian"
108!insertmacro MUI_LANGUAGE "Kurdish"
109!insertmacro MUI_LANGUAGE "Irish"
110!insertmacro MUI_LANGUAGE "Uzbek"
111!insertmacro MUI_LANGUAGE "Galician"
112!insertmacro MUI_LANGUAGE "Afrikaans"
113!insertmacro MUI_LANGUAGE "Catalan"
114!insertmacro MUI_LANGUAGE "Esperanto"
115!insertmacro MUI_LANGUAGE "Asturian"
116!insertmacro MUI_LANGUAGE "Basque"
117!insertmacro MUI_LANGUAGE "Pashto"
118!insertmacro MUI_LANGUAGE "ScotsGaelic"
119!insertmacro MUI_LANGUAGE "Georgian"
120!insertmacro MUI_LANGUAGE "Vietnamese"
121!insertmacro MUI_LANGUAGE "Welsh"
122!insertmacro MUI_LANGUAGE "Armenian"
123!insertmacro MUI_LANGUAGE "Corsican"
124!insertmacro MUI_LANGUAGE "Tatar"
125!insertmacro MUI_LANGUAGE "Hindi"
126
127# Installer attributes
128OutFile ${PROGNAME}-${VERSION}-win-x64-setup.exe
129#InstallDir $PROGRAMFILES\${PROGNAME}
130CRCCheck on
131XPStyle on
132ShowInstDetails show
133VIProductVersion @PROJECT_VERSION@.0
134VIAddVersionKey /LANG=0 ProductName @PROJECT_NAME@
135VIAddVersionKey /LANG=0 ProductVersion ${VERSION}
136VIAddVersionKey /LANG=0 CompanyName "${COMPANY}"
137VIAddVersionKey /LANG=0 CompanyWebsite "${URL}"
138VIAddVersionKey /LANG=0 FileVersion ${VERSION}
139VIAddVersionKey /LANG=0 FileDescription "@PROJECT_DESCRIPTION@"
140VIAddVersionKey /LANG=0 LegalCopyright "Copyright (C) 2021, Pedro Lopez-Cabanillas <plcl@users.sf.net>"
141InstallDirRegKey HKLM "${REGKEY}" Path
142ShowUninstDetails show
143Icon ${SOURCE_FILES}\icons\${PROGNAME}.ico
144UninstallIcon ${SOURCE_FILES}\icons\${PROGNAME}.ico
145
146# Installer sections
147Section -Main SEC0000
148    CreateDirectory $INSTDIR\bearer
149    CreateDirectory $INSTDIR\iconengines
150    CreateDirectory $INSTDIR\imageformats
151    CreateDirectory $INSTDIR\platforms
152    CreateDirectory $INSTDIR\printsupport
153    CreateDirectory $INSTDIR\styles
154    CreateDirectory $INSTDIR\translations
155    CreateDirectory $INSTDIR\drumstick2
156    SetOutPath $INSTDIR
157    SetOverwrite on
158    File ${BINARY_FILES}\${PROGNAME}.exe
159    File ${BINARY_FILES}\examples\examples.lst
160    File ${SOURCE_FILES}\examples\twinkle.kar
161    File ${SOURCE_FILES}\examples\haendel_hallelujah.mid
162    File ${SOURCE_FILES}\examples\lindaamiga.mid
163    File ${SOURCE_FILES}\examples\mozart_aveverum.mid
164    File ${SOURCE_FILES}\examples\mozart_diesirae.mid
165    File ${SOURCE_FILES}\examples\mozart_konigdernacht.mid
166    File ${SOURCE_FILES}\examples\schubert_avemaria.mid
167    File ${SOURCE_FILES}\examples\test.mid
168    SetOutPath $INSTDIR\translations
169    File ${BINARY_FILES}\${PROGNAME}_cs.qm
170    File ${BINARY_FILES}\${PROGNAME}_de.qm
171    File ${BINARY_FILES}\${PROGNAME}_es.qm
172    File ${BINARY_FILES}\${PROGNAME}_fr.qm
173    File ${BINARY_FILES}\${PROGNAME}_it.qm
174    File ${BINARY_FILES}\${PROGNAME}_ru.qm
175    File ${BINARY_FILES}\translations\qt_cs.qm
176    File ${BINARY_FILES}\translations\qt_de.qm
177    File ${BINARY_FILES}\translations\qt_es.qm
178    File ${BINARY_FILES}\translations\qt_fr.qm
179    File ${BINARY_FILES}\translations\qt_it.qm
180    File ${BINARY_FILES}\translations\qt_ru.qm
181    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_cs.qm
182    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_de.qm
183    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_es.qm
184    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_fr.qm
185    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_it.qm
186    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_ru.qm
187
188    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\libdrumstick-file.dll $INSTDIR\libdrumstick-file.dll $INSTDIR
189    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\libdrumstick-rt.dll $INSTDIR\libdrumstick-rt.dll $INSTDIR
190    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\libdrumstick-widgets.dll $INSTDIR\libdrumstick-widgets.dll $INSTDIR
191    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\drumstick2\libdrumstick-rt-fluidsynth.dll $INSTDIR\drumstick2\libdrumstick-rt-fluidsynth.dll $INSTDIR
192    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\drumstick2\libdrumstick-rt-net-in.dll $INSTDIR\drumstick2\libdrumstick-rt-net-in.dll $INSTDIR
193    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\drumstick2\libdrumstick-rt-net-out.dll $INSTDIR\drumstick2\libdrumstick-rt-net-out.dll $INSTDIR
194    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\drumstick2\libdrumstick-rt-win-in.dll $INSTDIR\drumstick2\libdrumstick-rt-win-in.dll $INSTDIR
195    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK_FILES}\lib\drumstick2\libdrumstick-rt-win-out.dll $INSTDIR\drumstick2\libdrumstick-rt-win-out.dll $INSTDIR
196
197    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libfluidsynth-3.dll $INSTDIR\libfluidsynth-3.dll $INSTDIR
198    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libFLAC-8.dll $INSTDIR\libFLAC-8.dll $INSTDIR
199    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libglib-2.0-0.dll $INSTDIR\libglib-2.0-0.dll $INSTDIR
200    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libgomp-1.dll $INSTDIR\libgomp-1.dll $INSTDIR
201    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libiconv-2.dll $INSTDIR\libiconv-2.dll $INSTDIR
202    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libintl-8.dll	$INSTDIR\libintl-8.dll $INSTDIR
203    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libogg-0.dll $INSTDIR\libogg-0.dll $INSTDIR
204    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libopus-0.dll $INSTDIR\libopus-0.dll $INSTDIR
205    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libpcre-1.dll $INSTDIR\libpcre-1.dll $INSTDIR
206    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libreadline8.dll $INSTDIR\libreadline8.dll $INSTDIR
207    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libsndfile-1.dll $INSTDIR\libsndfile-1.dll $INSTDIR
208    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libssp-0.dll $INSTDIR\libssp-0.dll $INSTDIR
209    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libtermcap-0.dll $INSTDIR\libtermcap-0.dll $INSTDIR
210    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libvorbis-0.dll $INSTDIR\libvorbis-0.dll $INSTDIR
211    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FUIDSYNTH_FILES}\bin\libvorbisenc-2.dll $INSTDIR\libvorbisenc-2.dll $INSTDIR
212
213    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${UCHARDET_FILES}\bin\libuchardet.dll $INSTDIR\libuchardet.dll $INSTDIR
214    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\Qt5Core.dll $INSTDIR\Qt5Core.dll $INSTDIR
215    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\Qt5Gui.dll $INSTDIR\Qt5Gui.dll $INSTDIR
216    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\Qt5Network.dll $INSTDIR\Qt5Network.dll $INSTDIR
217    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\Qt5PrintSupport.dll $INSTDIR\Qt5PrintSupport.dll $INSTDIR
218    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\Qt5Svg.dll $INSTDIR\Qt5Svg.dll $INSTDIR
219    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\Qt5Widgets.dll $INSTDIR\Qt5Widgets.dll $INSTDIR
220    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\libGLESv2.dll $INSTDIR\libGLESv2.dll $INSTDIR
221    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\libEGL.dll $INSTDIR\libEGL.dll $INSTDIR
222    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\D3Dcompiler_47.dll $INSTDIR\D3Dcompiler_47.dll $INSTDIR
223    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\opengl32sw.dll $INSTDIR\opengl32sw.dll $INSTDIR
224    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\libgcc_s_seh-1.dll $INSTDIR\libgcc_s_seh-1.dll $INSTDIR
225    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\libstdc++-6.dll $INSTDIR\libstdc++-6.dll $INSTDIR
226    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\libwinpthread-1.dll $INSTDIR\libwinpthread-1.dll $INSTDIR
227    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\bearer\qgenericbearer.dll $INSTDIR\bearer\qgenericbearer.dll $INSTDIR
228    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\iconengines\qsvgicon.dll $INSTDIR\iconengines\qsvgicon.dll $INSTDIR
229    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qgif.dll $INSTDIR\imageformats\qgif.dll $INSTDIR
230    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qicns.dll $INSTDIR\imageformats\qicns.dll $INSTDIR
231    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qico.dll $INSTDIR\imageformats\qico.dll $INSTDIR
232    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qjpeg.dll $INSTDIR\imageformats\qjpeg.dll $INSTDIR
233    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qsvg.dll $INSTDIR\imageformats\qsvg.dll $INSTDIR
234    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qtga.dll $INSTDIR\imageformats\qtga.dll $INSTDIR
235    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qtiff.dll $INSTDIR\imageformats\qtiff.dll $INSTDIR
236    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qwbmp.dll $INSTDIR\imageformats\qwbmp.dll $INSTDIR
237    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\imageformats\qwebp.dll $INSTDIR\imageformats\qwebp.dll $INSTDIR
238    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\platforms\qwindows.dll $INSTDIR\platforms\qwindows.dll $INSTDIR
239    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\printsupport\windowsprintersupport.dll $INSTDIR\printsupport\windowsprintersupport.dll $INSTDIR
240    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${BINARY_FILES}\styles\qwindowsvistastyle.dll $INSTDIR\styles\qwindowsvistastyle.dll $INSTDIR
241
242    WriteRegStr HKLM "${REGKEY}\Components" Main 1
243SectionEnd
244
245Section -post SEC0001
246    WriteRegStr HKLM "${REGKEY}" Path $INSTDIR
247    SetOutPath $INSTDIR
248    WriteUninstaller $INSTDIR\uninstall.exe
249    !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
250    CreateDirectory $SMPROGRAMS\$StartMenuGroup
251    CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" $INSTDIR\uninstall.exe
252    CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" $INSTDIR\$(^Name).exe
253    !insertmacro MUI_STARTMENU_WRITE_END
254    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
255    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
256    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
257    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
258    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
259    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
260    WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
261    WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
262SectionEnd
263
264# Macro for selecting uninstaller sections
265!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
266    Push $R0
267    ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}"
268    StrCmp $R0 1 0 next${UNSECTION_ID}
269    !insertmacro SelectSection "${UNSECTION_ID}"
270    GoTo done${UNSECTION_ID}
271next${UNSECTION_ID}:
272    !insertmacro UnselectSection "${UNSECTION_ID}"
273done${UNSECTION_ID}:
274    Pop $R0
275!macroend
276
277# Uninstaller sections
278Section /o -un.Main UNSEC0000
279    Delete /REBOOTOK $INSTDIR\translations\${PROGNAME}_cs.qm
280    Delete /REBOOTOK $INSTDIR\translations\${PROGNAME}_de.qm
281    Delete /REBOOTOK $INSTDIR\translations\${PROGNAME}_es.qm
282    Delete /REBOOTOK $INSTDIR\translations\${PROGNAME}_fr.qm
283    Delete /REBOOTOK $INSTDIR\translations\${PROGNAME}_it.qm
284    Delete /REBOOTOK $INSTDIR\translations\${PROGNAME}_ru.qm
285    Delete /REBOOTOK $INSTDIR\translations\drumstick-widgets_cs.qm
286    Delete /REBOOTOK $INSTDIR\translations\drumstick-widgets_de.qm
287    Delete /REBOOTOK $INSTDIR\translations\drumstick-widgets_es.qm
288    Delete /REBOOTOK $INSTDIR\translations\drumstick-widgets_fr.qm
289    Delete /REBOOTOK $INSTDIR\translations\drumstick-widgets_it.qm
290    Delete /REBOOTOK $INSTDIR\translations\drumstick-widgets_ru.qm
291    Delete /REBOOTOK $INSTDIR\translations\qt_cs.qm
292    Delete /REBOOTOK $INSTDIR\translations\qt_de.qm
293    Delete /REBOOTOK $INSTDIR\translations\qt_es.qm
294    Delete /REBOOTOK $INSTDIR\translations\qt_fr.qm
295    Delete /REBOOTOK $INSTDIR\translations\qt_it.qm
296    Delete /REBOOTOK $INSTDIR\translations\qt_ru.qm
297    Delete /REBOOTOK $INSTDIR\${PROGNAME}.exe
298    Delete /REBOOTOK $INSTDIR\examples.lst
299    Delete /REBOOTOK $INSTDIR\twinkle.kar
300    Delete /REBOOTOK $INSTDIR\haendel_hallelujah.mid
301    Delete /REBOOTOK $INSTDIR\lindaamiga.mid
302    Delete /REBOOTOK $INSTDIR\mozart_aveverum.mid
303    Delete /REBOOTOK $INSTDIR\mozart_diesirae.mid
304    Delete /REBOOTOK $INSTDIR\mozart_konigdernacht.mid
305    Delete /REBOOTOK $INSTDIR\schubert_avemaria.mid
306    Delete /REBOOTOK $INSTDIR\test.mid
307
308    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libdrumstick-file.dll
309    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libdrumstick-rt.dll
310    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libdrumstick-widgets.dll
311    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\libdrumstick-rt-fluidsynth.dll
312    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\libdrumstick-rt-net-in.dll
313    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\libdrumstick-rt-net-out.dll
314    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\libdrumstick-rt-win-in.dll
315    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\libdrumstick-rt-win-out.dll
316
317    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libfluidsynth-3.dll
318    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libFLAC-8.dll
319    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libglib-2.0-0.dll
320    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libgomp-1.dll
321    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libiconv-2.dll
322    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libintl-8.dll
323    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libogg-0.dll
324    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libopus-0.dll
325    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libpcre-1.dll
326    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libreadline8.dll
327    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libsndfile-1.dll
328    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libssp-0.dll
329    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libtermcap-0.dll
330    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libvorbis-0.dll
331    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libvorbisenc-2.dll
332
333    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libuchardet.dll
334    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Core.dll
335    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Gui.dll
336    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Network.dll
337    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5PrintSupport.dll
338    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Svg.dll
339    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Widgets.dll
340    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libGLESv2.dll
341    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libEGL.dll
342    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\D3Dcompiler_47.dll
343    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\opengl32sw.dll
344    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libgcc_s_seh-1.dll
345    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libstdc++-6.dll
346    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libwinpthread-1.dll
347    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\bearer\qgenericbearer.dll
348    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\iconengines\qsvgicon.dll
349    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qgif.dll
350    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qicns.dll
351    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qico.dll
352    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qjpeg.dll
353    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qsvg.dll
354    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qtga.dll
355    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qtiff.dll
356    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qwbmp.dll
357    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qwebp.dll
358    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\platforms\qwindows.dll
359    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\printsupport\windowsprintersupport.dll
360    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\styles\qwindowsvistastyle.dll
361    RMDir /REBOOTOK $INSTDIR\translations
362    RMDir /REBOOTOK $INSTDIR\styles
363    RMDir /REBOOTOK $INSTDIR\platforms
364    RMDir /REBOOTOK $INSTDIR\printsupport
365    RMDir /REBOOTOK $INSTDIR\iconengines
366    RMDir /REBOOTOK $INSTDIR\imageformats
367    RMDir /REBOOTOK $INSTDIR\bearer
368    RMDir /REBOOTOK $INSTDIR\drumstick2
369    DeleteRegValue HKLM "${REGKEY}\Components" Main
370SectionEnd
371
372Section -un.post UNSEC0001
373    DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
374    Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk"
375    Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk"
376    Delete /REBOOTOK $INSTDIR\uninstall.exe
377    DeleteRegValue HKLM "${REGKEY}" StartMenuGroup
378    DeleteRegValue HKLM "${REGKEY}" Path
379    DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components"
380    DeleteRegKey /IfEmpty HKLM "${REGKEY}"
381    RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
382    RmDir /REBOOTOK $INSTDIR
383SectionEnd
384
385# Installer functions
386Function .onInit
387    !insertmacro MUI_LANGDLL_DISPLAY
388    ${If} ${RunningX64}
389        StrCpy $INSTDIR "$PROGRAMFILES64\${PROGNAME}"
390    ${Else}
391        MessageBox MB_OK|MB_ICONSTOP "Sorry, this setup package is for 64 bit systems only."
392        Quit
393    ${EndIf}
394    InitPluginsDir
395    Push $0
396    ReadRegStr $0 HKLM "${REGKEY}" Path
397    ClearErrors
398    StrCmp $0 "" +2
399    StrCpy $LibInstall 1
400    Pop $0
401FunctionEnd
402
403# Uninstaller functions
404Function un.onInit
405    !insertmacro MUI_UNGETLANGUAGE
406    ReadRegStr $INSTDIR HKLM "${REGKEY}" Path
407    !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
408    !insertmacro SELECT_UNSECTION Main ${UNSEC0000}
409FunctionEnd
410