1; NSIS script for EasyTAG mingw
2;
3; TODO: Write better introductory text (do not _need_ to agree to the GPL, not
4;       necessary to quit other applications before installing).
5
6!define PREFIX @PREFIX@
7!define PRODUCT_NAME @PACKAGE_NAME@
8!define PRODUCT_EXE_NAME @PACKAGE_TARNAME@.exe
9!define PRODUCT_VERSION @PACKAGE_VERSION@
10!define PRODUCT_PUBLISHER "EasyTAG project"
11!define PRODUCT_WEB_SITE @PACKAGE_URL@
12!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\${PRODUCT_EXE_NAME}"
13!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
14!define PRODUCT_UNINST_ROOT_KEY "HKLM"
15!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
16
17SetCompressor /SOLID lzma
18ShowInstDetails show
19ShowUninstDetails show
20
21; Modern UI
22!include "MUI2.nsh"
23!include "FileFunc.nsh"
24
25; MUI Settings
26!define MUI_ABORTWARNING
27!define MUI_COMPONENTSPAGE_SMALLDESC
28!define MUI_ICON "data/icons/win32/easytag.ico"
29;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" ;"data/pixmaps/EasyTAG.ico"
30
31; Modern UI Configuration
32!define MUI_HEADERIMAGE
33!define MUI_HEADERIMAGE_BITMAP "data/nsis/easytag-header.bmp"
34!define MUI_WELCOMEFINISHPAGE_BITMAP "data/nsis/easytag-sidebar.bmp"
35!define MUI_UNWELCOMEFINISHPAGE_BITMAP "data/nsis/easytag-sidebar.bmp"
36
37; Language Selection Dialog Settings
38!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
39!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
40!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
41
42; Version resource
43VIProductVersion "0.0.0.0"
44VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
45VIAddVersionKey "FileVersion" "${PRODUCT_VERSION}"
46VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}"
47VIAddVersionKey "LegalCopyright" ""
48VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer"
49
50; Welcome page
51!insertmacro MUI_PAGE_WELCOME
52
53; License page
54!insertmacro MUI_PAGE_LICENSE "./COPYING"
55
56; Components page
57!insertmacro MUI_PAGE_COMPONENTS
58
59; Directory page
60!insertmacro MUI_PAGE_DIRECTORY
61
62; Start menu page
63var ICONS_GROUP
64!define MUI_STARTMENUPAGE_NODISABLE
65!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_NAME}"
66!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
67!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
68!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}"
69!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
70
71; Instfiles page
72!insertmacro MUI_PAGE_INSTFILES
73
74; Finish page
75!define MUI_FINISHPAGE_RUN "$INSTDIR\bin\${PRODUCT_EXE_NAME}"
76!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
77!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
78!define MUI_FINISHPAGE_LINK "${PRODUCT_NAME} Web site"
79!define MUI_FINISHPAGE_LINK_LOCATION ${PRODUCT_WEB_SITE}
80!insertmacro MUI_PAGE_FINISH
81
82; Uninstaller pages
83!insertmacro MUI_UNPAGE_WELCOME
84!insertmacro MUI_UNPAGE_CONFIRM
85!insertmacro MUI_UNPAGE_INSTFILES
86!insertmacro MUI_UNPAGE_FINISH
87
88; Language files
89!insertmacro MUI_LANGUAGE "Afrikaans"
90!insertmacro MUI_LANGUAGE "Albanian"
91!insertmacro MUI_LANGUAGE "Arabic"
92!insertmacro MUI_LANGUAGE "Basque"
93!insertmacro MUI_LANGUAGE "Belarusian"
94!insertmacro MUI_LANGUAGE "Bosnian"
95!insertmacro MUI_LANGUAGE "Breton"
96!insertmacro MUI_LANGUAGE "Bulgarian"
97!insertmacro MUI_LANGUAGE "Catalan"
98!insertmacro MUI_LANGUAGE "Croatian"
99!insertmacro MUI_LANGUAGE "Czech"
100!insertmacro MUI_LANGUAGE "Danish"
101!insertmacro MUI_LANGUAGE "Dutch"
102!insertmacro MUI_LANGUAGE "English"
103!insertmacro MUI_LANGUAGE "Estonian"
104!insertmacro MUI_LANGUAGE "Farsi"
105!insertmacro MUI_LANGUAGE "Finnish"
106!insertmacro MUI_LANGUAGE "French"
107!insertmacro MUI_LANGUAGE "Galician"
108!insertmacro MUI_LANGUAGE "German"
109!insertmacro MUI_LANGUAGE "Greek"
110!insertmacro MUI_LANGUAGE "Hebrew"
111!insertmacro MUI_LANGUAGE "Hungarian"
112!insertmacro MUI_LANGUAGE "Icelandic"
113!insertmacro MUI_LANGUAGE "Indonesian"
114!insertmacro MUI_LANGUAGE "Irish"
115!insertmacro MUI_LANGUAGE "Italian"
116!insertmacro MUI_LANGUAGE "Japanese"
117!insertmacro MUI_LANGUAGE "Korean"
118!insertmacro MUI_LANGUAGE "Kurdish"
119!insertmacro MUI_LANGUAGE "Latvian"
120!insertmacro MUI_LANGUAGE "Lithuanian"
121!insertmacro MUI_LANGUAGE "Luxembourgish"
122!insertmacro MUI_LANGUAGE "Macedonian"
123!insertmacro MUI_LANGUAGE "Malay"
124!insertmacro MUI_LANGUAGE "Mongolian"
125!insertmacro MUI_LANGUAGE "Norwegian"
126!insertmacro MUI_LANGUAGE "NorwegianNynorsk"
127!insertmacro MUI_LANGUAGE "Polish"
128!insertmacro MUI_LANGUAGE "Portuguese"
129!insertmacro MUI_LANGUAGE "PortugueseBR"
130!insertmacro MUI_LANGUAGE "Romanian"
131!insertmacro MUI_LANGUAGE "Russian"
132!insertmacro MUI_LANGUAGE "Serbian"
133!insertmacro MUI_LANGUAGE "SerbianLatin"
134!insertmacro MUI_LANGUAGE "SimpChinese"
135!insertmacro MUI_LANGUAGE "Slovak"
136!insertmacro MUI_LANGUAGE "Slovenian"
137!insertmacro MUI_LANGUAGE "Spanish"
138!insertmacro MUI_LANGUAGE "SpanishInternational"
139!insertmacro MUI_LANGUAGE "Swedish"
140!insertmacro MUI_LANGUAGE "Thai"
141!insertmacro MUI_LANGUAGE "TradChinese"
142!insertmacro MUI_LANGUAGE "Turkish"
143!insertmacro MUI_LANGUAGE "Ukrainian"
144!insertmacro MUI_LANGUAGE "Uzbek"
145!insertmacro MUI_LANGUAGE "Welsh"
146
147; MUI end ------
148
149Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
150OutFile "easytag-${PRODUCT_VERSION}-setup.exe"
151InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
152InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
153ShowInstDetails show
154ShowUnInstDetails show
155
156Function .onInit
157  !insertmacro MUI_LANGDLL_DISPLAY ; Open the language selection window
158FunctionEnd
159
160
161;------------------------------------
162; EasyTAG executable install Section
163;------------------------------------
164Section "Core ${PRODUCT_NAME} Files" SecProgram
165  SectionIn 1 RO ; User cannot unselect it!
166
167  ; Fedora mingw paths. FIXME: Find these automatically.
168  SetOutPath "$INSTDIR\bin"
169  File "${PREFIX}/bin/iconv.dll"
170  File "${PREFIX}/bin/libatk-1.0-0.dll"
171  File "${PREFIX}/bin/libbz2-1.dll"
172  File "${PREFIX}/bin/libcairo-2.dll"
173  File "${PREFIX}/bin/libcairo-gobject-2.dll"
174  File "${PREFIX}/bin/libepoxy-0.dll"
175  File "${PREFIX}/bin/libexpat-1.dll"
176  File "${PREFIX}/bin/libFLAC-8.dll"
177  File "${PREFIX}/bin/libffi-6.dll"
178  File "${PREFIX}/bin/libfontconfig-1.dll"
179  File "${PREFIX}/bin/libfreetype-6.dll"
180  File "${PREFIX}/bin/libgcc_s_sjlj-1.dll"
181  File "${PREFIX}/bin/libgdk-3-0.dll"
182  File "${PREFIX}/bin/libgdk_pixbuf-2.0-0.dll"
183  File "${PREFIX}/bin/libgio-2.0-0.dll"
184  File "${PREFIX}/bin/libglib-2.0-0.dll"
185  File "${PREFIX}/bin/libgmodule-2.0-0.dll"
186  File "${PREFIX}/bin/libgobject-2.0-0.dll"
187  File "${PREFIX}/bin/libgtk-3-0.dll"
188  File "${PREFIX}/bin/libid3-3-8-3.dll"
189  File "${PREFIX}/bin/libid3tag-0.dll"
190  File "${PREFIX}/bin/libintl-8.dll"
191  File "${PREFIX}/bin/libogg-0.dll"
192  File "${PREFIX}/bin/libopus-0.dll"
193  File "${PREFIX}/bin/libopusfile-0.dll"
194  File "${PREFIX}/bin/libpango-1.0-0.dll"
195  File "${PREFIX}/bin/libpangocairo-1.0-0.dll"
196  File "${PREFIX}/bin/libpangowin32-1.0-0.dll"
197  File "${PREFIX}/bin/libpcre-1.dll"
198  File "${PREFIX}/bin/libpixman-1-0.dll"
199  File "${PREFIX}/bin/libpng16-16.dll"
200  File "${PREFIX}/bin/libstdc++-6.dll"
201  File "${PREFIX}/bin/libspeex-1.dll"
202  File "${PREFIX}/bin/libtag.dll"
203  File "${PREFIX}/bin/libvorbis-0.dll"
204  File "${PREFIX}/bin/libvorbisfile-3.dll"
205  File "${PREFIX}/bin/libwavpack-1.dll"
206  File "${PREFIX}/bin/libwinpthread-1.dll"
207  File "${PREFIX}/bin/glib-compile-schemas.exe"
208  File "${PREFIX}/bin/gspawn-win32-helper.exe"
209  File "${PREFIX}/bin/gtk-update-icon-cache.exe"
210  File "${PREFIX}/bin/zlib1.dll"
211
212  SetOutPath "$INSTDIR\etc"
213  File /r "${PREFIX}/etc/fonts"
214  File /r "${PREFIX}/etc/gtk-3.0"
215
216  SetOutPath "$INSTDIR\lib"
217  File /r "${PREFIX}/lib/gdk-pixbuf-2.0"
218  File /r "${PREFIX}/lib/gtk-3.0"
219
220  SetOutPath "$INSTDIR\etc\gtk-3.0"
221  FileOpen $0 settings.ini w
222  FileWrite $0 "gtk-theme-name = $\"win32$\" $\r$\n"
223  FileWrite $0 "gtk-toolbar-style = GTK_TOOLBAR_ICONS$\r$\n"
224  FileClose $0
225
226  SetOutPath "$INSTDIR\share\icons\hicolor"
227  File "/usr/share/icons/hicolor/index.theme"
228
229  SetOutPath "$INSTDIR\share\icons"
230  File /r "/usr/share/icons/Adwaita"
231
232  SetOutPath "$INSTDIR\share\icons\hicolor\32x32\apps"
233  File "${DESTDIR}${PREFIX}/share/icons/hicolor/32x32/apps/easytag.png"
234  SetOutPath "$INSTDIR\share\icons\hicolor\48x48\apps"
235  File "${DESTDIR}${PREFIX}/share/icons/hicolor/48x48/apps/easytag.png"
236
237  SetOutPath "$INSTDIR\share\glib-2.0\schemas"
238  File "${DESTDIR}${PREFIX}/share/glib-2.0/schemas/org.gnome.EasyTAG.enums.xml"
239  File "${DESTDIR}${PREFIX}/share/glib-2.0/schemas/org.gnome.EasyTAG.gschema.xml"
240  File "${PREFIX}/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml"
241
242  SetOutPath "$INSTDIR\bin"
243  File "${DESTDIR}${PREFIX}/bin/${PRODUCT_EXE_NAME}"
244
245  ReadEnvStr $0 COMSPEC
246  SetOutPath "$INSTDIR"
247  nsExec::ExecToLog '"$0" /C bin\glib-compile-schemas.exe share\glib-2.0\schemas'
248  nsExec::ExecToLog '"$0" /C bin\gtk-update-icon-cache.exe share\icons\Adwaita'
249  nsExec::ExecToLog '"$0" /C bin\gtk-update-icon-cache.exe share\icons\hicolor'
250
251  ; FIXME: ChangeLog should come from the dist dir, otherwise it does not
252  ; contain the generated changelog.
253  File /oname=ChangeLog.txt ChangeLog
254  File /oname=COPYING.txt COPYING
255  File /oname=README.txt README
256  File /oname=SOURCES.txt SOURCES
257
258  ; Shortcuts
259  ;!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
260  ;CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
261  ;CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\EasyTAG ${PRODUCT_VERSION}.lnk" "$INSTDIR\easytag.exe"
262  ;!insertmacro MUI_STARTMENU_WRITE_END
263SectionEnd
264
265;------------------------------------
266; EasyTAG shortcut install Section
267;------------------------------------
268SectionGroup /e "Shortcuts" SecShortcuts
269  Section /o "Desktop" SecDesktopShortcut
270    SetOverwrite on
271    CreateShortCut "$DESKTOP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk" "$INSTDIR\bin\${PRODUCT_EXE_NAME}"
272    SetOverwrite off
273  SectionEnd
274
275  Section "Start Menu" SecStartMenuShortcut
276    SetOverwrite on
277    !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
278    CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
279    CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk" "$INSTDIR\bin\${PRODUCT_EXE_NAME}"
280    !insertmacro MUI_STARTMENU_WRITE_END
281    SetOverwrite off
282  SectionEnd
283
284  Section "Context Menu" SecContextMenuShortcut
285    SetOverwrite on
286    WriteRegStr HKCR "Directory\shell\${PRODUCT_NAME}" "" "Browse with EasyTAG"
287    WriteRegStr HKCR "Directory\shell\${PRODUCT_NAME}\command" "" '"$INSTDIR\bin\${PRODUCT_EXE_NAME}" "%1"'
288    SetOverwrite off
289  SectionEnd
290SectionGroupEnd
291
292
293;------------------------------------
294; Translation install Section
295;------------------------------------
296!macro Locale LOCALE
297Section "${LOCALE} Translation"
298  SetOutPath "$INSTDIR\share\locale\${LOCALE}\LC_MESSAGES"
299  File "${DESTDIR}${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES/easytag.mo"
300  File "${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES/atk10.mo"
301  File "${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES/gdk-pixbuf.mo"
302  File "${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES/glib20.mo"
303  File "${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES/gtk30.mo"
304  File "${PREFIX}/share/locale/${LOCALE}/LC_MESSAGES/gtk30-properties.mo"
305SectionEnd
306!macroend
307
308SectionGroup "Translations" SecTranslations
309  !insertmacro Locale "bg"
310  !insertmacro Locale "bs"
311  !insertmacro Locale "ca"
312  !insertmacro Locale "cs"
313  !insertmacro Locale "da"
314  !insertmacro Locale "de"
315  !insertmacro Locale "el"
316  !insertmacro Locale "en_GB"
317  !insertmacro Locale "es"
318  !insertmacro Locale "fr"
319  !insertmacro Locale "he"
320  !insertmacro Locale "hu"
321  !insertmacro Locale "id"
322  !insertmacro Locale "it"
323  !insertmacro Locale "ja"
324  !insertmacro Locale "ko"
325  !insertmacro Locale "lt"
326  !insertmacro Locale "nb"
327  !insertmacro Locale "nl"
328  !insertmacro Locale "pl"
329  !insertmacro Locale "pt"
330  !insertmacro Locale "pt_BR"
331  !insertmacro Locale "ro"
332  !insertmacro Locale "ru"
333  !insertmacro Locale "sl"
334  !insertmacro Locale "sr"
335  !insertmacro Locale "sr@latin"
336  !insertmacro Locale "sv"
337  !insertmacro Locale "te"
338  !insertmacro Locale "tr"
339  !insertmacro Locale "uk"
340  !insertmacro Locale "zh_CN"
341  !insertmacro Locale "zh_TW"
342SectionGroupEnd
343
344Section -AdditionalIcons
345  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
346  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
347  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME} Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
348  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\Uninstall ${PRODUCT_NAME}.exe"
349  !insertmacro MUI_STARTMENU_WRITE_END
350SectionEnd
351
352Section -Post
353  WriteUninstaller "$INSTDIR\Uninstall ${PRODUCT_NAME}.exe"
354  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\${PRODUCT_EXE_NAME}"
355  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
356  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall ${PRODUCT_NAME}.exe"
357  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\Uninstall ${PRODUCT_NAME}.exe$\" /S"
358  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\bin\${PRODUCT_EXE_NAME}"
359  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
360  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
361  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
362  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Readme" "$INSTDIR\README.txt"
363  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallSource" "$EXEDIR"
364  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
365  ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
366  IntFmt $0 "0x%08X" $0
367  WriteRegDword ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0"
368  WriteRegDword ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModify" 1
369  WriteRegDword ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 1
370SectionEnd
371
372; Section descriptions
373!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
374  !insertmacro MUI_DESCRIPTION_TEXT ${SecProgram} "The ${PRODUCT_NAME} program and associated core files"
375  !insertmacro MUI_DESCRIPTION_TEXT ${SecTranslations} "Translation catalogs. You can skip installing these if you only want to see the UI in US English"
376  !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Application shortcuts"
377  !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopShortcut} "Create a shortcut to the program on the desktop"
378  !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenuShortcut} "Create shortcuts in the start menu"
379  !insertmacro MUI_DESCRIPTION_TEXT ${SecContextMenuShortcut} "Launch ${PRODUCT_NAME} from the Explorer context menu"
380!insertmacro MUI_FUNCTION_DESCRIPTION_END
381
382
383;------------------------------------
384; Uninstall Section
385;------------------------------------
386Section Uninstall
387  !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
388  Delete /rebootok "$DESKTOP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
389  Delete /rebootok "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
390  Delete /rebootok "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall ${PRODUCT_NAME}.lnk"
391  RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
392
393  Delete /rebootok "$INSTDIR\bin\${PRODUCT_EXE_NAME}"
394
395  RMDir /r "$INSTDIR\lib\pango"
396  RMDir /r "$INSTDIR\lib\gtk-3.0"
397  RMDir /r "$INSTDIR\lib\gdk-pixbuf-2.0"
398  RMDir /r "$INSTDIR\etc\gtk-3.0"
399  RMDir /r "$INSTDIR\etc\fonts"
400
401  Delete /rebootok "$INSTDIR\bin\zlib1.dll"
402  Delete /rebootok "$INSTDIR\bin\gtk-update-icon-cache.exe"
403  Delete /rebootok "$INSTDIR\bin\gspawn-win32-helper.exe"
404  Delete /rebootok "$INSTDIR\bin\glib-compile-schemas.exe"
405  Delete /rebootok "$INSTDIR\bin\libwinpthread-1.dll"
406  Delete /rebootok "$INSTDIR\bin\libwavpack-1.dll"
407  Delete /rebootok "$INSTDIR\bin\libvorbisfile-3.dll"
408  Delete /rebootok "$INSTDIR\bin\libvorbis-0.dll"
409  Delete /rebootok "$INSTDIR\bin\libtag.dll"
410  Delete /rebootok "$INSTDIR\bin\libstdc++-6.dll"
411  Delete /rebootok "$INSTDIR\bin\libspeex-1.dll"
412  Delete /rebootok "$INSTDIR\bin\libpng16-16.dll"
413  Delete /rebootok "$INSTDIR\bin\libpixman-1-0.dll"
414  Delete /rebootok "$INSTDIR\bin\libpcre-1.dll"
415  Delete /rebootok "$INSTDIR\bin\libpangowin32-1.0-0.dll"
416  Delete /rebootok "$INSTDIR\bin\libpangocairo-1.0-0.dll"
417  Delete /rebootok "$INSTDIR\bin\libpango-1.0-0.dll"
418  Delete /rebootok "$INSTDIR\bin\libopusfile-0.dll"
419  Delete /rebootok "$INSTDIR\bin\libopus-0.dll"
420  Delete /rebootok "$INSTDIR\bin\libogg-0.dll"
421  Delete /rebootok "$INSTDIR\bin\libintl-8.dll"
422  Delete /rebootok "$INSTDIR\bin\libid3tag-0.dll"
423  Delete /rebootok "$INSTDIR\bin\libid3-3-8-3.dll"
424  Delete /rebootok "$INSTDIR\bin\libgtk-3-0.dll"
425  Delete /rebootok "$INSTDIR\bin\libgobject-2.0-0.dll"
426  Delete /rebootok "$INSTDIR\bin\libgmodule-2.0-0.dll"
427  Delete /rebootok "$INSTDIR\bin\libglib-2.0-0.dll"
428  Delete /rebootok "$INSTDIR\bin\libgio-2.0-0.dll"
429  Delete /rebootok "$INSTDIR\bin\libgdk_pixbuf-2.0-0.dll"
430  Delete /rebootok "$INSTDIR\bin\libgdk-3-0.dll"
431  Delete /rebootok "$INSTDIR\bin\libgcc_s_sjlj-1.dll"
432  Delete /rebootok "$INSTDIR\bin\libfreetype-6.dll"
433  Delete /rebootok "$INSTDIR\bin\libfontconfig-1.dll"
434  Delete /rebootok "$INSTDIR\bin\libffi-6.dll"
435  Delete /rebootok "$INSTDIR\bin\libFLAC-8.dll"
436  Delete /rebootok "$INSTDIR\bin\libexpat-1.dll"
437  Delete /rebootok "$INSTDIR\bin\libepoxy-0.dll"
438  Delete /rebootok "$INSTDIR\bin\libcairo-gobject-2.dll"
439  Delete /rebootok "$INSTDIR\bin\libcairo-2.dll"
440  Delete /rebootok "$INSTDIR\bin\libbz2-1.dll"
441  Delete /rebootok "$INSTDIR\bin\libatk-1.0-0.dll"
442  Delete /rebootok "$INSTDIR\bin\iconv.dll"
443  RMDir /r "$INSTDIR\usr"
444  RMDir /r "$INSTDIR\share"
445  RMDir /r "$INSTDIR\lib"
446  RMDir /r "$INSTDIR\etc"
447  Delete "$INSTDIR\${PRODUCT_NAME}.url"
448  Delete "$INSTDIR\Uninstall ${PRODUCT_NAME}.exe"
449  Delete "$INSTDIR\ChangeLog.txt"
450  Delete "$INSTDIR\COPYING.txt"
451  Delete "$INSTDIR\bin\${PRODUCT_EXE_NAME}"
452  Delete "$INSTDIR\README.txt"
453  RMDir /r "$INSTDIR\lib\locale\"
454
455  Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall ${PRODUCT_NAME}.lnk"
456  Delete "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME} Website.lnk"
457  Delete "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
458  Delete "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME} Documentation.lnk"
459
460  Delete "$DESKTOP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
461
462  RMDir "$SMPROGRAMS\$ICONS_GROUP"
463  RMDir "$INSTDIR"
464
465  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
466  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
467  ; Delete "Browse with EasyTAG" context menu
468  DeleteRegKey HKCR "Directory\shell\${PRODUCT_NAME}"
469
470  ; Delete personal settings?
471  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \
472             "Do you want to remove your personal settings?" IDYES deletesettings IDNO dontdeletesettings
473  deletesettings:
474    ; Get 'Application Data' user's directory
475    RMDir /r "$LOCALAPPDATA\@PACKAGE_TARNAME@"
476  dontdeletesettings:
477
478  SetAutoClose true
479SectionEnd
480
481
482Function un.onInit
483!insertmacro MUI_UNGETLANGUAGE
484  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
485  Abort
486FunctionEnd
487