xref: /glogg/glogg.nsi (revision afcc2cb7f4c53ca0b75798e15ea4c72f949f1fcc)
19a361c77SNicolas Bonnefon# NSIS script creating the Windows installer for glogg
29a361c77SNicolas Bonnefon
39a361c77SNicolas Bonnefon# Is passed to the script using -DVERSION=$(git describe) on the command line
49a361c77SNicolas Bonnefon!ifndef VERSION
59a361c77SNicolas Bonnefon    !define VERSION 'anonymous-build'
69a361c77SNicolas Bonnefon!endif
79a361c77SNicolas Bonnefon
89a361c77SNicolas Bonnefon# Headers
99a361c77SNicolas Bonnefon!include "MUI2.nsh"
1036b4ae36SNicolas Bonnefon!include "FileAssociation.nsh"
119a361c77SNicolas Bonnefon
129a361c77SNicolas Bonnefon# General
139a361c77SNicolas BonnefonOutFile "glogg-${VERSION}-setup.exe"
149a361c77SNicolas Bonnefon
159a361c77SNicolas BonnefonXpStyle on
169a361c77SNicolas Bonnefon
179a361c77SNicolas BonnefonSetCompressor /SOLID lzma
189a361c77SNicolas Bonnefon
199a361c77SNicolas Bonnefon; Registry key to keep track of the directory we are installed in
209a361c77SNicolas BonnefonInstallDir "$PROGRAMFILES\glogg"
219a361c77SNicolas BonnefonInstallDirRegKey HKLM Software\glogg ""
229a361c77SNicolas Bonnefon
239a361c77SNicolas Bonnefon; glogg icon
249a361c77SNicolas Bonnefon; !define MUI_ICON glogg.ico
259a361c77SNicolas Bonnefon
269a361c77SNicolas BonnefonRequestExecutionLevel user
279a361c77SNicolas Bonnefon
289a361c77SNicolas BonnefonName "glogg"
299a361c77SNicolas BonnefonCaption "glogg ${VERSION} Setup"
309a361c77SNicolas Bonnefon
319a361c77SNicolas Bonnefon# Pages
329a361c77SNicolas Bonnefon!define MUI_WELCOMEPAGE_TITLE "Welcome to the glogg ${VERSION} Setup Wizard"
3336b4ae36SNicolas Bonnefon!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of glogg\
3436b4ae36SNicolas Bonnefon, a fast, advanced log explorer.$\r$\n$\r$\n\
3536b4ae36SNicolas Bonnefonglogg and the Qt libraries are released under the GPL, see \
3636b4ae36SNicolas Bonnefonthe COPYING file.$\r$\n$\r$\n$_CLICK"
379a361c77SNicolas Bonnefon; MUI_FINISHPAGE_LINK_LOCATION "http://nsis.sf.net/"
389a361c77SNicolas Bonnefon
399a361c77SNicolas Bonnefon!insertmacro MUI_PAGE_WELCOME
409a361c77SNicolas Bonnefon;!insertmacro MUI_PAGE_LICENSE "COPYING"
419a361c77SNicolas Bonnefon# !ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD...
429a361c77SNicolas Bonnefon!insertmacro MUI_PAGE_COMPONENTS
439a361c77SNicolas Bonnefon!insertmacro MUI_PAGE_DIRECTORY
449a361c77SNicolas Bonnefon!insertmacro MUI_PAGE_INSTFILES
459a361c77SNicolas Bonnefon!insertmacro MUI_PAGE_FINISH
469a361c77SNicolas Bonnefon
479a361c77SNicolas Bonnefon!insertmacro MUI_UNPAGE_WELCOME
489a361c77SNicolas Bonnefon!insertmacro MUI_UNPAGE_CONFIRM
499a361c77SNicolas Bonnefon!insertmacro MUI_UNPAGE_INSTFILES
509a361c77SNicolas Bonnefon!insertmacro MUI_UNPAGE_FINISH
519a361c77SNicolas Bonnefon
529a361c77SNicolas Bonnefon# Languages
539a361c77SNicolas Bonnefon!insertmacro MUI_LANGUAGE "English"
549a361c77SNicolas Bonnefon
559a361c77SNicolas Bonnefon# Installer sections
569a361c77SNicolas BonnefonSection "glogg" glogg
579a361c77SNicolas Bonnefon    ; Prevent this section from being unselected
589a361c77SNicolas Bonnefon    SectionIn RO
599a361c77SNicolas Bonnefon
609a361c77SNicolas Bonnefon    SetOutPath $INSTDIR
619a361c77SNicolas Bonnefon    File release\glogg.exe
629a361c77SNicolas Bonnefon    File release\mingwm10.dll
639a361c77SNicolas Bonnefon    File COPYING
64*afcc2cb7SNicolas Bonnefon    File README
659a361c77SNicolas Bonnefon
6636b4ae36SNicolas Bonnefon    ; Create the 'sendto' link
6736b4ae36SNicolas Bonnefon    CreateShortCut "$SENDTO\glogg.lnk" "$INSTDIR\glogg,exe" "" "$INSTDIR\glogg.exe" 0
6836b4ae36SNicolas Bonnefon
6936b4ae36SNicolas Bonnefon    ; Register as an otion (but not main handler) for some files (.txt, .Log, .cap)
7036b4ae36SNicolas Bonnefon    WriteRegStr HKCR "Applications\glogg.exe" "" ""
7136b4ae36SNicolas Bonnefon    WriteRegStr HKCR "Applications\glogg.exe\shell" "" "open"
7236b4ae36SNicolas Bonnefon    WriteRegStr HKCR "Applications\glogg.exe\shell\open" "FriendlyAppName" "glogg"
7336b4ae36SNicolas Bonnefon    WriteRegStr HKCR "Applications\glogg.exe\shell\open\command" "" '"$INSTDIR\glogg.exe" "%1"'
7436b4ae36SNicolas Bonnefon    WriteRegStr HKCR "*\OpenWithList\glogg.exe" "" ""
7536b4ae36SNicolas Bonnefon    WriteRegStr HKCR ".txt\OpenWithList\glogg.exe" "" ""
7636b4ae36SNicolas Bonnefon    WriteRegStr HKCR ".Log\OpenWithList\glogg.exe" "" ""
7736b4ae36SNicolas Bonnefon    WriteRegStr HKCR ".cap\OpenWithList\glogg.exe" "" ""
7836b4ae36SNicolas Bonnefon
799a361c77SNicolas Bonnefon    ; Register uninstaller
809a361c77SNicolas Bonnefon    WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg"\
819a361c77SNicolas Bonnefon"UninstallString" '"$INSTDIR\Uninstall.exe"'
829a361c77SNicolas Bonnefon    WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg"\
839a361c77SNicolas Bonnefon"InstallLocation" "$INSTDIR"
849a361c77SNicolas Bonnefon    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg" "DisplayName" "glogg"
859a361c77SNicolas Bonnefon    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg" "DisplayVersion" "${VERSION}"
869a361c77SNicolas Bonnefon    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg" "NoModify" "1"
879a361c77SNicolas Bonnefon    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg" "NoRepair" "1"
889a361c77SNicolas Bonnefon
899a361c77SNicolas Bonnefon    ; Create uninstaller
909a361c77SNicolas Bonnefon    WriteUninstaller "$INSTDIR\Uninstall.exe"
919a361c77SNicolas BonnefonSectionEnd
929a361c77SNicolas Bonnefon
939a361c77SNicolas BonnefonSection "Qt4 Runtime libraries" qtlibs
949a361c77SNicolas Bonnefon    SetOutPath $INSTDIR
959a361c77SNicolas Bonnefon    File release\QtCore4.dll
969a361c77SNicolas Bonnefon    File release\QtGui4.dll
979a361c77SNicolas BonnefonSectionEnd
989a361c77SNicolas Bonnefon
9936b4ae36SNicolas BonnefonSection "Create Start menu shortcut" shortcut
10036b4ae36SNicolas Bonnefon    SetShellVarContext all
10136b4ae36SNicolas Bonnefon    CreateShortCut "$SMPROGRAMS\glogg.lnk" "$INSTDIR\glogg.exe" "" "$INSTDIR\glogg.exe" 0
10236b4ae36SNicolas BonnefonSectionEnd
10336b4ae36SNicolas Bonnefon
10436b4ae36SNicolas BonnefonSection /o "Associate with .log files" associate
10536b4ae36SNicolas Bonnefon    ${registerExtension} "$INSTDIR\glogg.exe" ".log" "Log file"
10636b4ae36SNicolas BonnefonSectionEnd
10736b4ae36SNicolas Bonnefon
1089a361c77SNicolas Bonnefon# Descriptions
1099a361c77SNicolas Bonnefon!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
1109a361c77SNicolas Bonnefon    !insertmacro MUI_DESCRIPTION_TEXT ${glogg} "The core files required to use glogg."
1119a361c77SNicolas Bonnefon    !insertmacro MUI_DESCRIPTION_TEXT ${qtlibs} "Needed by glogg, you have to install these unless \
1129a361c77SNicolas Bonnefonyou already have the Qt4 development kit installed."
11336b4ae36SNicolas Bonnefon    !insertmacro MUI_DESCRIPTION_TEXT ${shortcut} "Create a shortcut in the Start menu for glogg."
114*afcc2cb7SNicolas Bonnefon    !insertmacro MUI_DESCRIPTION_TEXT ${associate} "Make glogg the default viewer for .log files."
1159a361c77SNicolas Bonnefon!insertmacro MUI_FUNCTION_DESCRIPTION_END
1169a361c77SNicolas Bonnefon
1179a361c77SNicolas Bonnefon# Uninstaller
1189a361c77SNicolas BonnefonSection "Uninstall"
1199a361c77SNicolas Bonnefon    Delete "$INSTDIR\Uninstall.exe"
1209a361c77SNicolas Bonnefon
1219a361c77SNicolas Bonnefon    Delete "$INSTDIR\glogg.exe"
122*afcc2cb7SNicolas Bonnefon    Delete "$INSTDIR\README"
1239a361c77SNicolas Bonnefon    Delete "$INSTDIR\COPYING"
1249a361c77SNicolas Bonnefon    Delete "$INSTDIR\mingwm10.dll"
1259a361c77SNicolas Bonnefon    Delete "$INSTDIR\QtCore4.dll"
1269a361c77SNicolas Bonnefon    Delete "$INSTDIR\QtGui4.dll"
1279a361c77SNicolas Bonnefon    RMDir "$INSTDIR"
1289a361c77SNicolas Bonnefon
1299a361c77SNicolas Bonnefon    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\glogg"
13036b4ae36SNicolas Bonnefon
13136b4ae36SNicolas Bonnefon    ; Remove settings
13236b4ae36SNicolas Bonnefon    DeleteRegKey HKCU "Software\glogg"
13336b4ae36SNicolas Bonnefon
13436b4ae36SNicolas Bonnefon    ; Remove the file associations
13536b4ae36SNicolas Bonnefon    ${unregisterExtension} ".log" "Log file"
13636b4ae36SNicolas Bonnefon
13736b4ae36SNicolas Bonnefon    DeleteRegKey HKCR "*\OpenWithList\glogg.exe"
13836b4ae36SNicolas Bonnefon    DeleteRegKey HKCR ".txt\OpenWithList\glogg.exe"
13936b4ae36SNicolas Bonnefon    DeleteRegKey HKCR ".Log\OpenWithList\glogg.exe"
14036b4ae36SNicolas Bonnefon    DeleteRegKey HKCR ".cap\OpenWithList\glogg.exe"
14136b4ae36SNicolas Bonnefon    DeleteRegKey HKCR "Applications\glogg.exe\shell\open\command"
14236b4ae36SNicolas Bonnefon    DeleteRegKey HKCR "Applications\glogg.exe\shell\open"
14336b4ae36SNicolas Bonnefon    DeleteRegKey HKCR "Applications\glogg.exe\shell"
14436b4ae36SNicolas Bonnefon    DeleteRegKey HKCR "Applications\glogg.exe"
1459a361c77SNicolas Bonnefon
1469a361c77SNicolas Bonnefon    ; Remove the shortcut, if any
1479a361c77SNicolas Bonnefon    SetShellVarContext all
1489a361c77SNicolas Bonnefon    Delete "$SMPROGRAMS\glogg.lnk"
1499a361c77SNicolas BonnefonSectionEnd
150