annotate kdiff3/src/kdiff3.nsi @ 32:734a2093deab

Implementation of the Intergration into Explorer
author friseb123
date Sat, 11 Oct 2003 18:03:52 +0000
parents 6daffd081b7e
children ec4d236b9d1b
rev   line source
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