1Name "@PROJECT_DESCRIPTION@"
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 FLUIDSYNTH_FILES "@FLUIDSYNTH_PREFIX@"
12!define DRUMSTICK_FILES "@Drumstick_DIR@"
13!define VERSION @PROJECT_VERSION@
14!define PROGNAME "@PROJECT_NAME@"
15!define CPU "@CMAKE_SYSTEM_PROCESSOR@"
16!define QTFILES "@CMAKE_BINARY_DIR@\src"
17!define QTLANG  "@CMAKE_BINARY_DIR@\src"
18!define VMPKSRC "@CMAKE_SOURCE_DIR@"
19!define VMPKBLD "@CMAKE_BINARY_DIR@"
20!define DRUMSTICK "@Drumstick_DIR@\lib"
21!define REGKEY "SOFTWARE\$(^Name)"
22!define COMPANY "@PROJECT_NAME@"
23!define URL http://vmpk.sourceforge.net/
24
25# Included files
26!include LogicLib.nsh
27!include Sections.nsh
28!include MUI2.nsh
29!include Library.nsh
30!include x64.nsh
31
32# MUI defines
33!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-install.ico"
34!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-uninstall.ico"
35!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
36!define MUI_STARTMENUPAGE_NODISABLE
37!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
38!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
39!define MUI_STARTMENUPAGE_DEFAULTFOLDER vmpk
40
41# Variables
42Var StartMenuGroup
43
44# Installer pages
45!define MUI_WELCOMEPAGE_TITLE_3LINES
46!insertmacro MUI_PAGE_WELCOME
47!insertmacro MUI_PAGE_LICENSE "@CMAKE_SOURCE_DIR@\gpl.rtf"
48!insertmacro MUI_PAGE_DIRECTORY
49!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
50!insertmacro MUI_PAGE_INSTFILES
51!define MUI_FINISHPAGE_TITLE_3LINES
52!define MUI_FINISHPAGE_NOAUTOCLOSE
53!insertmacro MUI_PAGE_FINISH
54
55!define MUI_WELCOMEPAGE_TITLE_3LINES
56!insertmacro MUI_UNPAGE_WELCOME
57!insertmacro MUI_UNPAGE_CONFIRM
58!insertmacro MUI_UNPAGE_INSTFILES
59!define MUI_FINISHPAGE_TITLE_3LINES
60!insertmacro MUI_UNPAGE_FINISH
61
62# Installer languages
63!insertmacro MUI_LANGUAGE "English"
64!insertmacro MUI_LANGUAGE "Czech"
65!insertmacro MUI_LANGUAGE "French"
66!insertmacro MUI_LANGUAGE "Galician"
67!insertmacro MUI_LANGUAGE "German"
68!insertmacro MUI_LANGUAGE "Russian"
69!insertmacro MUI_LANGUAGE "Serbian"
70!insertmacro MUI_LANGUAGE "Spanish"
71!insertmacro MUI_LANGUAGE "Swedish"
72
73# Installer attributes
74OutFile vmpk-${VERSION}-win-${CPU}-setup.exe
75#InstallDir $PROGRAMFILES\vmpk
76CRCCheck on
77XPStyle on
78ShowInstDetails show
79VIProductVersion @PROJECT_VERSION@.0
80VIAddVersionKey /LANG=0 ProductName "@PROJECT_NAME@"
81VIAddVersionKey /LANG=0 ProductVersion "${VERSION}"
82VIAddVersionKey /LANG=0 CompanyName "${COMPANY}"
83VIAddVersionKey /LANG=0 CompanyWebsite "${URL}"
84VIAddVersionKey /LANG=0 FileVersion "${VERSION}"
85VIAddVersionKey /LANG=0 FileDescription "@PROJECT_DESCRIPTION@"
86VIAddVersionKey /LANG=0 LegalCopyright "Copyright (C) 2008-2021 Pedro Lopez-Cabanillas and others"
87InstallDirRegKey HKLM "${REGKEY}" Path
88ShowUninstDetails show
89Icon ${VMPKSRC}\src\vmpk.ico
90UninstallIcon ${VMPKSRC}\src\vmpk.ico
91
92# Installer sections
93Section -Main SEC0000
94    CreateDirectory $INSTDIR\bearer
95    CreateDirectory $INSTDIR\drumstick2
96    CreateDirectory $INSTDIR\iconengines
97    CreateDirectory $INSTDIR\imageformats
98    CreateDirectory $INSTDIR\platforms
99    CreateDirectory $INSTDIR\styles
100    CreateDirectory $INSTDIR\translations
101    SetOverwrite on
102    SetOutPath $INSTDIR\translations
103    File ${VMPKBLD}\translations\vmpk_cs.qm
104    File ${VMPKBLD}\translations\vmpk_de.qm
105    File ${VMPKBLD}\translations\vmpk_es.qm
106    File ${VMPKBLD}\translations\vmpk_fr.qm
107    File ${VMPKBLD}\translations\vmpk_gl.qm
108    File ${VMPKBLD}\translations\vmpk_ru.qm
109    File ${VMPKBLD}\translations\vmpk_sr.qm
110    File ${VMPKBLD}\translations\vmpk_sv.qm
111    File ${QTLANG}\translations\qt_cs.qm
112    File ${QTLANG}\translations\qt_de.qm
113    File ${QTLANG}\translations\qt_es.qm
114    File ${QTLANG}\translations\qt_fr.qm
115    #File ${QTLANG}\translations\qt_gl.qm
116    File ${QTLANG}\translations\qt_ru.qm
117    #File ${QTLANG}\translations\qt_sr.qm
118    #File ${QTLANG}\translations\qt_sv.qm
119
120    SetOutPath $INSTDIR
121    File ${VMPKBLD}\src\vc_redist.${CPU}.exe
122    File ${VMPKBLD}\src\vmpk.exe
123    File ${VMPKSRC}\data\spanish.xml
124    File ${VMPKSRC}\data\german.xml
125    File ${VMPKSRC}\data\azerty.xml
126    File ${VMPKSRC}\data\it-qwerty.xml
127    File ${VMPKSRC}\data\vkeybd-default.xml
128    File ${VMPKSRC}\data\pc102win.xml
129    File ${VMPKSRC}\data\Serbian-lat.xml
130    File ${VMPKSRC}\data\Serbian-cyr.xml
131    File ${VMPKSRC}\data\gmgsxg.ins
132    File ${VMPKSRC}\data\help.html
133    File ${VMPKSRC}\data\help_de.html
134    File ${VMPKSRC}\data\help_es.html
135    File ${VMPKSRC}\data\help_fr.html
136    File ${VMPKSRC}\data\help_sr.html
137    File ${VMPKSRC}\data\help_ru.html
138    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_cs.qm
139    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_de.qm
140    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_es.qm
141    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_fr.qm
142    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_gl.qm
143    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_ru.qm
144    File ${DRUMSTICK_FILES}\library\widgets\drumstick-widgets_sv.qm
145
146    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\Qt5Core.dll $INSTDIR\Qt5Core.dll $INSTDIR
147    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\Qt5Gui.dll $INSTDIR\Qt5Gui.dll $INSTDIR
148    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\Qt5Network.dll $INSTDIR\Qt5Network.dll $INSTDIR
149    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\Qt5Svg.dll $INSTDIR\Qt5Svg.dll $INSTDIR
150    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\Qt5Widgets.dll $INSTDIR\Qt5Widgets.dll $INSTDIR
151    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\libEGL.dll $INSTDIR\libEGL.dll $INSTDIR
152    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\libGLESV2.dll $INSTDIR\libGLESV2.dll $INSTDIR
153    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\opengl32sw.dll $INSTDIR\opengl32sw.dll $INSTDIR
154    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\d3dcompiler_47.dll $INSTDIR\d3dcompiler_47.dll $INSTDIR
155    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\platforms\qwindows.dll $INSTDIR\platforms\qwindows.dll $INSTDIR
156    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\iconengines\qsvgicon.dll $INSTDIR\iconengines\qsvgicon.dll $INSTDIR
157    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\bearer\qgenericbearer.dll $INSTDIR\bearer\qgenericbearer.dll $INSTDIR
158    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\imageformats\qgif.dll $INSTDIR\imageformats\qgif.dll $INSTDIR
159    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\imageformats\qicns.dll $INSTDIR\imageformats\qicns.dll $INSTDIR
160    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\imageformats\qico.dll $INSTDIR\imageformats\qico.dll $INSTDIR
161    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\imageformats\qjpeg.dll $INSTDIR\imageformats\qjpeg.dll $INSTDIR
162    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\imageformats\qsvg.dll $INSTDIR\imageformats\qsvg.dll $INSTDIR
163    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${QTFILES}\styles\qwindowsvistastyle.dll $INSTDIR\styles\qwindowsvistastyle.dll $INSTDIR
164    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick-rt.dll $INSTDIR\drumstick-rt.dll $INSTDIR
165    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick-widgets.dll $INSTDIR\drumstick-widgets.dll $INSTDIR
166    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick2\drumstick-rt-net-in.dll $INSTDIR\drumstick2\drumstick-rt-net-in.dll $INSTDIR
167    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick2\drumstick-rt-net-out.dll $INSTDIR\drumstick2\drumstick-rt-net-out.dll $INSTDIR
168    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick2\drumstick-rt-win-in.dll $INSTDIR\drumstick2\drumstick-rt-win-in.dll $INSTDIR
169    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick2\drumstick-rt-win-out.dll $INSTDIR\drumstick2\drumstick-rt-win-out.dll $INSTDIR
170    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${DRUMSTICK}\drumstick2\drumstick-rt-fluidsynth.dll $INSTDIR\drumstick2\drumstick-rt-fluidsynth.dll $INSTDIR
171    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libfluidsynth-2.dll $INSTDIR\libfluidsynth-2.dll $INSTDIR
172    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libglib-2.0-0.dll $INSTDIR\libglib-2.0-0.dll $INSTDIR
173    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libgobject-2.0-0.dll $INSTDIR\libgobject-2.0-0.dll $INSTDIR
174    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libgthread-2.0-0.dll $INSTDIR\libgthread-2.0-0.dll $INSTDIR
175    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libinstpatch-2.dll $INSTDIR\libinstpatch-2.dll $INSTDIR
176    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libsndfile-1.dll $INSTDIR\libsndfile-1.dll $INSTDIR
177!If ${CPU} == "x86"
178    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\intl.dll $INSTDIR\intl.dll $INSTDIR
179!Else
180    !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED ${FLUIDSYNTH_FILES}\bin\libintl-8.dll $INSTDIR\libintl-8.dll $INSTDIR
181!EndIf
182    WriteRegStr HKLM "${REGKEY}\Components" Main 1
183SectionEnd
184
185Section -post SEC0001
186    WriteRegStr HKLM "${REGKEY}" Path $INSTDIR
187    SetOutPath $INSTDIR
188    WriteUninstaller $INSTDIR\uninstall.exe
189    !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
190    CreateDirectory $SMPROGRAMS\$StartMenuGroup
191    SetOutPath $SMPROGRAMS\$StartMenuGroup
192    CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall VMPK.lnk" $INSTDIR\uninstall.exe
193    CreateShortcut "$SMPROGRAMS\$StartMenuGroup\VMPK.lnk" $INSTDIR\vmpk.exe
194    !insertmacro MUI_STARTMENU_WRITE_END
195    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
196    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
197    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
198    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
199    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
200    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
201    WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
202    WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
203    ;VS2015 Runtime
204    ReadRegStr $1 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\${CPU}" "Installed"
205    StrCmp $1 1 installed
206    ;not installed, so run the installer
207    ExecWait '"$INSTDIR\vc_redist.${CPU}.exe" /install /quiet /norestart'
208installed:
209SectionEnd
210
211# Macro for selecting uninstaller sections
212!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
213    Push $R0
214    ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}"
215    StrCmp $R0 1 0 next${UNSECTION_ID}
216    !insertmacro SelectSection "${UNSECTION_ID}"
217    GoTo done${UNSECTION_ID}
218next${UNSECTION_ID}:
219    !insertmacro UnselectSection "${UNSECTION_ID}"
220done${UNSECTION_ID}:
221    Pop $R0
222!macroend
223
224# Uninstaller sections
225Section /o -un.Main UNSEC0000
226    Delete /REBOOTOK $INSTDIR\translations\qt_cs.qm
227    Delete /REBOOTOK $INSTDIR\translations\qt_de.qm
228    Delete /REBOOTOK $INSTDIR\translations\qt_es.qm
229    Delete /REBOOTOK $INSTDIR\translations\qt_fr.qm
230#   Delete /REBOOTOK $INSTDIR\translations\qt_gl.qm
231    Delete /REBOOTOK $INSTDIR\translations\qt_ru.qm
232#   Delete /REBOOTOK $INSTDIR\translations\qt_sv.qm
233#   Delete /REBOOTOK $INSTDIR\translations\qt_sr.qm
234    Delete /REBOOTOK $INSTDIR\translations\vmpk_cs.qm
235    Delete /REBOOTOK $INSTDIR\translations\vmpk_de.qm
236    Delete /REBOOTOK $INSTDIR\translations\vmpk_es.qm
237    Delete /REBOOTOK $INSTDIR\translations\vmpk_fr.qm
238    Delete /REBOOTOK $INSTDIR\translations\vmpk_gl.qm
239    Delete /REBOOTOK $INSTDIR\translations\vmpk_ru.qm
240    Delete /REBOOTOK $INSTDIR\translations\vmpk_sv.qm
241    Delete /REBOOTOK $INSTDIR\translations\vmpk_sr.qm
242    Delete /REBOOTOK $INSTDIR\drumstick-widgets_cs.qm
243    Delete /REBOOTOK $INSTDIR\drumstick-widgets_de.qm
244    Delete /REBOOTOK $INSTDIR\drumstick-widgets_es.qm
245    Delete /REBOOTOK $INSTDIR\drumstick-widgets_fr.qm
246    Delete /REBOOTOK $INSTDIR\drumstick-widgets_gl.qm
247    Delete /REBOOTOK $INSTDIR\drumstick-widgets_ru.qm
248    Delete /REBOOTOK $INSTDIR\drumstick-widgets_sv.qm
249
250    Delete /REBOOTOK $INSTDIR\vmpk.exe
251    Delete /REBOOTOK $INSTDIR\vc_redist.${CPU}.exe
252    Delete /REBOOTOK $INSTDIR\spanish.xml
253    Delete /REBOOTOK $INSTDIR\german.xml
254    Delete /REBOOTOK $INSTDIR\azerty.xml
255    Delete /REBOOTOK $INSTDIR\it-qwerty.xml
256    Delete /REBOOTOK $INSTDIR\vkeybd-default.xml
257    Delete /REBOOTOK $INSTDIR\pc102win.xml
258    Delete /REBOOTOK $INSTDIR\Serbian-lat.xml
259    Delete /REBOOTOK $INSTDIR\Serbian-cyr.xml
260    Delete /REBOOTOK $INSTDIR\gmgsxg.ins
261    Delete /REBOOTOK $INSTDIR\help.html
262    Delete /REBOOTOK $INSTDIR\help_de.html
263    Delete /REBOOTOK $INSTDIR\help_es.html
264    Delete /REBOOTOK $INSTDIR\help_fr.html
265    Delete /REBOOTOK $INSTDIR\help_ru.html
266    Delete /REBOOTOK $INSTDIR\help_sr.html
267
268    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Core.dll
269    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Gui.dll
270    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Network.dll
271    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Svg.dll
272    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\Qt5Widgets.dll
273    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libEGL.dll
274    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libGLESV2.dll
275    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\opengl32sw.dll
276    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\d3dcompiler_47.dll
277    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\platforms\qwindows.dll
278    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\iconengines\qsvgicon.dll
279    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\bearer\qgenericbearer.dll
280    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qgif.dll
281    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qicns.dll
282    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qico.dll
283    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qjpeg.dll
284    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\imageformats\qsvg.dll
285    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\styles\qwindowsvistastyle.dll
286    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick-rt.dll
287    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick-widgets.dll
288    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\drumstick-rt-net-in.dll
289    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\drumstick-rt-net-out.dll
290    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\drumstick-rt-win-in.dll
291    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\drumstick-rt-win-out.dll
292    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\drumstick2\drumstick-rt-fluidsynth.dll
293    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libfluidsynth-2.dll
294    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libglib-2.0-0.dll
295    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libgobject-2.0-0.dll
296    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libgthread-2.0-0.dll
297    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libinstpatch-2.dll
298    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libsndfile-1.dll
299!If ${CPU} == "x86"
300    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\intl.dll
301!Else
302    !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED $INSTDIR\libintl-8.dll
303!EndIf
304
305    RMDir /REBOOTOK $INSTDIR\translations
306    RMDir /REBOOTOK $INSTDIR\styles
307    RMDir /REBOOTOK $INSTDIR\platforms
308    RMDir /REBOOTOK $INSTDIR\imageformats
309    RMDir /REBOOTOK $INSTDIR\iconengines
310    RMDir /REBOOTOK $INSTDIR\drumstick2
311    RMDir /REBOOTOK $INSTDIR\bearer
312    DeleteRegValue HKLM "${REGKEY}\Components" Main
313SectionEnd
314
315Section -un.post UNSEC0001
316    DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
317    Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall VMPK.lnk"
318    Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\VMPK.lnk"
319    Delete /REBOOTOK $INSTDIR\uninstall.exe
320    DeleteRegValue HKLM "${REGKEY}" StartMenuGroup
321    DeleteRegValue HKLM "${REGKEY}" Path
322    DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components"
323    DeleteRegKey /IfEmpty HKLM "${REGKEY}"
324    RMDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
325    RMDir /REBOOTOK $INSTDIR
326SectionEnd
327
328#Installer Functions
329Function .onInit
330    !insertmacro MUI_LANGDLL_DISPLAY
331    ${If} ${RunningX64}
332        ${If} ${CPU} == "x86"
333            StrCpy $INSTDIR "$PROGRAMFILES32\${PROGNAME}"
334        ${Else}
335            StrCpy $INSTDIR "$PROGRAMFILES64\${PROGNAME}"
336        ${EndIf}
337    ${Else}
338        ${If} ${CPU} == "x64"
339            MessageBox MB_OK|MB_ICONSTOP "Sorry, this setup package is for 64 bit systems only."
340            Quit
341        ${EndIf}
342        StrCpy $INSTDIR "$PROGRAMFILES\${PROGNAME}"
343    ${EndIf}
344FunctionEnd
345
346# Uninstaller functions
347Function un.onInit
348    !insertmacro MUI_UNGETLANGUAGE
349    ReadRegStr $INSTDIR HKLM "${REGKEY}" Path
350    !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
351    !insertmacro SELECT_UNSECTION Main ${UNSEC0000}
352FunctionEnd
353