add ProcessorInterface::Read16. wii64 uses this (by accident), but real hardware...
[dolphin.git] / Installer / Installer_win32.nsi
blob5b16c60517474653de7ee539d74adac942a9ea60
1 !system "GetSVNRev.exe" ; ATTENTION: This MUST be run before this script
2 !include "svnrev.txt" ; !defines PRODUCT_VERSION
3 !define BASE_DIR "..\Binary\win32"
5 ; HM NIS Edit Wizard helper defines
6 !define PRODUCT_NAME "Dolphin"
7 !define PRODUCT_PUBLISHER "Dolphin Team"
8 !define PRODUCT_WEB_SITE "http://www.dolphin-emu.com"
9 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Dolphin.exe"
10 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
11 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
13 SetCompressor lzma
15 ; MUI 1.67 compatible ------
16 !include "MUI.nsh"
18 ; MUI Settings
19 !define MUI_ABORTWARNING
20 !define MUI_ICON "Dolphin.ico"
21 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
23 ; Language Selection Dialog Settings
24 !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
25 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
26 !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
28 ; License page
29 !insertmacro MUI_PAGE_LICENSE "Licence.txt"
30 ; Components page
31 !insertmacro MUI_PAGE_COMPONENTS
32 ; Directory page
33 !insertmacro MUI_PAGE_DIRECTORY
34 ; Instfiles page
35 !insertmacro MUI_PAGE_INSTFILES
36 ; Finish page
37 ; We launch the desktop shortcut to set the working dir
38 !define MUI_FINISHPAGE_RUN
39 !define MUI_FINISHPAGE_RUN_TEXT "Start $(^Name)"
40 !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchDolphin"
41 !insertmacro MUI_PAGE_FINISH
43 ; Uninstaller pages
44 !insertmacro MUI_UNPAGE_INSTFILES
46 ; Language files
47 !insertmacro MUI_LANGUAGE "Afrikaans"
48 !insertmacro MUI_LANGUAGE "Albanian"
49 !insertmacro MUI_LANGUAGE "Arabic"
50 !insertmacro MUI_LANGUAGE "Basque"
51 !insertmacro MUI_LANGUAGE "Belarusian"
52 !insertmacro MUI_LANGUAGE "Bosnian"
53 !insertmacro MUI_LANGUAGE "Breton"
54 !insertmacro MUI_LANGUAGE "Bulgarian"
55 !insertmacro MUI_LANGUAGE "Catalan"
56 !insertmacro MUI_LANGUAGE "Croatian"
57 !insertmacro MUI_LANGUAGE "Czech"
58 !insertmacro MUI_LANGUAGE "Danish"
59 !insertmacro MUI_LANGUAGE "Dutch"
60 !insertmacro MUI_LANGUAGE "English"
61 !insertmacro MUI_LANGUAGE "Estonian"
62 !insertmacro MUI_LANGUAGE "Farsi"
63 !insertmacro MUI_LANGUAGE "Finnish"
64 !insertmacro MUI_LANGUAGE "French"
65 !insertmacro MUI_LANGUAGE "Galician"
66 !insertmacro MUI_LANGUAGE "German"
67 !insertmacro MUI_LANGUAGE "Greek"
68 !insertmacro MUI_LANGUAGE "Hebrew"
69 !insertmacro MUI_LANGUAGE "Hungarian"
70 !insertmacro MUI_LANGUAGE "Icelandic"
71 !insertmacro MUI_LANGUAGE "Indonesian"
72 !insertmacro MUI_LANGUAGE "Irish"
73 !insertmacro MUI_LANGUAGE "Italian"
74 !insertmacro MUI_LANGUAGE "Japanese"
75 !insertmacro MUI_LANGUAGE "Korean"
76 !insertmacro MUI_LANGUAGE "Kurdish"
77 !insertmacro MUI_LANGUAGE "Latvian"
78 !insertmacro MUI_LANGUAGE "Lithuanian"
79 !insertmacro MUI_LANGUAGE "Luxembourgish"
80 !insertmacro MUI_LANGUAGE "Macedonian"
81 !insertmacro MUI_LANGUAGE "Malay"
82 !insertmacro MUI_LANGUAGE "Mongolian"
83 !insertmacro MUI_LANGUAGE "Norwegian"
84 !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
85 !insertmacro MUI_LANGUAGE "Polish"
86 !insertmacro MUI_LANGUAGE "Portuguese"
87 !insertmacro MUI_LANGUAGE "PortugueseBR"
88 !insertmacro MUI_LANGUAGE "Romanian"
89 !insertmacro MUI_LANGUAGE "Russian"
90 !insertmacro MUI_LANGUAGE "Serbian"
91 !insertmacro MUI_LANGUAGE "SerbianLatin"
92 !insertmacro MUI_LANGUAGE "SimpChinese"
93 !insertmacro MUI_LANGUAGE "Slovak"
94 !insertmacro MUI_LANGUAGE "Slovenian"
95 !insertmacro MUI_LANGUAGE "Spanish"
96 !insertmacro MUI_LANGUAGE "SpanishInternational"
97 !insertmacro MUI_LANGUAGE "Swedish"
98 !insertmacro MUI_LANGUAGE "Thai"
99 !insertmacro MUI_LANGUAGE "TradChinese"
100 !insertmacro MUI_LANGUAGE "Turkish"
101 !insertmacro MUI_LANGUAGE "Ukrainian"
102 !insertmacro MUI_LANGUAGE "Uzbek"
103 !insertmacro MUI_LANGUAGE "Welsh"
105 ; Reserve files
106 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
108 ; MUI end ------
110 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
111 !define UN_NAME "Uninstall $(^Name)"
112 OutFile "Dolphin_Installer_win32.exe"
113 InstallDir "$PROGRAMFILES\$(^Name)"
114 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
115 ShowInstDetails show
116 ShowUnInstDetails show
118 Function .onInit
119 !insertmacro MUI_LANGDLL_DISPLAY
120 FunctionEnd
122 Section "Base" SEC01
123 SetShellVarContext all
124 ; Dolphin exe and dlls
125 ; TODO: cg is only for OGL, SDL is only for nJoy
126 ; TODO: Make a nice subsection-ized display
127 SetOutPath "$INSTDIR"
128 SetOverwrite ifnewer
129 File "${BASE_DIR}\Dolphin.exe"
130 File "..\Externals\Cg\cg.dll"
131 File "..\Externals\Cg\cgGL.dll"
132 ; File "..\Externals\Cg\cgD3D9.dll"
133 File "..\Externals\WiiUse\Win32\wiiuse.dll"
134 File "..\Externals\SDL\win32\SDL.dll"
135 File "..\Externals\OpenAL\win32\OpenAL32.dll"
136 File "..\Externals\OpenAL\win32\wrap_oal.dll"
137 ; This needs to be done after Dolphin.exe is copied
138 CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
139 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Dolphin.lnk" "$INSTDIR\Dolphin.exe"
140 CreateShortCut "$DESKTOP\Dolphin.lnk" "$INSTDIR\Dolphin.exe"
142 ; Plugins
143 SetOutPath "$INSTDIR\Plugins"
144 SetOverwrite ifnewer
145 File "${BASE_DIR}\Plugins\Plugin_DSP_HLE.dll"
146 File "${BASE_DIR}\Plugins\Plugin_DSP_LLE.dll"
147 File "${BASE_DIR}\Plugins\Plugin_nJoy_SDL.dll"
148 File "${BASE_DIR}\Plugins\Plugin_nJoy_SDL_Test.dll"
149 File "${BASE_DIR}\Plugins\Plugin_PadSimple.dll"
150 File "${BASE_DIR}\Plugins\Plugin_VideoDX9.dll"
151 File "${BASE_DIR}\Plugins\Plugin_VideoOGL.dll"
152 File "${BASE_DIR}\Plugins\Plugin_Wiimote.dll"
153 File "${BASE_DIR}\Plugins\Plugin_VideoSW.dll"
155 ; GC/Wii static settings
156 SetOutPath "$INSTDIR\Sys\GC"
157 SetOverwrite ifnewer
158 File "..\Data\Sys\GC\font_ansi.bin"
159 File "..\Data\Sys\GC\font_sjis.bin"
160 SetOutPath "$INSTDIR\Sys\Wii"
161 SetOverwrite ifnewer
162 File "..\Data\Sys\Wii\setting-eur.txt"
163 File "..\Data\Sys\Wii\setting-jpn.txt"
164 File "..\Data\Sys\Wii\setting-usa.txt"
166 ; GC/Wii User settings
167 SetOutPath "$INSTDIR\User\GC"
168 SetOutPath "$INSTDIR\User\Wii\shared2\sys"
169 SetOverwrite ifnewer
170 File "..\Data\User\Wii\shared2\sys\readme.txt"
171 File "..\Data\User\Wii\shared2\sys\SYSCONF"
173 ; GameConfigs
174 SetOutPath "$INSTDIR\User\GameConfig"
175 SetOverwrite ifnewer
176 File "..\Data\User\GameConfig\*.*"
177 SectionEnd
179 Section -AdditionalIcons
180 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${UN_NAME}.lnk" "$INSTDIR\uninst.exe"
181 SectionEnd
183 Section -Post
184 WriteUninstaller "$INSTDIR\uninst.exe"
185 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Dolphin.exe"
186 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
187 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
188 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Dolphin.exe"
189 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
190 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
191 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
192 SectionEnd
194 ; Section descriptions
195 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
196 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "It is recommended that you install all of the included files."
197 !insertmacro MUI_FUNCTION_DESCRIPTION_END
200 Function un.onUninstSuccess
201 HideWindow
202 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was uninstalled successfully.$\r$\n\
203 ATTENTION: You must manually delete$\r$\n$INSTDIR"
204 FunctionEnd
206 Function un.onInit
207 !insertmacro MUI_UNGETLANGUAGE
208 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to remove $(^Name)?" IDYES +2
209 Abort
210 FunctionEnd
212 Section Uninstall
213 SetShellVarContext all
214 ; Only uninstall what we put there; all $INSTDIR\User is left as is
215 Delete "$INSTDIR\uninst.exe"
216 Delete "$INSTDIR\*.dll"
217 Delete "$INSTDIR\Plugins\*.dll"
218 Delete "$INSTDIR\Sys\Wii\setting-usa.txt"
219 Delete "$INSTDIR\Sys\Wii\setting-jpn.txt"
220 Delete "$INSTDIR\Sys\Wii\setting-eur.txt"
221 Delete "$INSTDIR\Sys\GC\font_sjis.bin"
222 Delete "$INSTDIR\Sys\GC\font_ansi.bin"
223 Delete "$INSTDIR\Dolphin.exe"
225 Delete "$SMPROGRAMS\${PRODUCT_NAME}\${UN_NAME}.lnk"
226 Delete "$DESKTOP\Dolphin.lnk"
227 Delete "$SMPROGRAMS\${PRODUCT_NAME}\Dolphin.lnk"
229 RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
230 RMDir "$INSTDIR\Sys\GC"
231 RMDir "$INSTDIR\Sys\Wii"
232 RMDir "$INSTDIR\Sys"
233 RMDir "$INSTDIR\Plugins"
234 RMDir "$INSTDIR"
236 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
237 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
238 SetAutoClose true
239 SectionEnd
241 Function LaunchDolphin
242 ExecShell "" "$DESKTOP\Dolphin.lnk"
243 FunctionEnd