typo
[deb_libcec.git] / project / libCEC.nsi
CommitLineData
09054f70 1;libCEC installer
d4954fb7 2;Copyright (C) 2012 Pulse-Eight Ltd.
09054f70
LOK
3;http://www.pulse-eight.com/
4
5!include "MUI2.nsh"
6!include "nsDialogs.nsh"
7!include "LogicLib.nsh"
8!include "x64.nsh"
9
999665e3 10Name "Pulse-Eight libCEC version 2.0.0"
4d760b54 11OutFile "..\build\libCEC-installer.exe"
09054f70
LOK
12
13XPStyle on
8dfe215b
LOK
14InstallDir "$PROGRAMFILES\Pulse-Eight\USB-CEC Adapter"
15InstallDirRegKey HKLM "Software\Pulse-Eight\USB-CEC Adapter software" ""
09054f70
LOK
16RequestExecutionLevel admin
17Var StartMenuFolder
b80ca2f2
MK
18Var VSRedistSetupError
19Var VSRedistInstalled
09054f70 20
dfb08039 21!define MUI_FINISHPAGE_LINK "Visit http://www.pulse-eight.com/ for more information."
09054f70
LOK
22!define MUI_FINISHPAGE_LINK_LOCATION "http://www.pulse-eight.com/"
23!define MUI_ABORTWARNING
24
25!insertmacro MUI_PAGE_WELCOME
26!insertmacro MUI_PAGE_LICENSE "..\COPYING"
d4954fb7 27!insertmacro MUI_PAGE_COMPONENTS
09054f70
LOK
28!insertmacro MUI_PAGE_DIRECTORY
29
8dfe215b
LOK
30!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
31!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Pulse-Eight\USB-CEC Adapter sofware"
09054f70
LOK
32!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
33!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
34
35!insertmacro MUI_PAGE_INSTFILES
36!insertmacro MUI_PAGE_FINISH
37
38!insertmacro MUI_UNPAGE_WELCOME
39!insertmacro MUI_UNPAGE_CONFIRM
40!insertmacro MUI_UNPAGE_INSTFILES
41!insertmacro MUI_UNPAGE_FINISH
42
43!insertmacro MUI_LANGUAGE "English"
44
d4954fb7
LOK
45InstType "USB-CEC driver & libCEC"
46InstType "USB-CEC driver only"
47InstType "Full installation"
09054f70 48
d4954fb7 49Section "USB-CEC driver" SecDriver
09054f70
LOK
50 SetShellVarContext current
51 SectionIn RO
d4954fb7 52 SectionIn 1 2 3
4d760b54 53
8dfe215b
LOK
54 ; Uninstall the old unsigned software if it's found
55 ReadRegStr $1 HKCU "Software\libCEC" ""
56 ${If} $1 != ""
57 MessageBox MB_OK \
58 "A previous libCEC and USB-CEC driver was found. This update requires the old version to be uninstalled. Press OK to uninstall the old version."
59 ExecWait '"$1\Uninstall.exe" /S _?=$1'
60 Delete "$1\Uninstall.exe"
61 RMDir "$1"
62 ${EndIf}
63
71b6af0a
LOK
64 ; Delete libcec.dll and libcec.x64.dll from the system directory
65 ; Let a seperate installer do this, when we need it
66 Delete "$SYSDIR\libcec.dll"
67 ${If} ${RunningX64}
68 Delete "$SYSDIR\libcec.x64.dll"
69 ${EndIf}
70
4d760b54 71 ; Copy to the installation directory
09054f70
LOK
72 SetOutPath "$INSTDIR"
73 File "..\AUTHORS"
09054f70 74 File "..\COPYING"
f6562fae 75
8dfe215b 76 ; Copy the driver installer
09054f70 77 SetOutPath "$INSTDIR\driver"
8dfe215b 78 File "..\build\p8-usbcec-driver-installer.exe"
4d760b54 79
09054f70 80 ;Store installation folder
8dfe215b 81 WriteRegStr HKLM "Software\Pulse-Eight\USB-CEC Adapter software" "" $INSTDIR
09054f70
LOK
82
83 ;Create uninstaller
84 WriteUninstaller "$INSTDIR\Uninstall.exe"
85
86 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
87 SetOutPath "$INSTDIR"
88
89 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
8dfe215b 90 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk" "$INSTDIR\Uninstall.exe" \
09054f70 91 "" "$INSTDIR\Uninstall.exe" 0 SW_SHOWNORMAL \
8dfe215b 92 "" "Uninstall Pulse-Eight USB-CEC Adapter software."
09054f70
LOK
93
94 WriteINIStr "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url" "InternetShortcut" "URL" "http://www.pulse-eight.com/"
95 !insertmacro MUI_STARTMENU_WRITE_END
d4954fb7 96
09054f70 97 ;add entry to add/remove programs
8dfe215b
LOK
98 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
99 "DisplayName" "Pulse-Eight USB-CEC Adapter software"
100 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70 101 "UninstallString" "$INSTDIR\uninstall.exe"
8dfe215b 102 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70 103 "NoModify" 1
8dfe215b 104 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70 105 "NoRepair" 1
8dfe215b 106 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70 107 "InstallLocation" "$INSTDIR"
8dfe215b 108 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70 109 "DisplayIcon" "$INSTDIR\cec-client.exe,0"
8dfe215b
LOK
110 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
111 "Publisher" "Pulse-Eight Limited"
112 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70 113 "HelpLink" "http://www.pulse-eight.com/"
8dfe215b 114 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
09054f70
LOK
115 "URLInfoAbout" "http://www.pulse-eight.com"
116
117 ;install driver
8dfe215b
LOK
118 ExecWait '"$INSTDIR\driver\p8-usbcec-driver-installer.exe" /S'
119 Delete "$INSTDIR\driver\p8-usbcec-driver-installer.exe"
09054f70
LOK
120SectionEnd
121
d4954fb7
LOK
122Section "libCEC" SecLibCec
123 SetShellVarContext current
124 SectionIn 1 3
125
126 ; Copy to the installation directory
127 SetOutPath "$INSTDIR"
128 File "..\ChangeLog"
129 File "..\README"
130 File "..\build\*.dll"
8fe82f39 131 File "..\build\*.xml"
d4954fb7
LOK
132 SetOutPath "$INSTDIR\x64"
133 File /nonfatal "..\build\x64\*.dll"
8fe82f39 134 File /nonfatal "..\build\x64\*.xml"
d4954fb7
LOK
135
136 ; Copy to XBMC\system
137 ReadRegStr $1 HKCU "Software\XBMC" ""
138 ${If} $1 != ""
139 SetOutPath "$1\system"
140 File "..\build\libcec.dll"
141 ${EndIf}
142
143 ; Copy the headers
144 SetOutPath "$INSTDIR\include"
145 File /r /x *.so "..\include\cec*.*"
d4954fb7
LOK
146SectionEnd
147
148Section "CEC debug client" SecCecClient
149 SetShellVarContext current
150 SectionIn 3
151
152 ; Copy to the installation directory
153 SetOutPath "$INSTDIR"
10c03f2c 154 File /x p8-usbcec-driver-installer.exe /x cec-config-gui.exe "..\build\*.exe"
d4954fb7 155 SetOutPath "$INSTDIR\x64"
10c03f2c 156 File /nonfatal /x cec-config-gui.exe "..\build\x64\*.exe"
d4954fb7
LOK
157
158 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
159 SetOutPath "$INSTDIR"
160
161 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
d4954fb7
LOK
162 ${If} ${RunningX64}
163 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk" "$INSTDIR\x64\cec-client.x64.exe" \
164 "" "$INSTDIR\cec-client.x64.exe" 0 SW_SHOWNORMAL \
165 "" "Start the CEC Test client (x64)."
c9549d35
LOK
166 ${Else}
167 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk" "$INSTDIR\cec-client.exe" \
168 "" "$INSTDIR\cec-client.exe" 0 SW_SHOWNORMAL \
169 "" "Start the CEC Test client."
d4954fb7
LOK
170 ${EndIf}
171 !insertmacro MUI_STARTMENU_WRITE_END
172
173SectionEnd
174
10c03f2c
LOK
175Section "CEC configuration tool" SecCecConfig
176 SetShellVarContext current
177 SectionIn 1 3
178
179 ; Copy to the installation directory
180 SetOutPath "$INSTDIR"
181 File "..\build\cec-config-gui.exe"
182 SetOutPath "$INSTDIR\x64"
183 File /nonfatal "..\build\x64\cec-config-gui.exe"
184
185 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
186 SetOutPath "$INSTDIR"
187
188 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
10c03f2c
LOK
189 ${If} ${RunningX64}
190 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk" "$INSTDIR\x64\cec-config-gui.exe" \
191 "" "$INSTDIR\x64\cec-config-gui.exe" 0 SW_SHOWNORMAL \
192 "" "Start the CEC Adapter Configuration tool (x64)."
c9549d35
LOK
193 ${Else}
194 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk" "$INSTDIR\cec-config-gui.exe" \
195 "" "$INSTDIR\cec-config-gui.exe" 0 SW_SHOWNORMAL \
196 "" "Start the CEC Adapter Configuration tool."
10c03f2c
LOK
197 ${EndIf}
198 !insertmacro MUI_STARTMENU_WRITE_END
199
200SectionEnd
201
b80ca2f2
MK
202!define REDISTRIBUTABLE_SECTIONNAME "Microsoft Visual C++ 2010 Redistributable Package"
203Section "" SecVCRedist
204 SetShellVarContext current
205 SectionIn 1 3
206
207
208 ${If} $VSRedistInstalled != "Yes"
209 ; Download redistributable
210 SetOutPath "$TEMP\vc20XX"
211 ${If} ${RunningX64}
212 NSISdl::download http://packages.pulse-eight.net/windows/vcredist_x64.exe vcredist_x64.exe
213 ExecWait '"$TEMP\vc20XX\vcredist_x64.exe" /q' $VSRedistSetupError
214 ${Else}
215 NSISdl::download http://packages.pulse-eight.net/windows/vcredist_x86.exe vcredist_x86.exe
216 ExecWait '"$TEMP\vc20XX\vcredist_x86.exe" /q' $VSRedistSetupError
217 ${Endif}
218 RMDIR /r "$TEMP\vc20XX"
219 ${Endif}
220
221SectionEnd
222
223Function .onInit
224
225 ; SP0 x86
226 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{196BB40D-1578-3D01-B289-BEFC77A11A1E}" "Version"
227 ${If} $1 != ""
228 StrCpy $VSRedistInstalled "Yes"
229 ${Endif}
230
231 ; SP0 x64
232 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}" "Version"
233 ${If} $1 != ""
234 StrCpy $VSRedistInstalled "Yes"
235 ${Endif}
236
237 ; SP0 ia64
238 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C1A35166-4301-38E9-BA67-02823AD72A1B}" "Version"
239 ${If} $1 != ""
240 StrCpy $VSRedistInstalled "Yes"
241 ${Endif}
242
243 ; SP1 x86
244 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}" "Version"
245 ${If} $1 != ""
246 StrCpy $VSRedistInstalled "Yes"
247 ${Endif}
248
249 ; SP1 x64
250 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" "Version"
251 ${If} $1 != ""
252 StrCpy $VSRedistInstalled "Yes"
253 ${Endif}
254
255 ; SP1 ia64
256 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}" "Version"
257 ${If} $1 != ""
258 StrCpy $VSRedistInstalled "Yes"
259 ${Endif}
260
261 ${If} $VSRedistInstalled == "Yes"
262 !insertMacro UnSelectSection ${SecVCRedist}
263 SectionSetText ${SecVCRedist} ""
264 ${Else}
265 !insertMacro SelectSection ${SecVCRedist}
266 SectionSetText ${SecVCRedist} "${REDISTRIBUTABLE_SECTIONNAME}"
267 ${Endif}
268
269FunctionEnd
270
09054f70
LOK
271;--------------------------------
272;Uninstaller Section
273
274Section "Uninstall"
275
276 SetShellVarContext current
277
09054f70 278 Delete "$INSTDIR\AUTHORS"
10c03f2c 279 Delete "$INSTDIR\*.exe"
09054f70
LOK
280 Delete "$INSTDIR\ChangeLog"
281 Delete "$INSTDIR\COPYING"
7879fa15 282 Delete "$INSTDIR\*.dll"
f00ff009 283 Delete "$INSTDIR\*.lib"
8fe82f39 284 Delete "$INSTDIR\*.xml"
4d760b54
LOK
285 Delete "$INSTDIR\x64\*.dll"
286 Delete "$INSTDIR\x64\*.lib"
10c03f2c 287 Delete "$INSTDIR\x64\*.exe"
8fe82f39 288 Delete "$INSTDIR\x64\*.xml"
09054f70 289 Delete "$INSTDIR\README"
71b6af0a
LOK
290 Delete "$SYSDIR\libcec.dll"
291 ${If} ${RunningX64}
292 Delete "$SYSDIR\libcec.x64.dll"
293 ${EndIf}
8dfe215b
LOK
294
295 ; Uninstall the driver
296 ReadRegStr $1 HKLM "Software\Pulse-Eight\USB-CEC Adapter driver" ""
297 ${If} $1 != ""
298 ExecWait '"$1\Uninstall.exe" /S _?=$1'
299 ${EndIf}
09054f70
LOK
300
301 RMDir /r "$INSTDIR\include"
302 Delete "$INSTDIR\Uninstall.exe"
303 RMDir /r "$INSTDIR"
8dfe215b 304 RMDir "$PROGRAMFILES\Pulse-Eight"
09054f70
LOK
305
306 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
10c03f2c
LOK
307 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk"
308 ${If} ${RunningX64}
309 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk"
310 ${EndIf}
09054f70 311 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk"
f00ff009
LOK
312 ${If} ${RunningX64}
313 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk"
314 ${EndIf}
8dfe215b 315 Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk"
09054f70 316 Delete "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url"
8dfe215b 317 RMDir "$SMPROGRAMS\$StartMenuFolder"
09054f70 318
8dfe215b
LOK
319 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware"
320 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter driver"
321 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight\USB-CEC Adapter software"
322 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight"
09054f70 323SectionEnd