joachim99@74: ;KDiff3-NSIS configuration joachim99@74: ;Based on Modern User Interface example files joachim99@66: ;Apdapted for KDiff3 by Sebastien Fricker and Joachim Eibl joachim99@75: ;Requires nsis_v2.19 joachim99@66: joachim99@94: !define KDIFF3_VERSION "0.9.95" joachim99@94: !define DIFF_EXT32_CLSID "{9F8528E4-AB20-456E-84E5-3CE69D8720F3}" joachim99@94: !define DIFF_EXT64_CLSID "{34471FFB-4002-438b-8952-E4588D0C0FE9}" joachim99@66: joachim99@66: ;-------------------------------- joachim99@74: ;Include Modern UI joachim99@66: joachim99@74: !include "MUI.nsh" joachim99@94: !include "x64.nsh" joachim99@66: joachim99@74: ;-------------------------------- joachim99@74: ;General joachim99@74: joachim99@74: ;Name and file joachim99@74: Name "KDiff3" joachim99@74: OutFile "KDiff3Setup_${KDIFF3_VERSION}.exe" joachim99@74: joachim99@74: ;Default installation folder joachim99@74: InstallDir "$PROGRAMFILES\KDiff3" joachim99@66: joachim99@74: ;Get installation folder from registry if available joachim99@74: InstallDirRegKey HKCU "Software\KDiff3" "" joachim99@78: joachim99@78: !addplugindir ".\nsisplugins" joachim99@74: joachim99@74: ;-------------------------------- joachim99@74: ;Variables joachim99@74: joachim99@74: Var MUI_TEMP joachim99@74: Var STARTMENU_FOLDER joachim99@94: Var DIFF_EXT_CLSID joachim99@94: Var DIFF_EXT_DLL joachim99@94: Var DIFF_EXT_OLD_DLL joachim99@94: joachim99@74: ;-------------------------------- joachim99@74: ;Interface Settings joachim99@74: joachim99@74: !define MUI_ABORTWARNING joachim99@74: !define MUI_HEADERIMAGE joachim99@74: !define MUI_HEADERIMAGE_BITMAP "kdiff3.bmp" ; optional joachim99@74: joachim99@74: ;-------------------------------- joachim99@74: ;Language Selection Dialog Settings joachim99@74: joachim99@66: ;Remember the installer language joachim99@66: !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" joachim99@74: !define MUI_LANGDLL_REGISTRY_KEY "Software\KDiff3" joachim99@66: !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" joachim99@66: joachim99@66: ;-------------------------------- joachim99@74: ;Pages joachim99@66: joachim99@75: ;!insertmacro MUI_PAGE_WELCOME joachim99@74: !insertmacro MUI_PAGE_LICENSE $(MUILicense) joachim99@74: !insertmacro MUI_PAGE_COMPONENTS joachim99@74: !insertmacro MUI_PAGE_DIRECTORY joachim99@75: Page custom CustomPageC joachim99@66: joachim99@74: ;Start Menu Folder Page Configuration joachim99@74: !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" joachim99@74: !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\KDiff3" joachim99@74: !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" joachim99@66: joachim99@74: !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER joachim99@74: joachim99@74: !insertmacro MUI_PAGE_INSTFILES joachim99@74: joachim99@75: !define MUI_FINISHPAGE_RUN KDiff3.exe joachim99@75: !define MUI_FINISHPAGE_RUN_NOTCHECKED joachim99@75: !define MUI_FINISHPAGE_SHOWREADME README_WIN.txt joachim99@78: !define MUI_FINISHPAGE_SHOWREADME_CHECKED joachim99@75: joachim99@75: !insertmacro MUI_PAGE_FINISH joachim99@75: joachim99@74: !insertmacro MUI_UNPAGE_CONFIRM joachim99@74: !insertmacro MUI_UNPAGE_INSTFILES joachim99@74: joachim99@66: ;-------------------------------- joachim99@66: ;Languages joachim99@66: joachim99@74: !insertmacro MUI_LANGUAGE "English" # first language is the default language joachim99@66: !insertmacro MUI_LANGUAGE "French" joachim99@66: !insertmacro MUI_LANGUAGE "German" joachim99@66: !insertmacro MUI_LANGUAGE "Spanish" joachim99@66: !insertmacro MUI_LANGUAGE "SimpChinese" joachim99@74: !insertmacro MUI_LANGUAGE "TradChinese" joachim99@66: !insertmacro MUI_LANGUAGE "Japanese" joachim99@66: !insertmacro MUI_LANGUAGE "Korean" joachim99@66: !insertmacro MUI_LANGUAGE "Italian" joachim99@66: !insertmacro MUI_LANGUAGE "Dutch" joachim99@66: !insertmacro MUI_LANGUAGE "Danish" joachim99@74: !insertmacro MUI_LANGUAGE "Swedish" joachim99@74: !insertmacro MUI_LANGUAGE "Norwegian" joachim99@74: !insertmacro MUI_LANGUAGE "Finnish" joachim99@66: !insertmacro MUI_LANGUAGE "Greek" joachim99@66: !insertmacro MUI_LANGUAGE "Russian" joachim99@74: !insertmacro MUI_LANGUAGE "Portuguese" joachim99@66: !insertmacro MUI_LANGUAGE "PortugueseBR" joachim99@66: !insertmacro MUI_LANGUAGE "Polish" joachim99@66: !insertmacro MUI_LANGUAGE "Ukrainian" joachim99@66: !insertmacro MUI_LANGUAGE "Czech" joachim99@66: !insertmacro MUI_LANGUAGE "Slovak" joachim99@66: !insertmacro MUI_LANGUAGE "Croatian" joachim99@66: !insertmacro MUI_LANGUAGE "Bulgarian" joachim99@66: !insertmacro MUI_LANGUAGE "Hungarian" joachim99@66: !insertmacro MUI_LANGUAGE "Thai" joachim99@66: !insertmacro MUI_LANGUAGE "Romanian" joachim99@74: !insertmacro MUI_LANGUAGE "Latvian" joachim99@66: !insertmacro MUI_LANGUAGE "Macedonian" joachim99@74: !insertmacro MUI_LANGUAGE "Estonian" joachim99@66: !insertmacro MUI_LANGUAGE "Turkish" joachim99@74: !insertmacro MUI_LANGUAGE "Lithuanian" joachim99@74: !insertmacro MUI_LANGUAGE "Catalan" joachim99@74: !insertmacro MUI_LANGUAGE "Slovenian" joachim99@74: !insertmacro MUI_LANGUAGE "Serbian" joachim99@74: !insertmacro MUI_LANGUAGE "SerbianLatin" joachim99@74: !insertmacro MUI_LANGUAGE "Arabic" joachim99@74: !insertmacro MUI_LANGUAGE "Farsi" joachim99@74: !insertmacro MUI_LANGUAGE "Hebrew" joachim99@74: !insertmacro MUI_LANGUAGE "Indonesian" joachim99@74: !insertmacro MUI_LANGUAGE "Mongolian" joachim99@74: !insertmacro MUI_LANGUAGE "Luxembourgish" joachim99@74: !insertmacro MUI_LANGUAGE "Albanian" joachim99@74: !insertmacro MUI_LANGUAGE "Breton" joachim99@74: !insertmacro MUI_LANGUAGE "Belarusian" joachim99@74: !insertmacro MUI_LANGUAGE "Icelandic" joachim99@74: !insertmacro MUI_LANGUAGE "Malay" joachim99@74: !insertmacro MUI_LANGUAGE "Bosnian" joachim99@74: !insertmacro MUI_LANGUAGE "Kurdish" joachim99@74: joachim99@66: ;-------------------------------- joachim99@74: ;License Language String joachim99@74: joachim99@74: LicenseLangString MUILicense ${LANG_ENGLISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_FRENCH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_GERMAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SPANISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SIMPCHINESE} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_TRADCHINESE} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_JAPANESE} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_KOREAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_ITALIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_DUTCH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_DANISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SWEDISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_NORWEGIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_FINNISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_GREEK} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_RUSSIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_PORTUGUESE} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_PORTUGUESEBR} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_POLISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_UKRAINIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_CZECH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SLOVAK} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_CROATIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_BULGARIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_HUNGARIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_THAI} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_ROMANIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_LATVIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_MACEDONIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_ESTONIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_TURKISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_LITHUANIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_CATALAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SLOVENIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SERBIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_SERBIANLATIN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_ARABIC} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_FARSI} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_HEBREW} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_INDONESIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_MONGOLIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_LUXEMBOURGISH} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_ALBANIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_BRETON} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_BELARUSIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_ICELANDIC} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_MALAY} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_BOSNIAN} "COPYING.txt" joachim99@74: LicenseLangString MUILicense ${LANG_KURDISH} "COPYING.txt" joachim99@66: joachim99@66: ;-------------------------------- joachim99@66: ;Reserve Files joachim99@66: joachim99@74: ;These files should be inserted before other files in the data block joachim99@74: ;Keep these lines before any File command joachim99@74: ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) joachim99@74: joachim99@66: !insertmacro MUI_RESERVEFILE_LANGDLL joachim99@75: ReserveFile "installForAllUsersPage.ini" joachim99@75: !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS joachim99@74: joachim99@66: ;-------------------------------- joachim99@75: ;Variables joachim99@75: joachim99@75: Var INSTALL_FOR_ALL_USERS joachim99@75: joachim99@75: ;-------------------------------- joachim99@66: ;Installer Sections joachim99@74: joachim99@74: Section "Software" SecSoftware joachim99@74: SectionIn RO joachim99@75: ;Read a value from an InstallOptions INI file joachim99@75: !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_FOR_ALL_USERS "installForAllUsersPage.ini" "Field 2" "State" joachim99@75: joachim99@75: ;Set ShellVarContext: Defines if SHCTX points to HKLM or HKCU joachim99@75: StrCmp $INSTALL_FOR_ALL_USERS "0" "" +3 joachim99@75: SetShellVarContext current joachim99@75: Goto +2 joachim99@75: SetShellVarContext all joachim99@74: joachim99@75: WriteRegStr HKCU "Software\KDiff3" "InstalledForAllUsers" "$INSTALL_FOR_ALL_USERS" joachim99@75: joachim99@75: ; Make the KDiff3 uninstaller visible via "System Settings: Add or Remove Programs", (Systemsteuerung/Software) joachim99@75: WriteRegStr SHCTX "Software\KDiff3" "" "$INSTDIR" joachim99@75: WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" "DisplayName" "KDiff3 (remove only)" joachim99@75: WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" "UninstallString" '"$INSTDIR\Uninstall.exe"' joachim99@74: joachim99@74: joachim99@74: SetOutPath "$INSTDIR" joachim99@66: joachim99@74: ;ADD YOUR OWN FILES HERE... joachim99@74: DetailPrint "Writing files" joachim99@66: File "kdiff3.exe" joachim99@74: File "COPYING.txt" joachim99@66: File "Readme_Win.txt" joachim99@66: File "ChangeLog.txt" joachim99@94: Delete "$INSTDIR\kdiff3-QT4.exe" joachim99@74: joachim99@74: ;Store installation folder joachim99@74: WriteRegStr HKCU "Software\KDiff3" "" $INSTDIR joachim99@74: joachim99@74: ;Create uninstaller joachim99@74: WriteUninstaller "$INSTDIR\Uninstall.exe" joachim99@74: joachim99@74: !insertmacro MUI_STARTMENU_WRITE_BEGIN Application joachim99@66: joachim99@74: ;Create shortcuts joachim99@74: CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" joachim99@74: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\KDiff3.lnk" "$INSTDIR\kdiff3.exe" joachim99@74: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Readme.lnk" "$INSTDIR\Readme_Win.txt" joachim99@75: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GPL.lnk" "$INSTDIR\Copying.txt" joachim99@74: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" joachim99@74: CreateShortCut "$QUICKLAUNCH\KDiff3.lnk" "$INSTDIR\kdiff3.exe" joachim99@66: joachim99@66: !insertmacro MUI_STARTMENU_WRITE_END joachim99@74: joachim99@66: SectionEnd joachim99@66: joachim99@74: Section "Documentation" SecDocumentation joachim99@66: DetailPrint "Writing the documentation" joachim99@66: SetOutPath "$INSTDIR" joachim99@66: File /r doc joachim99@74: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Documentation.lnk" "$INSTDIR\doc\index.html" joachim99@66: SectionEnd joachim99@66: joachim99@74: Section "Translations" SecTranslations joachim99@74: DetailPrint "Writing the translation messages" joachim99@74: SetOutPath "$INSTDIR" joachim99@74: File /r translations joachim99@74: SectionEnd joachim99@66: joachim99@74: SubSection "Integration" SecIntegration joachim99@74: joachim99@74: Section "Explorer" SecIntegrationExplorer joachim99@66: DetailPrint "Integration to Explorer" joachim99@66: ; WriteRegStr HKCR "Directory\shell\KDiff3" "" '&KDiff3' joachim99@66: ; WriteRegStr HKCR "Directory\shell\KDiff3\command" "" '"$INSTDIR\kdiff3.exe" "%1"' joachim99@80: CreateShortCut "$SENDTO\KDiff3.lnk" '"$INSTDIR\kdiff3.exe"' joachim99@74: SectionEnd joachim99@74: joachim99@75: Section "Diff-Ext" SecIntegrationDiffExtForKDiff3 joachim99@75: DetailPrint "Diff-Ext for KDiff3" joachim99@94: joachim99@94: ${If} ${RunningX64} joachim99@94: StrCpy $DIFF_EXT_CLSID ${DIFF_EXT64_CLSID} joachim99@94: StrCpy $DIFF_EXT_DLL "diff_ext_for_kdiff3_64.dll" joachim99@94: StrCpy $DIFF_EXT_OLD_DLL "diff_ext_for_kdiff3_64_old.dll" joachim99@94: ${Else} joachim99@94: StrCpy $DIFF_EXT_CLSID ${DIFF_EXT32_CLSID} joachim99@94: StrCpy $DIFF_EXT_DLL "diff_ext_for_kdiff3.dll" joachim99@94: StrCpy $DIFF_EXT_OLD_DLL "diff_ext_for_kdiff3_old.dll" joachim99@94: ${EndIf} joachim99@94: joachim99@94: IfFileExists "$INSTDIR\$DIFF_EXT_OLD_DLL" 0 +2 joachim99@94: Delete "$INSTDIR\$DIFF_EXT_OLD_DLL" joachim99@94: joachim99@94: IfFileExists "$INSTDIR\$DIFF_EXT_DLL" 0 +2 joachim99@94: Rename "$INSTDIR\$DIFF_EXT_DLL" "$INSTDIR\$DIFF_EXT_OLD_DLL" joachim99@94: joachim99@75: joachim99@94: ${If} ${RunningX64} joachim99@94: File "diff_ext_for_kdiff3_64.dll" joachim99@94: ${Else} joachim99@94: File "diff_ext_for_kdiff3.dll" joachim99@94: ${EndIf} joachim99@75: joachim99@94: SetRegView 64 joachim99@94: joachim99@75: WriteRegStr HKCU "Software\KDiff3\diff-ext" "" "" joachim99@75: WriteRegStr SHCTX "Software\KDiff3\diff-ext" "InstallDir" "$INSTDIR" joachim99@75: WriteRegStr SHCTX "Software\KDiff3\diff-ext" "diffcommand" "$INSTDIR\kdiff3.exe" joachim99@94: WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" "" "diff-ext-for-kdiff3" joachim99@94: WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "" "$INSTDIR\$DIFF_EXT_DLL" joachim99@94: WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "ThreadingModel" "Apartment" joachim99@94: WriteRegStr SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" "" "$DIFF_EXT_CLSID" joachim99@94: WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" "diff-ext-for-kdiff3" joachim99@94: WriteRegStr SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" "" "$DIFF_EXT_CLSID" joachim99@94: WriteRegStr SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" "" "$DIFF_EXT_CLSID" joachim99@94: joachim99@94: SetRegView 32 joachim99@94: joachim99@94: File "DIFF-EXT-LICENSE.txt" joachim99@94: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Diff-Ext License.lnk" "$INSTDIR\DIFF-EXT-LICENSE.txt" joachim99@94: joachim99@75: SectionEnd joachim99@75: joachim99@74: Section "WinCVS" SecIntegrationWinCVS joachim99@74: DetailPrint "Integration to WinCVS" joachim99@74: #MessageBox MB_OK "If WinCVS is running, please close it before proceeding." joachim99@74: WriteRegStr HKCU "Software\WinCvs\wincvs\CVS settings" "P_Extdiff" '$INSTDIR\kdiff3.exe' joachim99@74: WriteRegBin HKCU "Software\WinCvs\wincvs\CVS settings" "P_DiffUseExtDiff" 01 joachim99@74: SectionEnd joachim99@74: joachim99@74: Section "TortoiseSVN" SecIntegrationTortoiseSVN joachim99@69: DetailPrint "Integration to TortoiseSVN" joachim99@69: WriteRegStr HKCU "Software\TortoiseSVN\" "Diff" '$INSTDIR\kdiff3.exe %base %mine --L1 Base --L2 Mine' joachim99@69: WriteRegStr HKCU "Software\TortoiseSVN\" "Merge" '$INSTDIR\kdiff3.exe %base %mine %theirs -o %merged --L1 Base --L2 Mine --L3 Theirs' joachim99@69: SectionEnd joachim99@75: joachim99@75: Section /o "SVN Merge tool" SecIntegrationSubversionDiff3Cmd joachim99@75: DetailPrint "Integrate diff3_cmd.bat for Subversion" joachim99@75: File "diff3_cmd.bat" joachim99@78: CreateDirectory '$APPDATA\Subversion' joachim99@78: CopyFiles '$INSTDIR\diff3_cmd.bat' '$APPDATA\Subversion' joachim99@75: SectionEnd joachim99@78: joachim99@78: joachim99@78: Section /o "ClearCase" SecIntegrationClearCase joachim99@78: DetailPrint "Integrate with Rational ClearCase from IBM" joachim99@78: ccInstallHelper::nsisPlugin "install" "$INSTDIR\kdiff3.exe" joachim99@78: joachim99@78: ;File "ccInstHelper.exe" joachim99@78: ;ExecWait '"$INSTDIR\ccInstHelper.exe" install "$INSTDIR\kdiff3.exe"' joachim99@78: SectionEnd joachim99@78: joachim99@66: SubSectionEnd joachim99@66: joachim99@66: ;-------------------------------- joachim99@66: ;Installer Functions joachim99@66: joachim99@66: Function .onInit joachim99@66: joachim99@66: !insertmacro MUI_LANGDLL_DISPLAY joachim99@75: !insertmacro MUI_INSTALLOPTIONS_EXTRACT "installForAllUsersPage.ini" joachim99@75: joachim99@75: FunctionEnd joachim99@75: joachim99@75: Function CustomPageC joachim99@75: joachim99@75: !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" joachim99@75: !insertmacro MUI_INSTALLOPTIONS_DISPLAY "installForAllUsersPage.ini" joachim99@66: joachim99@66: FunctionEnd joachim99@66: joachim99@94: joachim99@66: ;-------------------------------- joachim99@66: ;Descriptions joachim99@66: joachim99@74: ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGUAGE SPECIFIC joachim99@74: joachim99@74: ;Assign descriptions to sections joachim99@74: !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN joachim99@74: !insertmacro MUI_DESCRIPTION_TEXT ${SecSoftware} "Main program." joachim99@74: !insertmacro MUI_DESCRIPTION_TEXT ${SecDocumentation} "English documentation in HTML-format (Docs for other languages are available on the homepage.)" joachim99@74: !insertmacro MUI_DESCRIPTION_TEXT ${SecTranslations} "Translations for visible strings in many languages. Not needed for US-English." joachim99@75: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegration} "Integrate KDiff3 with certain programs. (See also the Readme for details.)" joachim99@74: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationExplorer} "Integrate KDiff3 with Explorer. Adds an entry for KDiff3 in the Send-To context menu." joachim99@75: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationDiffExtForKDiff3} "Installs Diff-Ext by Sergey Zorin. Adds entries for KDiff3 in Explorer context menu." joachim99@74: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationWinCVS} "Integrate KDiff3 with WinCVS. (Please close WinCVS before proceeding.)" joachim99@74: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationTortoiseSVN} "Integrate KDiff3 with TortoiseSVN." joachim99@75: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationSubversionDiff3Cmd} "Install diff3_cmd.bat for Subversion merge" joachim99@78: !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationClearCase} "Integrate KDiff3 with Rational Clearcase from IBM" joachim99@74: !insertmacro MUI_FUNCTION_DESCRIPTION_END joachim99@74: joachim99@66: joachim99@66: ;-------------------------------- joachim99@66: ;Uninstaller Section joachim99@66: joachim99@66: Section "Uninstall" joachim99@75: ReadRegStr $INSTALL_FOR_ALL_USERS HKCU "Software\KDiff3" "InstalledForAllUsers" joachim99@75: ;Set ShellVarContext: Defines if SHCTX points to HKLM or HKCU joachim99@75: StrCmp $INSTALL_FOR_ALL_USERS "0" "" +3 joachim99@75: SetShellVarContext current joachim99@75: Goto +2 joachim99@75: SetShellVarContext all joachim99@94: joachim99@74: Delete "$INSTDIR\Uninstall.exe" joachim99@74: Delete "$INSTDIR\kdiff3.exe" joachim99@74: Delete "$INSTDIR\COPYING.txt" joachim99@74: Delete "$INSTDIR\Readme_Win.txt" joachim99@74: Delete "$INSTDIR\ChangeLog.txt" joachim99@75: Delete "$INSTDIR\diff_ext_for_kdiff3.dll" joachim99@78: Delete "$INSTDIR\diff_ext_for_kdiff3_old.dll" joachim99@94: Delete "$INSTDIR\diff_ext_for_kdiff3_64.dll" joachim99@94: Delete "$INSTDIR\diff_ext_for_kdiff3_64_old.dll" joachim99@75: Delete "$INSTDIR\DIFF-EXT-LICENSE.txt" joachim99@74: joachim99@74: RMDir /r "$INSTDIR\doc" joachim99@74: RMDir /r "$INSTDIR\translations" joachim99@74: RMDir "$INSTDIR" # without /r the dir is only removed if completely empty joachim99@66: joachim99@74: !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP joachim99@66: joachim99@74: Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" joachim99@74: Delete "$SMPROGRAMS\$MUI_TEMP\KDiff3.lnk" joachim99@78: Delete "$SMPROGRAMS\$MUI_TEMP\KDiff3-Qt4.lnk" joachim99@74: Delete "$SMPROGRAMS\$MUI_TEMP\Readme.lnk" joachim99@75: Delete "$SMPROGRAMS\$MUI_TEMP\GPL.lnk" joachim99@75: Delete "$SMPROGRAMS\$MUI_TEMP\Diff-Ext License.lnk" joachim99@75: joachim99@74: Delete "$SMPROGRAMS\$MUI_TEMP\Documentation.lnk" joachim99@74: Delete "$QUICKLAUNCH\KDiff3.lnk" joachim99@80: Delete "$SENDTO\KDiff3.lnk" joachim99@74: joachim99@74: ;Delete empty start menu parent diretories joachim99@74: StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" joachim99@74: joachim99@74: startMenuDeleteLoop: joachim99@74: ClearErrors joachim99@74: RMDir $MUI_TEMP joachim99@74: GetFullPathName $MUI_TEMP "$MUI_TEMP\.." joachim99@74: joachim99@74: IfErrors startMenuDeleteLoopDone joachim99@74: joachim99@74: StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop joachim99@74: startMenuDeleteLoopDone: joachim99@94: joachim99@75: DeleteRegKey HKCU "Software\KDiff3" joachim99@75: DeleteRegKey SHCTX "Software\KDiff3" joachim99@75: DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" joachim99@75: joachim99@75: ; diff_ext_for_kdiff3 joachim99@94: ${If} ${RunningX64} joachim99@94: StrCpy $DIFF_EXT_CLSID ${DIFF_EXT64_CLSID} joachim99@94: ${Else} joachim99@94: StrCpy $DIFF_EXT_CLSID ${DIFF_EXT32_CLSID} joachim99@94: ${EndIf} joachim99@94: SetRegView 64 joachim99@94: DeleteRegKey SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" joachim99@75: DeleteRegKey SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" joachim99@75: DeleteRegKey SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" joachim99@75: DeleteRegKey SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\diff-ext-for-kdiff3" joachim99@94: DeleteRegValue SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" joachim99@94: SetRegView 32 joachim99@66: joachim99@78: ; clearcase joachim99@78: ccInstallHelper::nsisPlugin "uninstall" "$INSTDIR\kdiff3.exe" joachim99@78: ;ExecWait '"$INSTDIR\ccInstHelper.exe" uninstall "$INSTDIR\kdiff3.exe"' joachim99@78: ;Delete "$INSTDIR\ccInstHelper.exe" joachim99@78: joachim99@66: SectionEnd joachim99@66: joachim99@66: ;-------------------------------- joachim99@66: ;Uninstaller Functions joachim99@66: joachim99@66: Function un.onInit joachim99@66: joachim99@74: !insertmacro MUI_UNGETLANGUAGE joachim99@66: joachim99@78: FunctionEnd