annotate kdiff3/windows_installer/kdiff3.nsi @ 113:7bca1f1340f6 tip

Build fixes for Xcode 10 / Qt 5.12
author Chris Cannam
date Mon, 17 Dec 2018 11:13:01 +0000
parents b2f22ae5f810
children
rev   line source
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