blob: 3261df4e98d23d3370a47947d750f98dbd749a93 [file] [log] [blame]
Edric Milaret34eb9202015-05-14 12:36:41 -04001!define APPNAME "Ring"
2!define COMPANYNAME "Savoir-Faire Linux"
3!define DESCRIPTION "The Ring client for Windows"
4# These three must be integers
5!define VERSIONMAJOR 0
Guillaume Rogueze024e472015-05-15 17:12:56 -04006!define VERSIONMINOR 3
Guillaume Roguez106bcad2015-05-15 17:03:16 -04007!define VERSIONBUILD 0
Edric Milaret34eb9202015-05-14 12:36:41 -04008# These will be displayed by the "Click here for support information" link in "Add/Remove Programs"
9# It is possible to use "mailto:" links in here to open the email client
10!define HELPURL "https://projects.savoirfairelinux.com/projects/ring/wiki" # "Support Information" link
11!define UPDATEURL "http://ring.cx/en/documentation/windows-installation" # "Product Updates" link
12!define ABOUTURL "http://ring.cx/en#about" # "Publisher" link
13
14!include "MUI2.nsh"
15
16!define MUI_WELCOMEPAGE
17!define MUI_LICENSEPAGE
18!define MUI_DIRECTORYPAGE
19!define MUI_ABORTWARNING
20!define MUI_UNINSTALLER
21!define MUI_UNCONFIRMPAGE
Edric Milaretc37591c2015-12-11 11:02:58 -050022 !define MUI_FINISHPAGE_RUN
23 !define MUI_FINISHPAGE_RUN_TEXT "Launch Ring"
24 !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
25
26!insertmacro MUI_PAGE_WELCOME
27!insertmacro MUI_PAGE_LICENSE "License.rtf"
28!insertmacro MUI_PAGE_DIRECTORY
29!insertmacro MUI_PAGE_INSTFILES
30!insertmacro MUI_PAGE_FINISH
Edric Milaret34eb9202015-05-14 12:36:41 -040031
32!insertmacro MUI_LANGUAGE "English"
33
34RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
35
36InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
37
Edric Milaret34eb9202015-05-14 12:36:41 -040038# This will be in the installer/uninstaller's title bar
39Name "${COMPANYNAME} - ${APPNAME}"
40
Edric Milaret9e12e882015-05-21 11:52:05 -040041outFile "ring-windows-nightly.exe"
Edric Milaret34eb9202015-05-14 12:36:41 -040042
43!include LogicLib.nsh
44!include "FileFunc.nsh"
45
Edric Milaret34eb9202015-05-14 12:36:41 -040046!macro VerifyUserIsAdmin
47UserInfo::GetAccountType
48pop $0
49${If} $0 != "admin" ;Require admin rights on NT4+
50 messageBox mb_iconstop "Administrator rights required!"
51 setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
52 quit
53${EndIf}
54!macroend
55
56function .onInit
57 setShellVarContext all
58 !insertmacro VerifyUserIsAdmin
59functionEnd
60
Edric Milaretc37591c2015-12-11 11:02:58 -050061Function LaunchLink
62 ExecShell "" "$DESKTOP\Ring.lnk"
63FunctionEnd
64
Edric Milaret34eb9202015-05-14 12:36:41 -040065section "install"
66 # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
67 setOutPath $INSTDIR
68 # Files added here should be removed by the uninstaller (see section "uninstall")
Edric Milareta34e4ba2015-06-01 14:47:49 -040069 file "Ring.exe"
Edric Milaret34eb9202015-05-14 12:36:41 -040070 file "ring.ico"
71 file *.dll
72 setOutPath $INSTDIR\platforms
73 file platforms/*
74 setOutPath $INSTDIR\imageformats
75 file imageformats/*
76 setOutPath $INSTDIR\ringtones
77 file ringtones/*
Edric Milaret53ac6e52015-09-14 13:37:06 -040078 setOutPath $INSTDIR\share\ring\translations
79 file share/ring/translations/*
80 setOutPath $INSTDIR\share\libringclient\translations
81 file share/libringclient/translations/*
Edric Milaret34eb9202015-05-14 12:36:41 -040082
83 # Uninstaller - See function un.onInit and section "uninstall" for configuration
84 writeUninstaller "$INSTDIR\uninstall.exe"
85
Edric Milaret465a3142015-06-02 15:02:52 -040086 SetOutPath $INSTDIR
Edric Milaret34eb9202015-05-14 12:36:41 -040087 #Desktop
Edric Milareta34e4ba2015-06-01 14:47:49 -040088 CreateShortCut "$DESKTOP\Ring.lnk" "$INSTDIR\Ring.exe" ""
Edric Milaret34eb9202015-05-14 12:36:41 -040089
90 # Start Menu
91 createDirectory "$SMPROGRAMS\${COMPANYNAME}"
Edric Milareta34e4ba2015-06-01 14:47:49 -040092 createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Ring.exe" "" "$INSTDIR\ring.ico"
Edric Milaret34eb9202015-05-14 12:36:41 -040093
94 # Registry information for add/remove programs
95 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" ${APPNAME}
96 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
97 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
98 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
99 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\ring.ico$\""
100 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "${COMPANYNAME}"
101 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
102 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
103 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
104 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}"
105 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
106 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
107 # There is no option for modifying or repairing the install
108 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
109 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
110 ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
111 IntFmt $0 "0x%08X" $0
112 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" "$0"
Edric Milaretfe390942015-08-04 13:41:03 -0400113
114 # Write ring protocol in registry
115 WriteRegStr HKCR "ring" "URL Protocol" "$\"$\""
116 WriteRegStr HKCR "ring\DefaultIcon" "" "$\"$INSTDIR\Ring.exe,1$\""
117 WriteRegStr HKCR "ring\shell\open\command" "" "$\"$INSTDIR\Ring.exe$\" $\"%1$\""
Edric Milaret34eb9202015-05-14 12:36:41 -0400118sectionEnd
119
120# Uninstaller
121
122function un.onInit
123 SetShellVarContext all
124
125 #Verify the uninstaller - last chance to back out
126 MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
127 Abort
128 next:
129 !insertmacro VerifyUserIsAdmin
130functionEnd
131
132section "uninstall"
133
134 # Remove Start Menu launcher
135 delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
136 # Try to remove the Start Menu folder - this will only happen if it is empty
137 rmDir "$SMPROGRAMS\${COMPANYNAME}"
138
139 # Remove files
Edric Milareta34e4ba2015-06-01 14:47:49 -0400140 delete $INSTDIR\Ring.exe
Edric Milaret34eb9202015-05-14 12:36:41 -0400141 delete $INSTDIR\ring.ico
142 delete $INSTDIR\*.dll
143 rmDir /r $INSTDIR\platforms
144 rmDir /r $INSTDIR\imageformats
145 rmDir /r $INSTDIR\ringtones
Edric Milaret53ac6e52015-09-14 13:37:06 -0400146 rmDir /r $INSTDIR\share
Edric Milaret34eb9202015-05-14 12:36:41 -0400147
148 # Always delete uninstaller as the last action
149 delete $INSTDIR\uninstall.exe
150
151 # Try to remove the install directory - this will only happen if it is empty
152
153 rmDir $INSTDIR
154
155 # Remove uninstaller information from the registry
156 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
157sectionEnd