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@17
|
10 !define QTDIR "f:\qt\3.1.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@23
|
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@32
|
211 WriteRegStr HKCR "Directory\shell}\KDiff3" "" '&KDiff3'
|
friseb123@32
|
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@17
|
217 ;Display the Finish header
|
friseb123@17
|
218 ;Insert this macro after the sections if you are not using a finish page
|
friseb123@17
|
219 !insertmacro MUI_SECTIONS_FINISHHEADER
|
friseb123@17
|
220
|
friseb123@17
|
221 ;--------------------------------
|
friseb123@17
|
222 ;Installer Functions
|
friseb123@17
|
223
|
friseb123@17
|
224 Function .onInit
|
friseb123@17
|
225 ; SetOutPath $TEMP1
|
friseb123@17
|
226 ; File /oname=spltmp.bmp "promotion.bmp"
|
friseb123@17
|
227
|
friseb123@17
|
228 ; optional
|
friseb123@17
|
229 ; File /oname=spltmp.wav "my_splashshit.wav"
|
friseb123@17
|
230
|
friseb123@17
|
231 ; advsplash::show 5000 600 40 0 $TEMP1\spltmp
|
friseb123@17
|
232
|
friseb123@17
|
233 ; Pop $0 ; $0 has '1' if the user closed the splash screen early,
|
friseb123@17
|
234 ; '0' if everything closed normal, and '-1' if some error occured.
|
friseb123@17
|
235
|
friseb123@17
|
236 ; Delete $TEMP1\spltmp.bmp
|
friseb123@17
|
237 ; Delete $TEMP1\spltmp.wav
|
friseb123@17
|
238
|
friseb123@17
|
239 !insertmacro MUI_LANGDLL_DISPLAY
|
friseb123@17
|
240
|
friseb123@17
|
241 FunctionEnd
|
friseb123@17
|
242
|
friseb123@17
|
243 ;--------------------------------
|
friseb123@17
|
244 ;Descriptions
|
friseb123@17
|
245
|
friseb123@17
|
246 !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
|
friseb123@17
|
247 !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
|
friseb123@17
|
248 !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
|
friseb123@17
|
249
|
friseb123@17
|
250 ;--------------------------------
|
friseb123@17
|
251 ;Uninstaller Section
|
friseb123@17
|
252
|
friseb123@17
|
253 Section "Uninstall"
|
friseb123@17
|
254
|
friseb123@17
|
255 ; add delete commands to delete whatever files/registry keys/etc you installed here.
|
friseb123@17
|
256 ReadRegStr ${TEMP} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
|
friseb123@17
|
257 StrCmp ${TEMP} "" noshortcuts
|
friseb123@17
|
258
|
friseb123@17
|
259 RMDir /r "$SMPROGRAMS\${TEMP}"
|
friseb123@17
|
260
|
friseb123@17
|
261 noshortcuts:
|
friseb123@17
|
262
|
friseb123@17
|
263 RMDir "$INSTDIR"
|
friseb123@17
|
264 Delete "$INSTDIR\uninst.exe"
|
friseb123@32
|
265 DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}"
|
friseb123@32
|
266
|
friseb123@32
|
267 Delete "$QUICKLAUNCH\KDiff3.lnk"
|
friseb123@32
|
268 RMDir /r "$INSTDIR"
|
friseb123@32
|
269 DetailPrint "Integration to Explorer"
|
friseb123@32
|
270 DeleteRegKey HKCR "Directory\shell\KDiff3\command"
|
friseb123@32
|
271 DeleteRegKey HKCR "Directory\shell\KDiff3"
|
friseb123@32
|
272 Delete "$SMPROGRAMS\..\..\SendTo\KDiff3.lnk"
|
friseb123@32
|
273
|
friseb123@32
|
274 !insertmacro MUI_UNFINISHHEADER
|
friseb123@17
|
275
|
friseb123@17
|
276 SectionEnd
|
friseb123@17
|
277
|
friseb123@17
|
278 ;--------------------------------
|
friseb123@17
|
279 ;Uninstaller Functions
|
friseb123@17
|
280
|
friseb123@17
|
281 Function un.onInit
|
friseb123@17
|
282
|
friseb123@17
|
283 ;Get language from registry
|
friseb123@17
|
284 ReadRegStr $LANGUAGE HKCU "Software\${MUI_PRODUCT}" "Installer Language"
|
friseb123@17
|
285
|
friseb123@17
|
286 FunctionEnd
|
friseb123@17
|
287
|