joachim99@74
|
1 ;KDiff3-NSIS configuration
|
joachim99@74
|
2 ;Based on Modern User Interface example files
|
joachim99@66
|
3 ;Apdapted for KDiff3 by Sebastien Fricker and Joachim Eibl
|
joachim99@75
|
4 ;Requires nsis_v2.19
|
joachim99@66
|
5
|
joachim99@94
|
6 !define KDIFF3_VERSION "0.9.95"
|
joachim99@94
|
7 !define DIFF_EXT32_CLSID "{9F8528E4-AB20-456E-84E5-3CE69D8720F3}"
|
joachim99@94
|
8 !define DIFF_EXT64_CLSID "{34471FFB-4002-438b-8952-E4588D0C0FE9}"
|
joachim99@66
|
9
|
joachim99@66
|
10 ;--------------------------------
|
joachim99@74
|
11 ;Include Modern UI
|
joachim99@66
|
12
|
joachim99@74
|
13 !include "MUI.nsh"
|
joachim99@94
|
14 !include "x64.nsh"
|
joachim99@66
|
15
|
joachim99@74
|
16 ;--------------------------------
|
joachim99@74
|
17 ;General
|
joachim99@74
|
18
|
joachim99@74
|
19 ;Name and file
|
joachim99@74
|
20 Name "KDiff3"
|
joachim99@74
|
21 OutFile "KDiff3Setup_${KDIFF3_VERSION}.exe"
|
joachim99@74
|
22
|
joachim99@74
|
23 ;Default installation folder
|
joachim99@74
|
24 InstallDir "$PROGRAMFILES\KDiff3"
|
joachim99@66
|
25
|
joachim99@74
|
26 ;Get installation folder from registry if available
|
joachim99@74
|
27 InstallDirRegKey HKCU "Software\KDiff3" ""
|
joachim99@78
|
28
|
joachim99@78
|
29 !addplugindir ".\nsisplugins"
|
joachim99@74
|
30
|
joachim99@74
|
31 ;--------------------------------
|
joachim99@74
|
32 ;Variables
|
joachim99@74
|
33
|
joachim99@74
|
34 Var MUI_TEMP
|
joachim99@74
|
35 Var STARTMENU_FOLDER
|
joachim99@94
|
36 Var DIFF_EXT_CLSID
|
joachim99@94
|
37 Var DIFF_EXT_DLL
|
joachim99@94
|
38 Var DIFF_EXT_OLD_DLL
|
joachim99@94
|
39
|
joachim99@74
|
40 ;--------------------------------
|
joachim99@74
|
41 ;Interface Settings
|
joachim99@74
|
42
|
joachim99@74
|
43 !define MUI_ABORTWARNING
|
joachim99@74
|
44 !define MUI_HEADERIMAGE
|
joachim99@74
|
45 !define MUI_HEADERIMAGE_BITMAP "kdiff3.bmp" ; optional
|
joachim99@74
|
46
|
joachim99@74
|
47 ;--------------------------------
|
joachim99@74
|
48 ;Language Selection Dialog Settings
|
joachim99@74
|
49
|
joachim99@66
|
50 ;Remember the installer language
|
joachim99@66
|
51 !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
joachim99@74
|
52 !define MUI_LANGDLL_REGISTRY_KEY "Software\KDiff3"
|
joachim99@66
|
53 !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
joachim99@66
|
54
|
joachim99@66
|
55 ;--------------------------------
|
joachim99@74
|
56 ;Pages
|
joachim99@66
|
57
|
joachim99@75
|
58 ;!insertmacro MUI_PAGE_WELCOME
|
joachim99@74
|
59 !insertmacro MUI_PAGE_LICENSE $(MUILicense)
|
joachim99@74
|
60 !insertmacro MUI_PAGE_COMPONENTS
|
joachim99@74
|
61 !insertmacro MUI_PAGE_DIRECTORY
|
joachim99@75
|
62 Page custom CustomPageC
|
joachim99@66
|
63
|
joachim99@74
|
64 ;Start Menu Folder Page Configuration
|
joachim99@74
|
65 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
joachim99@74
|
66 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\KDiff3"
|
joachim99@74
|
67 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
joachim99@66
|
68
|
joachim99@74
|
69 !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
joachim99@74
|
70
|
joachim99@74
|
71 !insertmacro MUI_PAGE_INSTFILES
|
joachim99@74
|
72
|
joachim99@75
|
73 !define MUI_FINISHPAGE_RUN KDiff3.exe
|
joachim99@75
|
74 !define MUI_FINISHPAGE_RUN_NOTCHECKED
|
joachim99@75
|
75 !define MUI_FINISHPAGE_SHOWREADME README_WIN.txt
|
joachim99@78
|
76 !define MUI_FINISHPAGE_SHOWREADME_CHECKED
|
joachim99@75
|
77
|
joachim99@75
|
78 !insertmacro MUI_PAGE_FINISH
|
joachim99@75
|
79
|
joachim99@74
|
80 !insertmacro MUI_UNPAGE_CONFIRM
|
joachim99@74
|
81 !insertmacro MUI_UNPAGE_INSTFILES
|
joachim99@74
|
82
|
joachim99@66
|
83 ;--------------------------------
|
joachim99@66
|
84 ;Languages
|
joachim99@66
|
85
|
joachim99@74
|
86 !insertmacro MUI_LANGUAGE "English" # first language is the default language
|
joachim99@66
|
87 !insertmacro MUI_LANGUAGE "French"
|
joachim99@66
|
88 !insertmacro MUI_LANGUAGE "German"
|
joachim99@66
|
89 !insertmacro MUI_LANGUAGE "Spanish"
|
joachim99@66
|
90 !insertmacro MUI_LANGUAGE "SimpChinese"
|
joachim99@74
|
91 !insertmacro MUI_LANGUAGE "TradChinese"
|
joachim99@66
|
92 !insertmacro MUI_LANGUAGE "Japanese"
|
joachim99@66
|
93 !insertmacro MUI_LANGUAGE "Korean"
|
joachim99@66
|
94 !insertmacro MUI_LANGUAGE "Italian"
|
joachim99@66
|
95 !insertmacro MUI_LANGUAGE "Dutch"
|
joachim99@66
|
96 !insertmacro MUI_LANGUAGE "Danish"
|
joachim99@74
|
97 !insertmacro MUI_LANGUAGE "Swedish"
|
joachim99@74
|
98 !insertmacro MUI_LANGUAGE "Norwegian"
|
joachim99@74
|
99 !insertmacro MUI_LANGUAGE "Finnish"
|
joachim99@66
|
100 !insertmacro MUI_LANGUAGE "Greek"
|
joachim99@66
|
101 !insertmacro MUI_LANGUAGE "Russian"
|
joachim99@74
|
102 !insertmacro MUI_LANGUAGE "Portuguese"
|
joachim99@66
|
103 !insertmacro MUI_LANGUAGE "PortugueseBR"
|
joachim99@66
|
104 !insertmacro MUI_LANGUAGE "Polish"
|
joachim99@66
|
105 !insertmacro MUI_LANGUAGE "Ukrainian"
|
joachim99@66
|
106 !insertmacro MUI_LANGUAGE "Czech"
|
joachim99@66
|
107 !insertmacro MUI_LANGUAGE "Slovak"
|
joachim99@66
|
108 !insertmacro MUI_LANGUAGE "Croatian"
|
joachim99@66
|
109 !insertmacro MUI_LANGUAGE "Bulgarian"
|
joachim99@66
|
110 !insertmacro MUI_LANGUAGE "Hungarian"
|
joachim99@66
|
111 !insertmacro MUI_LANGUAGE "Thai"
|
joachim99@66
|
112 !insertmacro MUI_LANGUAGE "Romanian"
|
joachim99@74
|
113 !insertmacro MUI_LANGUAGE "Latvian"
|
joachim99@66
|
114 !insertmacro MUI_LANGUAGE "Macedonian"
|
joachim99@74
|
115 !insertmacro MUI_LANGUAGE "Estonian"
|
joachim99@66
|
116 !insertmacro MUI_LANGUAGE "Turkish"
|
joachim99@74
|
117 !insertmacro MUI_LANGUAGE "Lithuanian"
|
joachim99@74
|
118 !insertmacro MUI_LANGUAGE "Catalan"
|
joachim99@74
|
119 !insertmacro MUI_LANGUAGE "Slovenian"
|
joachim99@74
|
120 !insertmacro MUI_LANGUAGE "Serbian"
|
joachim99@74
|
121 !insertmacro MUI_LANGUAGE "SerbianLatin"
|
joachim99@74
|
122 !insertmacro MUI_LANGUAGE "Arabic"
|
joachim99@74
|
123 !insertmacro MUI_LANGUAGE "Farsi"
|
joachim99@74
|
124 !insertmacro MUI_LANGUAGE "Hebrew"
|
joachim99@74
|
125 !insertmacro MUI_LANGUAGE "Indonesian"
|
joachim99@74
|
126 !insertmacro MUI_LANGUAGE "Mongolian"
|
joachim99@74
|
127 !insertmacro MUI_LANGUAGE "Luxembourgish"
|
joachim99@74
|
128 !insertmacro MUI_LANGUAGE "Albanian"
|
joachim99@74
|
129 !insertmacro MUI_LANGUAGE "Breton"
|
joachim99@74
|
130 !insertmacro MUI_LANGUAGE "Belarusian"
|
joachim99@74
|
131 !insertmacro MUI_LANGUAGE "Icelandic"
|
joachim99@74
|
132 !insertmacro MUI_LANGUAGE "Malay"
|
joachim99@74
|
133 !insertmacro MUI_LANGUAGE "Bosnian"
|
joachim99@74
|
134 !insertmacro MUI_LANGUAGE "Kurdish"
|
joachim99@74
|
135
|
joachim99@66
|
136 ;--------------------------------
|
joachim99@74
|
137 ;License Language String
|
joachim99@74
|
138
|
joachim99@74
|
139 LicenseLangString MUILicense ${LANG_ENGLISH} "COPYING.txt"
|
joachim99@74
|
140 LicenseLangString MUILicense ${LANG_FRENCH} "COPYING.txt"
|
joachim99@74
|
141 LicenseLangString MUILicense ${LANG_GERMAN} "COPYING.txt"
|
joachim99@74
|
142 LicenseLangString MUILicense ${LANG_SPANISH} "COPYING.txt"
|
joachim99@74
|
143 LicenseLangString MUILicense ${LANG_SIMPCHINESE} "COPYING.txt"
|
joachim99@74
|
144 LicenseLangString MUILicense ${LANG_TRADCHINESE} "COPYING.txt"
|
joachim99@74
|
145 LicenseLangString MUILicense ${LANG_JAPANESE} "COPYING.txt"
|
joachim99@74
|
146 LicenseLangString MUILicense ${LANG_KOREAN} "COPYING.txt"
|
joachim99@74
|
147 LicenseLangString MUILicense ${LANG_ITALIAN} "COPYING.txt"
|
joachim99@74
|
148 LicenseLangString MUILicense ${LANG_DUTCH} "COPYING.txt"
|
joachim99@74
|
149 LicenseLangString MUILicense ${LANG_DANISH} "COPYING.txt"
|
joachim99@74
|
150 LicenseLangString MUILicense ${LANG_SWEDISH} "COPYING.txt"
|
joachim99@74
|
151 LicenseLangString MUILicense ${LANG_NORWEGIAN} "COPYING.txt"
|
joachim99@74
|
152 LicenseLangString MUILicense ${LANG_FINNISH} "COPYING.txt"
|
joachim99@74
|
153 LicenseLangString MUILicense ${LANG_GREEK} "COPYING.txt"
|
joachim99@74
|
154 LicenseLangString MUILicense ${LANG_RUSSIAN} "COPYING.txt"
|
joachim99@74
|
155 LicenseLangString MUILicense ${LANG_PORTUGUESE} "COPYING.txt"
|
joachim99@74
|
156 LicenseLangString MUILicense ${LANG_PORTUGUESEBR} "COPYING.txt"
|
joachim99@74
|
157 LicenseLangString MUILicense ${LANG_POLISH} "COPYING.txt"
|
joachim99@74
|
158 LicenseLangString MUILicense ${LANG_UKRAINIAN} "COPYING.txt"
|
joachim99@74
|
159 LicenseLangString MUILicense ${LANG_CZECH} "COPYING.txt"
|
joachim99@74
|
160 LicenseLangString MUILicense ${LANG_SLOVAK} "COPYING.txt"
|
joachim99@74
|
161 LicenseLangString MUILicense ${LANG_CROATIAN} "COPYING.txt"
|
joachim99@74
|
162 LicenseLangString MUILicense ${LANG_BULGARIAN} "COPYING.txt"
|
joachim99@74
|
163 LicenseLangString MUILicense ${LANG_HUNGARIAN} "COPYING.txt"
|
joachim99@74
|
164 LicenseLangString MUILicense ${LANG_THAI} "COPYING.txt"
|
joachim99@74
|
165 LicenseLangString MUILicense ${LANG_ROMANIAN} "COPYING.txt"
|
joachim99@74
|
166 LicenseLangString MUILicense ${LANG_LATVIAN} "COPYING.txt"
|
joachim99@74
|
167 LicenseLangString MUILicense ${LANG_MACEDONIAN} "COPYING.txt"
|
joachim99@74
|
168 LicenseLangString MUILicense ${LANG_ESTONIAN} "COPYING.txt"
|
joachim99@74
|
169 LicenseLangString MUILicense ${LANG_TURKISH} "COPYING.txt"
|
joachim99@74
|
170 LicenseLangString MUILicense ${LANG_LITHUANIAN} "COPYING.txt"
|
joachim99@74
|
171 LicenseLangString MUILicense ${LANG_CATALAN} "COPYING.txt"
|
joachim99@74
|
172 LicenseLangString MUILicense ${LANG_SLOVENIAN} "COPYING.txt"
|
joachim99@74
|
173 LicenseLangString MUILicense ${LANG_SERBIAN} "COPYING.txt"
|
joachim99@74
|
174 LicenseLangString MUILicense ${LANG_SERBIANLATIN} "COPYING.txt"
|
joachim99@74
|
175 LicenseLangString MUILicense ${LANG_ARABIC} "COPYING.txt"
|
joachim99@74
|
176 LicenseLangString MUILicense ${LANG_FARSI} "COPYING.txt"
|
joachim99@74
|
177 LicenseLangString MUILicense ${LANG_HEBREW} "COPYING.txt"
|
joachim99@74
|
178 LicenseLangString MUILicense ${LANG_INDONESIAN} "COPYING.txt"
|
joachim99@74
|
179 LicenseLangString MUILicense ${LANG_MONGOLIAN} "COPYING.txt"
|
joachim99@74
|
180 LicenseLangString MUILicense ${LANG_LUXEMBOURGISH} "COPYING.txt"
|
joachim99@74
|
181 LicenseLangString MUILicense ${LANG_ALBANIAN} "COPYING.txt"
|
joachim99@74
|
182 LicenseLangString MUILicense ${LANG_BRETON} "COPYING.txt"
|
joachim99@74
|
183 LicenseLangString MUILicense ${LANG_BELARUSIAN} "COPYING.txt"
|
joachim99@74
|
184 LicenseLangString MUILicense ${LANG_ICELANDIC} "COPYING.txt"
|
joachim99@74
|
185 LicenseLangString MUILicense ${LANG_MALAY} "COPYING.txt"
|
joachim99@74
|
186 LicenseLangString MUILicense ${LANG_BOSNIAN} "COPYING.txt"
|
joachim99@74
|
187 LicenseLangString MUILicense ${LANG_KURDISH} "COPYING.txt"
|
joachim99@66
|
188
|
joachim99@66
|
189 ;--------------------------------
|
joachim99@66
|
190 ;Reserve Files
|
joachim99@66
|
191
|
joachim99@74
|
192 ;These files should be inserted before other files in the data block
|
joachim99@74
|
193 ;Keep these lines before any File command
|
joachim99@74
|
194 ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
|
joachim99@74
|
195
|
joachim99@66
|
196 !insertmacro MUI_RESERVEFILE_LANGDLL
|
joachim99@75
|
197 ReserveFile "installForAllUsersPage.ini"
|
joachim99@75
|
198 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
joachim99@74
|
199
|
joachim99@66
|
200 ;--------------------------------
|
joachim99@75
|
201 ;Variables
|
joachim99@75
|
202
|
joachim99@75
|
203 Var INSTALL_FOR_ALL_USERS
|
joachim99@75
|
204
|
joachim99@75
|
205 ;--------------------------------
|
joachim99@66
|
206 ;Installer Sections
|
joachim99@74
|
207
|
joachim99@74
|
208 Section "Software" SecSoftware
|
joachim99@74
|
209 SectionIn RO
|
joachim99@75
|
210 ;Read a value from an InstallOptions INI file
|
joachim99@75
|
211 !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_FOR_ALL_USERS "installForAllUsersPage.ini" "Field 2" "State"
|
joachim99@75
|
212
|
joachim99@75
|
213 ;Set ShellVarContext: Defines if SHCTX points to HKLM or HKCU
|
joachim99@75
|
214 StrCmp $INSTALL_FOR_ALL_USERS "0" "" +3
|
joachim99@75
|
215 SetShellVarContext current
|
joachim99@75
|
216 Goto +2
|
joachim99@75
|
217 SetShellVarContext all
|
joachim99@74
|
218
|
joachim99@75
|
219 WriteRegStr HKCU "Software\KDiff3" "InstalledForAllUsers" "$INSTALL_FOR_ALL_USERS"
|
joachim99@75
|
220
|
joachim99@75
|
221 ; Make the KDiff3 uninstaller visible via "System Settings: Add or Remove Programs", (Systemsteuerung/Software)
|
joachim99@75
|
222 WriteRegStr SHCTX "Software\KDiff3" "" "$INSTDIR"
|
joachim99@75
|
223 WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" "DisplayName" "KDiff3 (remove only)"
|
joachim99@75
|
224 WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" "UninstallString" '"$INSTDIR\Uninstall.exe"'
|
joachim99@74
|
225
|
joachim99@74
|
226
|
joachim99@74
|
227 SetOutPath "$INSTDIR"
|
joachim99@66
|
228
|
joachim99@74
|
229 ;ADD YOUR OWN FILES HERE...
|
joachim99@74
|
230 DetailPrint "Writing files"
|
joachim99@66
|
231 File "kdiff3.exe"
|
joachim99@74
|
232 File "COPYING.txt"
|
joachim99@66
|
233 File "Readme_Win.txt"
|
joachim99@66
|
234 File "ChangeLog.txt"
|
joachim99@94
|
235 Delete "$INSTDIR\kdiff3-QT4.exe"
|
joachim99@74
|
236
|
joachim99@74
|
237 ;Store installation folder
|
joachim99@74
|
238 WriteRegStr HKCU "Software\KDiff3" "" $INSTDIR
|
joachim99@74
|
239
|
joachim99@74
|
240 ;Create uninstaller
|
joachim99@74
|
241 WriteUninstaller "$INSTDIR\Uninstall.exe"
|
joachim99@74
|
242
|
joachim99@74
|
243 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
joachim99@66
|
244
|
joachim99@74
|
245 ;Create shortcuts
|
joachim99@74
|
246 CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
joachim99@74
|
247 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\KDiff3.lnk" "$INSTDIR\kdiff3.exe"
|
joachim99@74
|
248 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Readme.lnk" "$INSTDIR\Readme_Win.txt"
|
joachim99@75
|
249 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GPL.lnk" "$INSTDIR\Copying.txt"
|
joachim99@74
|
250 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
joachim99@74
|
251 CreateShortCut "$QUICKLAUNCH\KDiff3.lnk" "$INSTDIR\kdiff3.exe"
|
joachim99@66
|
252
|
joachim99@66
|
253 !insertmacro MUI_STARTMENU_WRITE_END
|
joachim99@74
|
254
|
joachim99@66
|
255 SectionEnd
|
joachim99@66
|
256
|
joachim99@74
|
257 Section "Documentation" SecDocumentation
|
joachim99@66
|
258 DetailPrint "Writing the documentation"
|
joachim99@66
|
259 SetOutPath "$INSTDIR"
|
joachim99@66
|
260 File /r doc
|
joachim99@74
|
261 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Documentation.lnk" "$INSTDIR\doc\index.html"
|
joachim99@66
|
262 SectionEnd
|
joachim99@66
|
263
|
joachim99@74
|
264 Section "Translations" SecTranslations
|
joachim99@74
|
265 DetailPrint "Writing the translation messages"
|
joachim99@74
|
266 SetOutPath "$INSTDIR"
|
joachim99@74
|
267 File /r translations
|
joachim99@74
|
268 SectionEnd
|
joachim99@66
|
269
|
joachim99@74
|
270 SubSection "Integration" SecIntegration
|
joachim99@74
|
271
|
joachim99@74
|
272 Section "Explorer" SecIntegrationExplorer
|
joachim99@66
|
273 DetailPrint "Integration to Explorer"
|
joachim99@66
|
274 ; WriteRegStr HKCR "Directory\shell\KDiff3" "" '&KDiff3'
|
joachim99@66
|
275 ; WriteRegStr HKCR "Directory\shell\KDiff3\command" "" '"$INSTDIR\kdiff3.exe" "%1"'
|
joachim99@80
|
276 CreateShortCut "$SENDTO\KDiff3.lnk" '"$INSTDIR\kdiff3.exe"'
|
joachim99@74
|
277 SectionEnd
|
joachim99@74
|
278
|
joachim99@75
|
279 Section "Diff-Ext" SecIntegrationDiffExtForKDiff3
|
joachim99@75
|
280 DetailPrint "Diff-Ext for KDiff3"
|
joachim99@94
|
281
|
joachim99@94
|
282 ${If} ${RunningX64}
|
joachim99@94
|
283 StrCpy $DIFF_EXT_CLSID ${DIFF_EXT64_CLSID}
|
joachim99@94
|
284 StrCpy $DIFF_EXT_DLL "diff_ext_for_kdiff3_64.dll"
|
joachim99@94
|
285 StrCpy $DIFF_EXT_OLD_DLL "diff_ext_for_kdiff3_64_old.dll"
|
joachim99@94
|
286 ${Else}
|
joachim99@94
|
287 StrCpy $DIFF_EXT_CLSID ${DIFF_EXT32_CLSID}
|
joachim99@94
|
288 StrCpy $DIFF_EXT_DLL "diff_ext_for_kdiff3.dll"
|
joachim99@94
|
289 StrCpy $DIFF_EXT_OLD_DLL "diff_ext_for_kdiff3_old.dll"
|
joachim99@94
|
290 ${EndIf}
|
joachim99@94
|
291
|
joachim99@94
|
292 IfFileExists "$INSTDIR\$DIFF_EXT_OLD_DLL" 0 +2
|
joachim99@94
|
293 Delete "$INSTDIR\$DIFF_EXT_OLD_DLL"
|
joachim99@94
|
294
|
joachim99@94
|
295 IfFileExists "$INSTDIR\$DIFF_EXT_DLL" 0 +2
|
joachim99@94
|
296 Rename "$INSTDIR\$DIFF_EXT_DLL" "$INSTDIR\$DIFF_EXT_OLD_DLL"
|
joachim99@94
|
297
|
joachim99@75
|
298
|
joachim99@94
|
299 ${If} ${RunningX64}
|
joachim99@94
|
300 File "diff_ext_for_kdiff3_64.dll"
|
joachim99@94
|
301 ${Else}
|
joachim99@94
|
302 File "diff_ext_for_kdiff3.dll"
|
joachim99@94
|
303 ${EndIf}
|
joachim99@75
|
304
|
joachim99@94
|
305 SetRegView 64
|
joachim99@94
|
306
|
joachim99@75
|
307 WriteRegStr HKCU "Software\KDiff3\diff-ext" "" ""
|
joachim99@75
|
308 WriteRegStr SHCTX "Software\KDiff3\diff-ext" "InstallDir" "$INSTDIR"
|
joachim99@75
|
309 WriteRegStr SHCTX "Software\KDiff3\diff-ext" "diffcommand" "$INSTDIR\kdiff3.exe"
|
joachim99@94
|
310 WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" "" "diff-ext-for-kdiff3"
|
joachim99@94
|
311 WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "" "$INSTDIR\$DIFF_EXT_DLL"
|
joachim99@94
|
312 WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "ThreadingModel" "Apartment"
|
joachim99@94
|
313 WriteRegStr SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" "" "$DIFF_EXT_CLSID"
|
joachim99@94
|
314 WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" "diff-ext-for-kdiff3"
|
joachim99@94
|
315 WriteRegStr SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" "" "$DIFF_EXT_CLSID"
|
joachim99@94
|
316 WriteRegStr SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" "" "$DIFF_EXT_CLSID"
|
joachim99@94
|
317
|
joachim99@94
|
318 SetRegView 32
|
joachim99@94
|
319
|
joachim99@94
|
320 File "DIFF-EXT-LICENSE.txt"
|
joachim99@94
|
321 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Diff-Ext License.lnk" "$INSTDIR\DIFF-EXT-LICENSE.txt"
|
joachim99@94
|
322
|
joachim99@75
|
323 SectionEnd
|
joachim99@75
|
324
|
joachim99@74
|
325 Section "WinCVS" SecIntegrationWinCVS
|
joachim99@74
|
326 DetailPrint "Integration to WinCVS"
|
joachim99@74
|
327 #MessageBox MB_OK "If WinCVS is running, please close it before proceeding."
|
joachim99@74
|
328 WriteRegStr HKCU "Software\WinCvs\wincvs\CVS settings" "P_Extdiff" '$INSTDIR\kdiff3.exe'
|
joachim99@74
|
329 WriteRegBin HKCU "Software\WinCvs\wincvs\CVS settings" "P_DiffUseExtDiff" 01
|
joachim99@74
|
330 SectionEnd
|
joachim99@74
|
331
|
joachim99@74
|
332 Section "TortoiseSVN" SecIntegrationTortoiseSVN
|
joachim99@69
|
333 DetailPrint "Integration to TortoiseSVN"
|
joachim99@69
|
334 WriteRegStr HKCU "Software\TortoiseSVN\" "Diff" '$INSTDIR\kdiff3.exe %base %mine --L1 Base --L2 Mine'
|
joachim99@69
|
335 WriteRegStr HKCU "Software\TortoiseSVN\" "Merge" '$INSTDIR\kdiff3.exe %base %mine %theirs -o %merged --L1 Base --L2 Mine --L3 Theirs'
|
joachim99@69
|
336 SectionEnd
|
joachim99@75
|
337
|
joachim99@75
|
338 Section /o "SVN Merge tool" SecIntegrationSubversionDiff3Cmd
|
joachim99@75
|
339 DetailPrint "Integrate diff3_cmd.bat for Subversion"
|
joachim99@75
|
340 File "diff3_cmd.bat"
|
joachim99@78
|
341 CreateDirectory '$APPDATA\Subversion'
|
joachim99@78
|
342 CopyFiles '$INSTDIR\diff3_cmd.bat' '$APPDATA\Subversion'
|
joachim99@75
|
343 SectionEnd
|
joachim99@78
|
344
|
joachim99@78
|
345
|
joachim99@78
|
346 Section /o "ClearCase" SecIntegrationClearCase
|
joachim99@78
|
347 DetailPrint "Integrate with Rational ClearCase from IBM"
|
joachim99@78
|
348 ccInstallHelper::nsisPlugin "install" "$INSTDIR\kdiff3.exe"
|
joachim99@78
|
349
|
joachim99@78
|
350 ;File "ccInstHelper.exe"
|
joachim99@78
|
351 ;ExecWait '"$INSTDIR\ccInstHelper.exe" install "$INSTDIR\kdiff3.exe"'
|
joachim99@78
|
352 SectionEnd
|
joachim99@78
|
353
|
joachim99@66
|
354 SubSectionEnd
|
joachim99@66
|
355
|
joachim99@66
|
356 ;--------------------------------
|
joachim99@66
|
357 ;Installer Functions
|
joachim99@66
|
358
|
joachim99@66
|
359 Function .onInit
|
joachim99@66
|
360
|
joachim99@66
|
361 !insertmacro MUI_LANGDLL_DISPLAY
|
joachim99@75
|
362 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "installForAllUsersPage.ini"
|
joachim99@75
|
363
|
joachim99@75
|
364 FunctionEnd
|
joachim99@75
|
365
|
joachim99@75
|
366 Function CustomPageC
|
joachim99@75
|
367
|
joachim99@75
|
368 !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
|
joachim99@75
|
369 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "installForAllUsersPage.ini"
|
joachim99@66
|
370
|
joachim99@66
|
371 FunctionEnd
|
joachim99@66
|
372
|
joachim99@94
|
373
|
joachim99@66
|
374 ;--------------------------------
|
joachim99@66
|
375 ;Descriptions
|
joachim99@66
|
376
|
joachim99@74
|
377 ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGUAGE SPECIFIC
|
joachim99@74
|
378
|
joachim99@74
|
379 ;Assign descriptions to sections
|
joachim99@74
|
380 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
joachim99@74
|
381 !insertmacro MUI_DESCRIPTION_TEXT ${SecSoftware} "Main program."
|
joachim99@74
|
382 !insertmacro MUI_DESCRIPTION_TEXT ${SecDocumentation} "English documentation in HTML-format (Docs for other languages are available on the homepage.)"
|
joachim99@74
|
383 !insertmacro MUI_DESCRIPTION_TEXT ${SecTranslations} "Translations for visible strings in many languages. Not needed for US-English."
|
joachim99@75
|
384 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegration} "Integrate KDiff3 with certain programs. (See also the Readme for details.)"
|
joachim99@74
|
385 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationExplorer} "Integrate KDiff3 with Explorer. Adds an entry for KDiff3 in the Send-To context menu."
|
joachim99@75
|
386 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationDiffExtForKDiff3} "Installs Diff-Ext by Sergey Zorin. Adds entries for KDiff3 in Explorer context menu."
|
joachim99@74
|
387 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationWinCVS} "Integrate KDiff3 with WinCVS. (Please close WinCVS before proceeding.)"
|
joachim99@74
|
388 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationTortoiseSVN} "Integrate KDiff3 with TortoiseSVN."
|
joachim99@75
|
389 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationSubversionDiff3Cmd} "Install diff3_cmd.bat for Subversion merge"
|
joachim99@78
|
390 !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationClearCase} "Integrate KDiff3 with Rational Clearcase from IBM"
|
joachim99@74
|
391 !insertmacro MUI_FUNCTION_DESCRIPTION_END
|
joachim99@74
|
392
|
joachim99@66
|
393
|
joachim99@66
|
394 ;--------------------------------
|
joachim99@66
|
395 ;Uninstaller Section
|
joachim99@66
|
396
|
joachim99@66
|
397 Section "Uninstall"
|
joachim99@75
|
398 ReadRegStr $INSTALL_FOR_ALL_USERS HKCU "Software\KDiff3" "InstalledForAllUsers"
|
joachim99@75
|
399 ;Set ShellVarContext: Defines if SHCTX points to HKLM or HKCU
|
joachim99@75
|
400 StrCmp $INSTALL_FOR_ALL_USERS "0" "" +3
|
joachim99@75
|
401 SetShellVarContext current
|
joachim99@75
|
402 Goto +2
|
joachim99@75
|
403 SetShellVarContext all
|
joachim99@94
|
404
|
joachim99@74
|
405 Delete "$INSTDIR\Uninstall.exe"
|
joachim99@74
|
406 Delete "$INSTDIR\kdiff3.exe"
|
joachim99@74
|
407 Delete "$INSTDIR\COPYING.txt"
|
joachim99@74
|
408 Delete "$INSTDIR\Readme_Win.txt"
|
joachim99@74
|
409 Delete "$INSTDIR\ChangeLog.txt"
|
joachim99@75
|
410 Delete "$INSTDIR\diff_ext_for_kdiff3.dll"
|
joachim99@78
|
411 Delete "$INSTDIR\diff_ext_for_kdiff3_old.dll"
|
joachim99@94
|
412 Delete "$INSTDIR\diff_ext_for_kdiff3_64.dll"
|
joachim99@94
|
413 Delete "$INSTDIR\diff_ext_for_kdiff3_64_old.dll"
|
joachim99@75
|
414 Delete "$INSTDIR\DIFF-EXT-LICENSE.txt"
|
joachim99@74
|
415
|
joachim99@74
|
416 RMDir /r "$INSTDIR\doc"
|
joachim99@74
|
417 RMDir /r "$INSTDIR\translations"
|
joachim99@74
|
418 RMDir "$INSTDIR" # without /r the dir is only removed if completely empty
|
joachim99@66
|
419
|
joachim99@74
|
420 !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
joachim99@66
|
421
|
joachim99@74
|
422 Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
joachim99@74
|
423 Delete "$SMPROGRAMS\$MUI_TEMP\KDiff3.lnk"
|
joachim99@78
|
424 Delete "$SMPROGRAMS\$MUI_TEMP\KDiff3-Qt4.lnk"
|
joachim99@74
|
425 Delete "$SMPROGRAMS\$MUI_TEMP\Readme.lnk"
|
joachim99@75
|
426 Delete "$SMPROGRAMS\$MUI_TEMP\GPL.lnk"
|
joachim99@75
|
427 Delete "$SMPROGRAMS\$MUI_TEMP\Diff-Ext License.lnk"
|
joachim99@75
|
428
|
joachim99@74
|
429 Delete "$SMPROGRAMS\$MUI_TEMP\Documentation.lnk"
|
joachim99@74
|
430 Delete "$QUICKLAUNCH\KDiff3.lnk"
|
joachim99@80
|
431 Delete "$SENDTO\KDiff3.lnk"
|
joachim99@74
|
432
|
joachim99@74
|
433 ;Delete empty start menu parent diretories
|
joachim99@74
|
434 StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
|
joachim99@74
|
435
|
joachim99@74
|
436 startMenuDeleteLoop:
|
joachim99@74
|
437 ClearErrors
|
joachim99@74
|
438 RMDir $MUI_TEMP
|
joachim99@74
|
439 GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
|
joachim99@74
|
440
|
joachim99@74
|
441 IfErrors startMenuDeleteLoopDone
|
joachim99@74
|
442
|
joachim99@74
|
443 StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
|
joachim99@74
|
444 startMenuDeleteLoopDone:
|
joachim99@94
|
445
|
joachim99@75
|
446 DeleteRegKey HKCU "Software\KDiff3"
|
joachim99@75
|
447 DeleteRegKey SHCTX "Software\KDiff3"
|
joachim99@75
|
448 DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3"
|
joachim99@75
|
449
|
joachim99@75
|
450 ; diff_ext_for_kdiff3
|
joachim99@94
|
451 ${If} ${RunningX64}
|
joachim99@94
|
452 StrCpy $DIFF_EXT_CLSID ${DIFF_EXT64_CLSID}
|
joachim99@94
|
453 ${Else}
|
joachim99@94
|
454 StrCpy $DIFF_EXT_CLSID ${DIFF_EXT32_CLSID}
|
joachim99@94
|
455 ${EndIf}
|
joachim99@94
|
456 SetRegView 64
|
joachim99@94
|
457 DeleteRegKey SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID"
|
joachim99@75
|
458 DeleteRegKey SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\diff-ext-for-kdiff3"
|
joachim99@75
|
459 DeleteRegKey SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\diff-ext-for-kdiff3"
|
joachim99@75
|
460 DeleteRegKey SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\diff-ext-for-kdiff3"
|
joachim99@94
|
461 DeleteRegValue SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID"
|
joachim99@94
|
462 SetRegView 32
|
joachim99@66
|
463
|
joachim99@78
|
464 ; clearcase
|
joachim99@78
|
465 ccInstallHelper::nsisPlugin "uninstall" "$INSTDIR\kdiff3.exe"
|
joachim99@78
|
466 ;ExecWait '"$INSTDIR\ccInstHelper.exe" uninstall "$INSTDIR\kdiff3.exe"'
|
joachim99@78
|
467 ;Delete "$INSTDIR\ccInstHelper.exe"
|
joachim99@78
|
468
|
joachim99@66
|
469 SectionEnd
|
joachim99@66
|
470
|
joachim99@66
|
471 ;--------------------------------
|
joachim99@66
|
472 ;Uninstaller Functions
|
joachim99@66
|
473
|
joachim99@66
|
474 Function un.onInit
|
joachim99@66
|
475
|
joachim99@74
|
476 !insertmacro MUI_UNGETLANGUAGE
|
joachim99@66
|
477
|
joachim99@78
|
478 FunctionEnd
|