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