friseb123@17
|
1 ;NSIS Modern User Interface version 1.63
|
friseb123@17
|
2 ;MultiLanguage Example Script
|
friseb123@17
|
3 ;Written by Joost Verburg
|
friseb123@17
|
4 !define MUI_PRODUCT "KDiff3" ;Define your own software name here
|
friseb123@22
|
5 !include "version.nsi"
|
friseb123@17
|
6 !ifndef MUI_VERSION
|
friseb123@22
|
7 !define MUI_VERSION "" ;Define your own software version here
|
friseb123@17
|
8 !endif
|
friseb123@17
|
9 !ifndef QTDIR
|
friseb123@45
|
10 !define QTDIR "f:\qt\3.2.2"
|
friseb123@17
|
11 !endif
|
friseb123@17
|
12 !ifndef WINDOWS_DIR
|
friseb123@17
|
13 !define WINDOWS_DIR "c:\windows"
|
friseb123@17
|
14 !endif
|
friseb123@17
|
15 !include "MUI.nsh"
|
friseb123@17
|
16
|
friseb123@32
|
17
|
friseb123@32
|
18
|
friseb123@17
|
19 ;--------------------------------
|
friseb123@17
|
20 ;Configuration
|
friseb123@17
|
21 InstallDir "$PROGRAMFILES\KDiff3"
|
friseb123@17
|
22 InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${MUI_PRODUCT}" ""
|
friseb123@17
|
23 ;DirShow show ; (make this hide to not let the user change it)
|
friseb123@17
|
24 ;DirText "Select the directory to install ${MUI_PRODUCT} in:"
|
friseb123@17
|
25
|
friseb123@17
|
26
|
friseb123@17
|
27 ;General
|
friseb123@47
|
28 !ifndef DEBUG
|
friseb123@17
|
29 OutFile "KDiff3Setup_${MUI_VERSION}.exe"
|
friseb123@47
|
30 !else
|
friseb123@48
|
31 OutFile "KDiff3SetupDebug.exe"
|
friseb123@47
|
32 !endif
|
friseb123@22
|
33 setCompressor bzip2
|
friseb123@17
|
34
|
friseb123@17
|
35
|
friseb123@17
|
36
|
friseb123@17
|
37 ;Remember the installer language
|
friseb123@17
|
38 !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
friseb123@17
|
39 !define MUI_LANGDLL_REGISTRY_KEY "Software\${MUI_PRODUCT}"
|
friseb123@17
|
40 !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
friseb123@17
|
41 ;Remember the Start Menu Folder
|
friseb123@17
|
42 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
friseb123@17
|
43 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${MUI_PRODUCT}"
|
friseb123@17
|
44 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${MUI_PRODUCT}"
|
friseb123@17
|
45 !define TEMP $R0
|
friseb123@17
|
46
|
friseb123@17
|
47 ;--------------------------------
|
friseb123@17
|
48 ;Modern UI Configuration
|
friseb123@17
|
49
|
friseb123@17
|
50 !define MUI_LICENSEPAGE
|
friseb123@17
|
51 !define MUI_COMPONENTSPAGE
|
friseb123@17
|
52 !define MUI_DIRECTORYPAGE
|
friseb123@17
|
53 !define MUI_STARTMENUPAGE
|
friseb123@17
|
54
|
friseb123@17
|
55 !define MUI_ABORTWARNING
|
friseb123@17
|
56
|
friseb123@17
|
57 !define MUI_UNINSTALLER
|
friseb123@17
|
58 !define MUI_UNCONFIRMPAGE
|
friseb123@22
|
59 !define MUI_HEADERBITMAP "kdiff3.bmp"
|
friseb123@17
|
60 ;--------------------------------
|
friseb123@17
|
61 ;Languages
|
friseb123@17
|
62
|
friseb123@17
|
63 !insertmacro MUI_LANGUAGE "English"
|
friseb123@17
|
64 !insertmacro MUI_LANGUAGE "French"
|
friseb123@17
|
65 !insertmacro MUI_LANGUAGE "German"
|
friseb123@17
|
66 !insertmacro MUI_LANGUAGE "Spanish"
|
friseb123@17
|
67 !insertmacro MUI_LANGUAGE "SimpChinese"
|
friseb123@17
|
68 !insertmacro MUI_LANGUAGE "TradChinese"
|
friseb123@17
|
69 !insertmacro MUI_LANGUAGE "Japanese"
|
friseb123@17
|
70 !insertmacro MUI_LANGUAGE "Korean"
|
friseb123@17
|
71 !insertmacro MUI_LANGUAGE "Italian"
|
friseb123@17
|
72 !insertmacro MUI_LANGUAGE "Dutch"
|
friseb123@17
|
73 !insertmacro MUI_LANGUAGE "Danish"
|
friseb123@17
|
74 !insertmacro MUI_LANGUAGE "Greek"
|
friseb123@17
|
75 !insertmacro MUI_LANGUAGE "Russian"
|
friseb123@17
|
76 !insertmacro MUI_LANGUAGE "PortugueseBR"
|
friseb123@17
|
77 !insertmacro MUI_LANGUAGE "Polish"
|
friseb123@17
|
78 !insertmacro MUI_LANGUAGE "Ukrainian"
|
friseb123@17
|
79 !insertmacro MUI_LANGUAGE "Czech"
|
friseb123@17
|
80 !insertmacro MUI_LANGUAGE "Slovak"
|
friseb123@17
|
81 !insertmacro MUI_LANGUAGE "Croatian"
|
friseb123@17
|
82 !insertmacro MUI_LANGUAGE "Bulgarian"
|
friseb123@17
|
83 !insertmacro MUI_LANGUAGE "Hungarian"
|
friseb123@17
|
84 !insertmacro MUI_LANGUAGE "Thai"
|
friseb123@17
|
85 !insertmacro MUI_LANGUAGE "Romanian"
|
friseb123@17
|
86 !insertmacro MUI_LANGUAGE "Macedonian"
|
friseb123@17
|
87 !insertmacro MUI_LANGUAGE "Turkish"
|
friseb123@17
|
88
|
friseb123@17
|
89 ;--------------------------------
|
friseb123@17
|
90 ;Language Strings
|
friseb123@17
|
91
|
friseb123@17
|
92 ;Descriptions
|
friseb123@17
|
93 LangString DESC_SecCopyUI ${LANG_ENGLISH} "Software: English description"
|
friseb123@17
|
94 LangString DESC_SecCopyUI ${LANG_FRENCH} "Software: French description"
|
friseb123@17
|
95 LangString DESC_SecCopyUI ${LANG_GERMAN} "Software: German description"
|
friseb123@17
|
96 LangString DESC_SecCopyUI ${LANG_SPANISH} "Software: Spanish description"
|
friseb123@17
|
97 LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "Software: Simplified Chinese description"
|
friseb123@17
|
98 LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "Software: Traditional Chinese description"
|
friseb123@17
|
99 LangString DESC_SecCopyUI ${LANG_JAPANESE} "Software: Japanese description"
|
friseb123@17
|
100 LangString DESC_SecCopyUI ${LANG_KOREAN} "Software: Korean description"
|
friseb123@17
|
101 LangString DESC_SecCopyUI ${LANG_ITALIAN} "Software: Italian description"
|
friseb123@17
|
102 LangString DESC_SecCopyUI ${LANG_DUTCH} "Software: Dutch description"
|
friseb123@17
|
103 LangString DESC_SecCopyUI ${LANG_DANISH} "Software: Danish description"
|
friseb123@17
|
104 LangString DESC_SecCopyUI ${LANG_GREEK} "Software: Greek description"
|
friseb123@17
|
105 LangString DESC_SecCopyUI ${LANG_RUSSIAN} "Software: Russian description"
|
friseb123@17
|
106 LangString DESC_SecCopyUI ${LANG_PORTUGUESEBR} "Software: Portuguese (Brasil) description"
|
friseb123@17
|
107 LangString DESC_SecCopyUI ${LANG_POLISH} "Software: Polish description"
|
friseb123@17
|
108 LangString DESC_SecCopyUI ${LANG_UKRAINIAN} "Software: Ukrainian description"
|
friseb123@17
|
109 LangString DESC_SecCopyUI ${LANG_CZECH} "Software: Czechian description"
|
friseb123@17
|
110 LangString DESC_SecCopyUI ${LANG_SLOVAK} "Software: Slovakian description"
|
friseb123@17
|
111 LangString DESC_SecCopyUI ${LANG_CROATIAN} "Software: Slovakian description"
|
friseb123@17
|
112 LangString DESC_SecCopyUI ${LANG_BULGARIAN} "Software: Bulgarian description"
|
friseb123@17
|
113 LangString DESC_SecCopyUI ${LANG_HUNGARIAN} "Software: Hungarian description"
|
friseb123@17
|
114 LangString DESC_SecCopyUI ${LANG_THAI} "Software: Thai description"
|
friseb123@17
|
115 LangString DESC_SecCopyUI ${LANG_ROMANIAN} "Software: Romanian description"
|
friseb123@17
|
116 LangString DESC_SecCopyUI ${LANG_MACEDONIAN} "Software: Macedonian description"
|
friseb123@17
|
117 LangString DESC_SecCopyUI ${LANG_TURKISH} "Software: Turkish description"
|
friseb123@17
|
118
|
friseb123@17
|
119 ;--------------------------------
|
friseb123@17
|
120 ;Data
|
friseb123@17
|
121
|
friseb123@18
|
122 LicenseData /LANG=${LANG_ENGLISH} "..\COPYING"
|
friseb123@18
|
123 LicenseData /LANG=${LANG_FRENCH} "..\COPYING"
|
friseb123@18
|
124 LicenseData /LANG=${LANG_GERMAN} "..\COPYING"
|
friseb123@18
|
125 LicenseData /LANG=${LANG_SPANISH} "..\COPYING"
|
friseb123@18
|
126 LicenseData /LANG=${LANG_SIMPCHINESE} "..\COPYING"
|
friseb123@18
|
127 LicenseData /LANG=${LANG_TRADCHINESE} "..\COPYING"
|
friseb123@18
|
128 LicenseData /LANG=${LANG_JAPANESE} "..\COPYING"
|
friseb123@18
|
129 LicenseData /LANG=${LANG_KOREAN} "..\COPYING"
|
friseb123@18
|
130 LicenseData /LANG=${LANG_ITALIAN} "..\COPYING"
|
friseb123@18
|
131 LicenseData /LANG=${LANG_DUTCH} "..\COPYING"
|
friseb123@18
|
132 LicenseData /LANG=${LANG_DANISH} "..\COPYING"
|
friseb123@18
|
133 LicenseData /LANG=${LANG_GREEK} "..\COPYING"
|
friseb123@18
|
134 LicenseData /LANG=${LANG_RUSSIAN} "..\COPYING"
|
friseb123@18
|
135 LicenseData /LANG=${LANG_PORTUGUESEBR} "..\COPYING"
|
friseb123@18
|
136 LicenseData /LANG=${LANG_POLISH} "..\COPYING"
|
friseb123@18
|
137 LicenseData /LANG=${LANG_UKRAINIAN} "..\COPYING"
|
friseb123@18
|
138 LicenseData /LANG=${LANG_CZECH} "..\COPYING"
|
friseb123@18
|
139 LicenseData /LANG=${LANG_SLOVAK} "..\COPYING"
|
friseb123@18
|
140 LicenseData /LANG=${LANG_CROATIAN} "..\COPYING"
|
friseb123@18
|
141 LicenseData /LANG=${LANG_BULGARIAN} "..\COPYING"
|
friseb123@18
|
142 LicenseData /LANG=${LANG_HUNGARIAN} "..\COPYING"
|
friseb123@18
|
143 LicenseData /LANG=${LANG_THAI} "..\COPYING"
|
friseb123@18
|
144 LicenseData /LANG=${LANG_ROMANIAN} "..\COPYING"
|
friseb123@18
|
145 LicenseData /LANG=${LANG_MACEDONIAN} "..\COPYING"
|
friseb123@18
|
146 LicenseData /LANG=${LANG_TURKISH} "..\COPYING"
|
friseb123@17
|
147
|
friseb123@17
|
148 ;--------------------------------
|
friseb123@17
|
149 ;Reserve Files
|
friseb123@17
|
150
|
friseb123@17
|
151 ;Things that need to be extracted on first (keep these lines before any File command!)
|
friseb123@17
|
152 ;Only useful for BZIP2 compression
|
friseb123@17
|
153 !insertmacro MUI_RESERVEFILE_LANGDLL
|
friseb123@17
|
154
|
friseb123@17
|
155 ;--------------------------------
|
friseb123@17
|
156 ;Installer Sections
|
friseb123@17
|
157
|
friseb123@17
|
158 Section "Software" SecCopyUI 2
|
friseb123@17
|
159 SectionIn 2 RO
|
friseb123@17
|
160
|
friseb123@17
|
161 SetOutPath "$INSTDIR"
|
friseb123@17
|
162 ; add files / whatever that need to be installed here.
|
friseb123@17
|
163 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\${MUI_PRODUCT}" "" "$INSTDIR"
|
friseb123@17
|
164 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}" "DisplayName" "${MUI_PRODUCT} (remove only)"
|
friseb123@17
|
165 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}" "UninstallString" '"$INSTDIR\uninst.exe"'
|
friseb123@32
|
166 DetailPrint "Writing files"
|
friseb123@18
|
167 File "kdiff3.exe"
|
friseb123@32
|
168 File "..\binaries\windows\diff.exe"
|
friseb123@18
|
169 File "..\COPYING"
|
friseb123@17
|
170 File "${WINDOWS_DIR}\system32\msvcp70.dll"
|
friseb123@17
|
171 File "${WINDOWS_DIR}\system32\msvcr70.dll"
|
friseb123@17
|
172 File "${QTDIR}\lib\qt-mt*.dll"
|
friseb123@22
|
173 ; File "*.qm"
|
friseb123@17
|
174
|
friseb123@17
|
175 !insertmacro MUI_STARTMENU_WRITE_BEGIN
|
friseb123@17
|
176
|
friseb123@32
|
177 DetailPrint "Creating shortcuts"
|
friseb123@17
|
178 CreateDirectory "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}"
|
friseb123@17
|
179 CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\KDiff3.lnk" "$INSTDIR\kdiff3.exe"
|
friseb123@17
|
180 CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Uninstal.lnk" "$INSTDIR\uninst.exe"
|
friseb123@17
|
181
|
friseb123@17
|
182 !insertmacro MUI_STARTMENU_WRITE_END
|
friseb123@17
|
183
|
friseb123@17
|
184
|
friseb123@17
|
185 ; write out uninstaller
|
friseb123@17
|
186 WriteUninstaller "$INSTDIR\uninst.exe"
|
friseb123@17
|
187
|
friseb123@17
|
188
|
friseb123@17
|
189 ;Store install folder
|
friseb123@17
|
190 WriteRegStr HKCU "Software\${MUI_PRODUCT}" "" $INSTDIR
|
friseb123@32
|
191 CreateShortCut "$QUICKLAUNCH\KDiff3.lnk" "$INSTDIR\kdiff3.exe"
|
friseb123@32
|
192
|
friseb123@17
|
193 SectionEnd
|
friseb123@17
|
194
|
friseb123@22
|
195 Section "Documentation"
|
friseb123@22
|
196
|
friseb123@32
|
197 DetailPrint "Writing the documentation"
|
friseb123@23
|
198 SetOutPath "$INSTDIR"
|
friseb123@23
|
199 File /r tmp\kdiff3.sourceforge.net\doc
|
friseb123@23
|
200 SetOutPath "$INSTDIR"
|
friseb123@23
|
201 CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Documentation.lnk" "$INSTDIR\doc\index.html"
|
friseb123@32
|
202 WriteRegStr HKCR "Application\kdiff3.exe\shell\open\command" "" '"$INSTDIR\kdiff3.exe" "%1"'
|
friseb123@22
|
203 SectionEnd
|
friseb123@22
|
204
|
friseb123@22
|
205 SubSection "Integration"
|
friseb123@22
|
206 Section "WinCVS"
|
friseb123@23
|
207 DetailPrint "Integration to WinCVS"
|
friseb123@23
|
208 MessageBox MB_OK "Please close WinCVS"
|
friseb123@38
|
209 WriteRegStr HKCU "Software\WinCvs\wincvs\CVS settings" "P_Extdiff" '$INSTDIR\kdiff3.exe'
|
friseb123@23
|
210 WriteRegBin HKCU "Software\WinCvs\wincvs\CVS settings" "P_DiffUseExtDiff" 01
|
friseb123@20
|
211
|
friseb123@22
|
212 SectionEnd
|
friseb123@32
|
213 Section "Explorer"
|
friseb123@32
|
214 DetailPrint "Integration to Explorer"
|
friseb123@38
|
215 ; WriteRegStr HKCR "Directory\shell}\KDiff3" "" '&KDiff3'
|
friseb123@38
|
216 ; WriteRegStr HKCR "Directory\shell\KDiff3\command" "" '"$INSTDIR\kdiff3.exe" "%1"'
|
friseb123@32
|
217 CreateShortCut "$SMPROGRAMS\..\..\SendTo\KDiff3.lnk" '"$INSTDIR\kdiff3.exe"'
|
friseb123@32
|
218 SectionEnd
|
friseb123@22
|
219 SubSectionEnd
|
friseb123@17
|
220
|
friseb123@45
|
221 !ifdef DEBUG
|
friseb123@49
|
222 Section "Debug"
|
friseb123@49
|
223 DetailPrint "Writing the Source Code"
|
friseb123@49
|
224 SetOutPath "$INSTDIR\"
|
friseb123@49
|
225 File /r tmp\source
|
friseb123@45
|
226 DetailPrint "Writing debug information"
|
friseb123@45
|
227 SetOutPath "$INSTDIR"
|
friseb123@45
|
228 File /oname=kdiff3.pdb kdiff3.pdb
|
friseb123@45
|
229 SectionEnd
|
friseb123@45
|
230 !endif
|
friseb123@45
|
231
|
friseb123@17
|
232 ;Display the Finish header
|
friseb123@17
|
233 ;Insert this macro after the sections if you are not using a finish page
|
friseb123@17
|
234 !insertmacro MUI_SECTIONS_FINISHHEADER
|
friseb123@17
|
235
|
friseb123@17
|
236 ;--------------------------------
|
friseb123@17
|
237 ;Installer Functions
|
friseb123@17
|
238
|
friseb123@17
|
239 Function .onInit
|
friseb123@17
|
240 ; SetOutPath $TEMP1
|
friseb123@17
|
241 ; File /oname=spltmp.bmp "promotion.bmp"
|
friseb123@17
|
242
|
friseb123@17
|
243 ; optional
|
friseb123@17
|
244 ; File /oname=spltmp.wav "my_splashshit.wav"
|
friseb123@17
|
245
|
friseb123@17
|
246 ; advsplash::show 5000 600 40 0 $TEMP1\spltmp
|
friseb123@17
|
247
|
friseb123@17
|
248 ; Pop $0 ; $0 has '1' if the user closed the splash screen early,
|
friseb123@17
|
249 ; '0' if everything closed normal, and '-1' if some error occured.
|
friseb123@17
|
250
|
friseb123@17
|
251 ; Delete $TEMP1\spltmp.bmp
|
friseb123@17
|
252 ; Delete $TEMP1\spltmp.wav
|
friseb123@17
|
253
|
friseb123@17
|
254 !insertmacro MUI_LANGDLL_DISPLAY
|
friseb123@17
|
255
|
friseb123@17
|
256 FunctionEnd
|
friseb123@17
|
257
|
friseb123@17
|
258 ;--------------------------------
|
friseb123@17
|
259 ;Descriptions
|
friseb123@17
|
260
|
friseb123@17
|
261 !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
|
friseb123@17
|
262 !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
|
friseb123@17
|
263 !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
|
friseb123@17
|
264
|
friseb123@17
|
265 ;--------------------------------
|
friseb123@17
|
266 ;Uninstaller Section
|
friseb123@17
|
267
|
friseb123@17
|
268 Section "Uninstall"
|
friseb123@17
|
269
|
friseb123@17
|
270 ; add delete commands to delete whatever files/registry keys/etc you installed here.
|
friseb123@17
|
271 ReadRegStr ${TEMP} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
|
friseb123@17
|
272 StrCmp ${TEMP} "" noshortcuts
|
friseb123@17
|
273
|
friseb123@17
|
274 RMDir /r "$SMPROGRAMS\${TEMP}"
|
friseb123@17
|
275
|
friseb123@17
|
276 noshortcuts:
|
friseb123@17
|
277
|
friseb123@17
|
278 RMDir "$INSTDIR"
|
friseb123@17
|
279 Delete "$INSTDIR\uninst.exe"
|
friseb123@32
|
280 DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}"
|
friseb123@32
|
281
|
friseb123@32
|
282 Delete "$QUICKLAUNCH\KDiff3.lnk"
|
friseb123@32
|
283 RMDir /r "$INSTDIR"
|
friseb123@32
|
284 DetailPrint "Integration to Explorer"
|
friseb123@38
|
285 ; DeleteRegKey HKCR "Directory\shell\KDiff3\command"
|
friseb123@38
|
286 ; DeleteRegKey HKCR "Directory\shell\KDiff3"
|
friseb123@32
|
287 Delete "$SMPROGRAMS\..\..\SendTo\KDiff3.lnk"
|
friseb123@32
|
288
|
friseb123@32
|
289 !insertmacro MUI_UNFINISHHEADER
|
friseb123@17
|
290
|
friseb123@17
|
291 SectionEnd
|
friseb123@17
|
292
|
friseb123@17
|
293 ;--------------------------------
|
friseb123@17
|
294 ;Uninstaller Functions
|
friseb123@17
|
295
|
friseb123@17
|
296 Function un.onInit
|
friseb123@17
|
297
|
friseb123@17
|
298 ;Get language from registry
|
friseb123@17
|
299 ReadRegStr $LANGUAGE HKCU "Software\${MUI_PRODUCT}" "Installer Language"
|
friseb123@17
|
300
|
friseb123@17
|
301 FunctionEnd
|
friseb123@17
|
302
|