2 ;Copyright (C) 2011-2013 Pulse-Eight Ltd.
3 ;http://www.pulse-eight.com/
6 !include "nsDialogs.nsh"
7 !include "LogicLib.nsh"
10 Name "Pulse-Eight libCEC version 2.1.1"
11 OutFile "..\build\libCEC-installer.exe"
14 InstallDir "$PROGRAMFILES\Pulse-Eight\USB-CEC Adapter"
15 InstallDirRegKey HKLM "Software\Pulse-Eight\USB-CEC Adapter software" ""
16 RequestExecutionLevel admin
18 Var VSRedistSetupError
21 !define MUI_FINISHPAGE_LINK "Visit http://libcec.pulse-eight.com/ for more information."
22 !define MUI_FINISHPAGE_LINK_LOCATION "http://libcec.pulse-eight.com/"
23 !define MUI_ABORTWARNING
25 !insertmacro MUI_PAGE_WELCOME
26 !insertmacro MUI_PAGE_LICENSE "..\COPYING"
27 !insertmacro MUI_PAGE_COMPONENTS
28 !insertmacro MUI_PAGE_DIRECTORY
30 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
31 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Pulse-Eight\USB-CEC Adapter sofware"
32 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
33 !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
35 !insertmacro MUI_PAGE_INSTFILES
36 !insertmacro MUI_PAGE_FINISH
38 !insertmacro MUI_UNPAGE_WELCOME
39 !insertmacro MUI_UNPAGE_CONFIRM
40 !insertmacro MUI_UNPAGE_INSTFILES
41 !insertmacro MUI_UNPAGE_FINISH
43 !insertmacro MUI_LANGUAGE "English"
45 InstType "USB-CEC Driver & libCEC"
46 InstType "USB-CEC Driver Only"
47 InstType "Full installation"
49 Section "USB-CEC Driver" SecDriver
50 SetShellVarContext current
54 ; Uninstall the old unsigned software if it's found
55 ReadRegStr $1 HKCU "Software\libCEC" ""
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"
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"
68 Delete "$SYSDIR\libcec.x64.dll"
71 ; Copy to the installation directory
76 ; Copy the driver installer
77 SetOutPath "$INSTDIR\driver"
78 File "..\build\p8-usbcec-driver-installer.exe"
80 ;Store installation folder
81 WriteRegStr HKLM "Software\Pulse-Eight\USB-CEC Adapter software" "" $INSTDIR
84 WriteUninstaller "$INSTDIR\Uninstall.exe"
86 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
89 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
90 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk" "$INSTDIR\Uninstall.exe" \
91 "" "$INSTDIR\Uninstall.exe" 0 SW_SHOWNORMAL \
92 "" "Uninstall Pulse-Eight USB-CEC Adapter software."
94 WriteINIStr "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url" "InternetShortcut" "URL" "http://www.pulse-eight.com/"
95 !insertmacro MUI_STARTMENU_WRITE_END
97 ;add entry to add/remove programs
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" \
101 "UninstallString" "$INSTDIR\uninstall.exe"
102 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
104 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
106 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
107 "InstallLocation" "$INSTDIR"
108 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
109 "DisplayIcon" "$INSTDIR\cec-client.exe,0"
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" \
113 "HelpLink" "http://www.pulse-eight.com/"
114 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
115 "URLInfoAbout" "http://www.pulse-eight.com"
118 ExecWait '"$INSTDIR\driver\p8-usbcec-driver-installer.exe" /S'
119 Delete "$INSTDIR\driver\p8-usbcec-driver-installer.exe"
122 Section "libCEC" SecLibCec
123 SetShellVarContext current
126 ; Copy to the installation directory
127 SetOutPath "$INSTDIR"
130 File "..\build\*.dll"
131 File "..\build\*.xml"
132 SetOutPath "$INSTDIR\x64"
133 File /nonfatal "..\build\x64\*.dll"
134 File /nonfatal "..\build\x64\*.xml"
136 ; Copy to XBMC\system
137 ReadRegStr $1 HKCU "Software\XBMC" ""
139 SetOutPath "$1\system"
140 File "..\build\libcec.dll"
144 SetOutPath "$INSTDIR\include"
145 File /r /x *.so "..\include\cec*.*"
148 Section "CEC Debug Client" SecCecClient
149 SetShellVarContext current
152 ; Copy to the installation directory
153 SetOutPath "$INSTDIR"
154 File /x p8-usbcec-driver-installer.exe /x cec-tray.exe "..\build\*.exe"
155 SetOutPath "$INSTDIR\x64"
156 File /nonfatal /x cec-tray.exe "..\build\x64\*.exe"
158 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
159 SetOutPath "$INSTDIR"
161 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
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)."
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."
171 !insertmacro MUI_STARTMENU_WRITE_END
175 Section "libCEC Tray Application" SecCecTray
176 SetShellVarContext current
179 ; Uninstall previous beta builds of the tray application
180 ReadRegStr $1 HKLM "Software\Pulse-Eight\libCECTray" ""
183 "A previous beta build of the libCEC Tray Application was found. Press OK to uninstall the old version. Do not uninstall the driver when asked to. Thank you for participating in the beta test."
184 ExecWait '"$1\Uninstall.exe" /S _?=$1'
185 Delete "$1\Uninstall.exe"
188 ; Replace cec-config-gui.exe
189 Delete "$INSTDIR\cec-config-gui.exe"
191 Delete "$INSTDIR\x64\cec-config-gui.exe"
193 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk"
195 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk"
198 ; Copy to the installation directory
199 SetOutPath "$INSTDIR"
200 File "..\build\cec-tray.exe"
201 SetOutPath "$INSTDIR\x64"
202 File /nonfatal "..\build\x64\cec-tray.exe"
204 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
205 SetOutPath "$INSTDIR"
207 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
209 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\libCEC Tray (x64).lnk" "$INSTDIR\x64\cec-tray.exe" \
210 "" "$INSTDIR\x64\cec-tray.exe" 0 SW_SHOWNORMAL \
211 "" "Start the libCEC Tray (x64)."
213 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\libCEC Tray.lnk" "$INSTDIR\cec-tray.exe" \
214 "" "$INSTDIR\cec-tray.exe" 0 SW_SHOWNORMAL \
215 "" "Start the libCEC Tray."
217 !insertmacro MUI_STARTMENU_WRITE_END
221 !define REDISTRIBUTABLE_SECTIONNAME "Microsoft Visual C++ 2010 Redistributable Package"
222 Section "" SecVCRedist
223 SetShellVarContext current
227 ${If} $VSRedistInstalled != "Yes"
228 ; Download redistributable
229 SetOutPath "$TEMP\vc20XX"
231 NSISdl::download http://packages.pulse-eight.net/windows/vcredist_x64.exe vcredist_x64.exe
232 ExecWait '"$TEMP\vc20XX\vcredist_x64.exe" /q' $VSRedistSetupError
234 NSISdl::download http://packages.pulse-eight.net/windows/vcredist_x86.exe vcredist_x86.exe
235 ExecWait '"$TEMP\vc20XX\vcredist_x86.exe" /q' $VSRedistSetupError
237 RMDIR /r "$TEMP\vc20XX"
245 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{196BB40D-1578-3D01-B289-BEFC77A11A1E}" "Version"
247 StrCpy $VSRedistInstalled "Yes"
251 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}" "Version"
253 StrCpy $VSRedistInstalled "Yes"
257 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C1A35166-4301-38E9-BA67-02823AD72A1B}" "Version"
259 StrCpy $VSRedistInstalled "Yes"
263 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}" "Version"
265 StrCpy $VSRedistInstalled "Yes"
269 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" "Version"
271 StrCpy $VSRedistInstalled "Yes"
275 ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}" "Version"
277 StrCpy $VSRedistInstalled "Yes"
280 ${If} $VSRedistInstalled == "Yes"
281 !insertMacro UnSelectSection ${SecVCRedist}
282 SectionSetText ${SecVCRedist} ""
284 !insertMacro SelectSection ${SecVCRedist}
285 SectionSetText ${SecVCRedist} "${REDISTRIBUTABLE_SECTIONNAME}"
290 ;--------------------------------
295 SetShellVarContext current
297 Delete "$INSTDIR\AUTHORS"
298 Delete "$INSTDIR\*.exe"
299 Delete "$INSTDIR\ChangeLog"
300 Delete "$INSTDIR\COPYING"
301 Delete "$INSTDIR\*.dll"
302 Delete "$INSTDIR\*.lib"
303 Delete "$INSTDIR\*.xml"
304 Delete "$INSTDIR\x64\*.dll"
305 Delete "$INSTDIR\x64\*.lib"
306 Delete "$INSTDIR\x64\*.exe"
307 Delete "$INSTDIR\x64\*.xml"
308 Delete "$INSTDIR\README"
309 Delete "$SYSDIR\libcec.dll"
311 Delete "$SYSDIR\libcec.x64.dll"
314 ; Uninstall the driver
315 ReadRegStr $1 HKLM "Software\Pulse-Eight\USB-CEC Adapter driver" ""
317 ExecWait '"$1\Uninstall.exe" /S _?=$1'
320 RMDir /r "$INSTDIR\include"
321 Delete "$INSTDIR\Uninstall.exe"
323 RMDir "$PROGRAMFILES\Pulse-Eight"
325 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
326 Delete "$SMPROGRAMS\$StartMenuFolder\libCEC Tray.lnk"
328 Delete "$SMPROGRAMS\$StartMenuFolder\libCEC Tray (x64).lnk"
330 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk"
332 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk"
334 Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk"
335 Delete "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url"
336 RMDir "$SMPROGRAMS\$StartMenuFolder"
338 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter software"
339 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter driver"
340 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight\USB-CEC Adapter software"
341 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight"