annotate kdiff3/src/kdiff3.nsi @ 45:42106f54567f

Addition of the source code in the windows distribution Addition of an optional debug distribution
author friseb123
date Thu, 16 Oct 2003 11:41:04 +0000
parents ec4d236b9d1b
children 97f15262ad06
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@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