Installer.nsi 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. !define PRODUCT_VERSION 4.0.2
  2. !define BASE_DIR "..\Binary\${DOLPHIN_ARCH}"
  3. ; HM NIS Edit Wizard helper defines
  4. !define PRODUCT_PUBLISHER "Dolphin Development Team"
  5. !define PRODUCT_WEB_SITE "https://dolphin-emu.org/"
  6. !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\${PRODUCT_NAME}.exe"
  7. !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
  8. !define PRODUCT_UNINST_ROOT_KEY "HKLM"
  9. SetCompressor /SOLID lzma
  10. ; MUI 1.67 compatible ------
  11. !include "MUI.nsh"
  12. ; MUI Settings
  13. !define MUI_ABORTWARNING
  14. !define MUI_ICON "Dolphin.ico"
  15. !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
  16. ; Language Selection Dialog Settings
  17. !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
  18. !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
  19. !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
  20. ; License page
  21. !insertmacro MUI_PAGE_LICENSE "..\License.txt"
  22. ; Directory page
  23. !insertmacro MUI_PAGE_DIRECTORY
  24. ; Instfiles page
  25. !insertmacro MUI_PAGE_INSTFILES
  26. ; Finish page
  27. !insertmacro MUI_PAGE_FINISH
  28. ; Uninstaller pages
  29. !insertmacro MUI_UNPAGE_INSTFILES
  30. ; Language files
  31. !insertmacro MUI_LANGUAGE "Afrikaans"
  32. !insertmacro MUI_LANGUAGE "Albanian"
  33. !insertmacro MUI_LANGUAGE "Arabic"
  34. !insertmacro MUI_LANGUAGE "Basque"
  35. !insertmacro MUI_LANGUAGE "Belarusian"
  36. !insertmacro MUI_LANGUAGE "Bosnian"
  37. !insertmacro MUI_LANGUAGE "Breton"
  38. !insertmacro MUI_LANGUAGE "Bulgarian"
  39. !insertmacro MUI_LANGUAGE "Catalan"
  40. !insertmacro MUI_LANGUAGE "Croatian"
  41. !insertmacro MUI_LANGUAGE "Czech"
  42. !insertmacro MUI_LANGUAGE "Danish"
  43. !insertmacro MUI_LANGUAGE "Dutch"
  44. !insertmacro MUI_LANGUAGE "English"
  45. !insertmacro MUI_LANGUAGE "Estonian"
  46. !insertmacro MUI_LANGUAGE "Farsi"
  47. !insertmacro MUI_LANGUAGE "Finnish"
  48. !insertmacro MUI_LANGUAGE "French"
  49. !insertmacro MUI_LANGUAGE "Galician"
  50. !insertmacro MUI_LANGUAGE "German"
  51. !insertmacro MUI_LANGUAGE "Greek"
  52. !insertmacro MUI_LANGUAGE "Hebrew"
  53. !insertmacro MUI_LANGUAGE "Hungarian"
  54. !insertmacro MUI_LANGUAGE "Icelandic"
  55. !insertmacro MUI_LANGUAGE "Indonesian"
  56. !insertmacro MUI_LANGUAGE "Irish"
  57. !insertmacro MUI_LANGUAGE "Italian"
  58. !insertmacro MUI_LANGUAGE "Japanese"
  59. !insertmacro MUI_LANGUAGE "Korean"
  60. !insertmacro MUI_LANGUAGE "Kurdish"
  61. !insertmacro MUI_LANGUAGE "Latvian"
  62. !insertmacro MUI_LANGUAGE "Lithuanian"
  63. !insertmacro MUI_LANGUAGE "Luxembourgish"
  64. !insertmacro MUI_LANGUAGE "Macedonian"
  65. !insertmacro MUI_LANGUAGE "Malay"
  66. !insertmacro MUI_LANGUAGE "Mongolian"
  67. !insertmacro MUI_LANGUAGE "Norwegian"
  68. !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
  69. !insertmacro MUI_LANGUAGE "Polish"
  70. !insertmacro MUI_LANGUAGE "Portuguese"
  71. !insertmacro MUI_LANGUAGE "PortugueseBR"
  72. !insertmacro MUI_LANGUAGE "Romanian"
  73. !insertmacro MUI_LANGUAGE "Russian"
  74. !insertmacro MUI_LANGUAGE "Serbian"
  75. !insertmacro MUI_LANGUAGE "SerbianLatin"
  76. !insertmacro MUI_LANGUAGE "SimpChinese"
  77. !insertmacro MUI_LANGUAGE "Slovak"
  78. !insertmacro MUI_LANGUAGE "Slovenian"
  79. !insertmacro MUI_LANGUAGE "Spanish"
  80. !insertmacro MUI_LANGUAGE "SpanishInternational"
  81. !insertmacro MUI_LANGUAGE "Swedish"
  82. !insertmacro MUI_LANGUAGE "Thai"
  83. !insertmacro MUI_LANGUAGE "TradChinese"
  84. !insertmacro MUI_LANGUAGE "Turkish"
  85. !insertmacro MUI_LANGUAGE "Ukrainian"
  86. !insertmacro MUI_LANGUAGE "Uzbek"
  87. !insertmacro MUI_LANGUAGE "Welsh"
  88. ; Reserve files
  89. !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
  90. ; MUI end ------
  91. Name "${PRODUCT_NAME}"
  92. !define UN_NAME "Uninstall $(^Name)"
  93. OutFile "dolphin-${DOLPHIN_ARCH}-${PRODUCT_VERSION}.exe"
  94. InstallDir "${BASE_INSTALL_DIR}\$(^Name)"
  95. InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
  96. ShowInstDetails show
  97. ShowUnInstDetails show
  98. Function .onInit
  99. !insertmacro MUI_LANGDLL_DISPLAY
  100. FunctionEnd
  101. Section "Base" SEC01
  102. SectionIn RO
  103. SetShellVarContext all
  104. ; Dolphin exe and dlls
  105. ; TODO: Make a nice subsection-ized display
  106. SetOutPath "$INSTDIR"
  107. SetOverwrite ifnewer
  108. File "${BASE_DIR}\Dolphin.exe"
  109. File "${BASE_DIR}\license.txt"
  110. File "${BASE_DIR}\*.dll"
  111. File /r "${BASE_DIR}\Languages"
  112. File /r "${BASE_DIR}\Sys"
  113. ; This needs to be done after Dolphin.exe is copied
  114. CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
  115. CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\Dolphin.exe"
  116. CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\Dolphin.exe"
  117. SetOutPath "$TEMP"
  118. SetOverwrite on
  119. File /r "dxredist"
  120. SectionEnd
  121. Section "DirectX Runtime" SEC02
  122. SectionIn RO
  123. DetailPrint "Running DirectX runtime setup..."
  124. ExecWait '"$TEMP\dxredist\DXSETUP.exe" /silent'
  125. DetailPrint "Finished DirectX runtime setup"
  126. SectionEnd
  127. Section -AdditionalIcons
  128. CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${UN_NAME}.lnk" "$INSTDIR\uninst.exe"
  129. SectionEnd
  130. Section -Post
  131. WriteUninstaller "$INSTDIR\uninst.exe"
  132. WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Dolphin.exe"
  133. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  134. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  135. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Dolphin.exe"
  136. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  137. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  138. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  139. SectionEnd
  140. Section Uninstall
  141. SetShellVarContext all
  142. ; Only uninstall what we put there; all $INSTDIR\User is left as is
  143. Delete "$INSTDIR\uninst.exe"
  144. Delete "$INSTDIR\license.txt"
  145. Delete "$INSTDIR\*.dll"
  146. Delete "$INSTDIR\Dolphin.exe"
  147. Delete "$SMPROGRAMS\${PRODUCT_NAME}\${UN_NAME}.lnk"
  148. Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
  149. Delete "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk"
  150. RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
  151. RMDir /r "$INSTDIR\Sys"
  152. RMDir /r "$INSTDIR\Languages"
  153. RMDir "$INSTDIR"
  154. DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  155. DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  156. SetAutoClose true
  157. SectionEnd