blob: e234ab09517a441511bdb04d28ab008b0a602335 [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
Guillaume Roguez5fac25a2016-03-16 22:49:09 -04005!define VERSIONMAJOR 1
6!define VERSIONMINOR 0
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
Edric Milaret34eb9202015-05-14 12:36:41 -040036# This will be in the installer/uninstaller's title bar
37Name "${COMPANYNAME} - ${APPNAME}"
38
Edric Milaret9e12e882015-05-21 11:52:05 -040039outFile "ring-windows-nightly.exe"
Edric Milaret34eb9202015-05-14 12:36:41 -040040
41!include LogicLib.nsh
42!include "FileFunc.nsh"
43
Edric Milaret34eb9202015-05-14 12:36:41 -040044!macro VerifyUserIsAdmin
45UserInfo::GetAccountType
46pop $0
47${If} $0 != "admin" ;Require admin rights on NT4+
48 messageBox mb_iconstop "Administrator rights required!"
49 setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
50 quit
51${EndIf}
52!macroend
53
Edric Milaret06d51572016-04-25 12:13:34 -040054!include x64.nsh
55
Edric Milaret34eb9202015-05-14 12:36:41 -040056function .onInit
57 setShellVarContext all
58 !insertmacro VerifyUserIsAdmin
Edric Milaret06d51572016-04-25 12:13:34 -040059 StrCpy $INSTDIR "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
60 ${If} ${ARCH} == "x64"
61 ${If} ${RunningX64}
62 StrCpy $INSTDIR "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}"
63 ${EndIf}
64 ${EndIf}
Edric Milaret34eb9202015-05-14 12:36:41 -040065functionEnd
66
Edric Milaretc37591c2015-12-11 11:02:58 -050067Function LaunchLink
68 ExecShell "" "$DESKTOP\Ring.lnk"
69FunctionEnd
70
Edric Milaret34eb9202015-05-14 12:36:41 -040071section "install"
72 # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
73 setOutPath $INSTDIR
74 # Files added here should be removed by the uninstaller (see section "uninstall")
Edric Milareta34e4ba2015-06-01 14:47:49 -040075 file "Ring.exe"
Edric Milaret34eb9202015-05-14 12:36:41 -040076 file "ring.ico"
77 file *.dll
78 setOutPath $INSTDIR\platforms
79 file platforms/*
80 setOutPath $INSTDIR\imageformats
81 file imageformats/*
82 setOutPath $INSTDIR\ringtones
83 file ringtones/*
Edric Milaret53ac6e52015-09-14 13:37:06 -040084 setOutPath $INSTDIR\share\ring\translations
85 file share/ring/translations/*
86 setOutPath $INSTDIR\share\libringclient\translations
87 file share/libringclient/translations/*
Edric Milaret34eb9202015-05-14 12:36:41 -040088
89 # Uninstaller - See function un.onInit and section "uninstall" for configuration
90 writeUninstaller "$INSTDIR\uninstall.exe"
91
Edric Milaret465a3142015-06-02 15:02:52 -040092 SetOutPath $INSTDIR
Edric Milaret34eb9202015-05-14 12:36:41 -040093 #Desktop
Edric Milareta34e4ba2015-06-01 14:47:49 -040094 CreateShortCut "$DESKTOP\Ring.lnk" "$INSTDIR\Ring.exe" ""
Edric Milaret34eb9202015-05-14 12:36:41 -040095
96 # Start Menu
97 createDirectory "$SMPROGRAMS\${COMPANYNAME}"
Edric Milareta34e4ba2015-06-01 14:47:49 -040098 createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Ring.exe" "" "$INSTDIR\ring.ico"
Edric Milaret34eb9202015-05-14 12:36:41 -040099
100 # Registry information for add/remove programs
101 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" ${APPNAME}
102 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
103 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
104 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
105 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\ring.ico$\""
106 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "${COMPANYNAME}"
107 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
108 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
109 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
110 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}"
111 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
112 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
113 # There is no option for modifying or repairing the install
114 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
115 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
116 ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
117 IntFmt $0 "0x%08X" $0
118 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" "$0"
Edric Milaretfe390942015-08-04 13:41:03 -0400119
120 # Write ring protocol in registry
121 WriteRegStr HKCR "ring" "URL Protocol" "$\"$\""
122 WriteRegStr HKCR "ring\DefaultIcon" "" "$\"$INSTDIR\Ring.exe,1$\""
123 WriteRegStr HKCR "ring\shell\open\command" "" "$\"$INSTDIR\Ring.exe$\" $\"%1$\""
Edric Milaret34eb9202015-05-14 12:36:41 -0400124sectionEnd
125
126# Uninstaller
127
128function un.onInit
129 SetShellVarContext all
130
131 #Verify the uninstaller - last chance to back out
132 MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
133 Abort
134 next:
135 !insertmacro VerifyUserIsAdmin
136functionEnd
137
138section "uninstall"
139
140 # Remove Start Menu launcher
141 delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
142 # Try to remove the Start Menu folder - this will only happen if it is empty
143 rmDir "$SMPROGRAMS\${COMPANYNAME}"
144
145 # Remove files
Edric Milareta34e4ba2015-06-01 14:47:49 -0400146 delete $INSTDIR\Ring.exe
Edric Milaret34eb9202015-05-14 12:36:41 -0400147 delete $INSTDIR\ring.ico
148 delete $INSTDIR\*.dll
149 rmDir /r $INSTDIR\platforms
150 rmDir /r $INSTDIR\imageformats
151 rmDir /r $INSTDIR\ringtones
Edric Milaret53ac6e52015-09-14 13:37:06 -0400152 rmDir /r $INSTDIR\share
Edric Milaret34eb9202015-05-14 12:36:41 -0400153
154 # Always delete uninstaller as the last action
155 delete $INSTDIR\uninstall.exe
156
157 # Try to remove the install directory - this will only happen if it is empty
158
159 rmDir $INSTDIR
160
161 # Remove uninstaller information from the registry
162 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
163sectionEnd