2 ;Copyright (C) 2012 Pulse-Eight Ltd.
3 ;http://www.pulse-eight.com/
6 !include "nsDialogs.nsh"
7 !include "LogicLib.nsh"
10 Name "Pulse-Eight USB-CEC Adapter"
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
19 !define MUI_FINISHPAGE_LINK "Visit http://www.pulse-eight.com/ for more information."
20 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.pulse-eight.com/"
21 !define MUI_ABORTWARNING
23 !insertmacro MUI_PAGE_WELCOME
24 !insertmacro MUI_PAGE_LICENSE "..\COPYING"
25 !insertmacro MUI_PAGE_COMPONENTS
26 !insertmacro MUI_PAGE_DIRECTORY
28 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
29 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Pulse-Eight\USB-CEC Adapter sofware"
30 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
31 !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
33 !insertmacro MUI_PAGE_INSTFILES
34 !insertmacro MUI_PAGE_FINISH
36 !insertmacro MUI_UNPAGE_WELCOME
37 !insertmacro MUI_UNPAGE_CONFIRM
38 !insertmacro MUI_UNPAGE_INSTFILES
39 !insertmacro MUI_UNPAGE_FINISH
41 !insertmacro MUI_LANGUAGE "English"
43 InstType "USB-CEC driver & libCEC"
44 InstType "USB-CEC driver only"
45 InstType "Full installation"
47 Section "USB-CEC driver" SecDriver
48 SetShellVarContext current
52 ; Uninstall the old unsigned software if it's found
53 ReadRegStr $1 HKCU "Software\libCEC" ""
56 "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."
57 ExecWait '"$1\Uninstall.exe" /S _?=$1'
58 Delete "$1\Uninstall.exe"
62 ; Delete libcec.dll and libcec.x64.dll from the system directory
63 ; Let a seperate installer do this, when we need it
64 Delete "$SYSDIR\libcec.dll"
66 Delete "$SYSDIR\libcec.x64.dll"
69 ; Copy to the installation directory
74 ; Copy the driver installer
75 SetOutPath "$INSTDIR\driver"
76 File "..\build\p8-usbcec-driver-installer.exe"
78 ;Store installation folder
79 WriteRegStr HKLM "Software\Pulse-Eight\USB-CEC Adapter software" "" $INSTDIR
82 WriteUninstaller "$INSTDIR\Uninstall.exe"
84 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
87 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
88 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk" "$INSTDIR\Uninstall.exe" \
89 "" "$INSTDIR\Uninstall.exe" 0 SW_SHOWNORMAL \
90 "" "Uninstall Pulse-Eight USB-CEC Adapter software."
92 WriteINIStr "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url" "InternetShortcut" "URL" "http://www.pulse-eight.com/"
93 !insertmacro MUI_STARTMENU_WRITE_END
95 ;add entry to add/remove programs
96 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
97 "DisplayName" "Pulse-Eight USB-CEC Adapter software"
98 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
99 "UninstallString" "$INSTDIR\uninstall.exe"
100 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
102 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
104 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
105 "InstallLocation" "$INSTDIR"
106 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
107 "DisplayIcon" "$INSTDIR\cec-client.exe,0"
108 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
109 "Publisher" "Pulse-Eight Limited"
110 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
111 "HelpLink" "http://www.pulse-eight.com/"
112 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
113 "URLInfoAbout" "http://www.pulse-eight.com"
116 ExecWait '"$INSTDIR\driver\p8-usbcec-driver-installer.exe" /S'
117 Delete "$INSTDIR\driver\p8-usbcec-driver-installer.exe"
120 Section "libCEC" SecLibCec
121 SetShellVarContext current
124 ; Copy to the installation directory
125 SetOutPath "$INSTDIR"
128 File "..\build\*.dll"
129 SetOutPath "$INSTDIR\x64"
130 File /nonfatal "..\build\x64\*.dll"
132 ; Copy to XBMC\system
133 ReadRegStr $1 HKCU "Software\XBMC" ""
135 SetOutPath "$1\system"
136 File "..\build\libcec.dll"
140 SetOutPath "$INSTDIR\include"
141 File /r /x *.so "..\include\cec*.*"
144 Section "CEC debug client" SecCecClient
145 SetShellVarContext current
148 ; Copy to the installation directory
149 SetOutPath "$INSTDIR"
150 File /x p8-usbcec-driver-installer.exe /x cec-config-gui.exe "..\build\*.exe"
151 SetOutPath "$INSTDIR\x64"
152 File /nonfatal /x cec-config-gui.exe "..\build\x64\*.exe"
154 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
155 SetOutPath "$INSTDIR"
157 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
159 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk" "$INSTDIR\x64\cec-client.x64.exe" \
160 "" "$INSTDIR\cec-client.x64.exe" 0 SW_SHOWNORMAL \
161 "" "Start the CEC Test client (x64)."
163 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk" "$INSTDIR\cec-client.exe" \
164 "" "$INSTDIR\cec-client.exe" 0 SW_SHOWNORMAL \
165 "" "Start the CEC Test client."
167 !insertmacro MUI_STARTMENU_WRITE_END
171 Section "CEC configuration tool" SecCecConfig
172 SetShellVarContext current
175 ; Copy to the installation directory
176 SetOutPath "$INSTDIR"
177 File "..\build\cec-config-gui.exe"
178 SetOutPath "$INSTDIR\x64"
179 File /nonfatal "..\build\x64\cec-config-gui.exe"
181 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
182 SetOutPath "$INSTDIR"
184 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
186 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk" "$INSTDIR\x64\cec-config-gui.exe" \
187 "" "$INSTDIR\x64\cec-config-gui.exe" 0 SW_SHOWNORMAL \
188 "" "Start the CEC Adapter Configuration tool (x64)."
190 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk" "$INSTDIR\cec-config-gui.exe" \
191 "" "$INSTDIR\cec-config-gui.exe" 0 SW_SHOWNORMAL \
192 "" "Start the CEC Adapter Configuration tool."
194 !insertmacro MUI_STARTMENU_WRITE_END
198 ;--------------------------------
203 SetShellVarContext current
205 Delete "$INSTDIR\AUTHORS"
206 Delete "$INSTDIR\*.exe"
207 Delete "$INSTDIR\ChangeLog"
208 Delete "$INSTDIR\COPYING"
209 Delete "$INSTDIR\*.dll"
210 Delete "$INSTDIR\*.lib"
211 Delete "$INSTDIR\x64\*.dll"
212 Delete "$INSTDIR\x64\*.lib"
213 Delete "$INSTDIR\x64\*.exe"
214 Delete "$INSTDIR\README"
215 Delete "$SYSDIR\libcec.dll"
217 Delete "$SYSDIR\libcec.x64.dll"
220 ; Uninstall the driver
221 ReadRegStr $1 HKLM "Software\Pulse-Eight\USB-CEC Adapter driver" ""
223 ExecWait '"$1\Uninstall.exe" /S _?=$1'
226 RMDir /r "$INSTDIR\include"
227 Delete "$INSTDIR\Uninstall.exe"
229 RMDir "$PROGRAMFILES\Pulse-Eight"
231 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
232 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk"
234 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk"
236 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk"
238 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk"
240 Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk"
241 Delete "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url"
242 RMDir "$SMPROGRAMS\$StartMenuFolder"
244 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware"
245 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter driver"
246 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight\USB-CEC Adapter software"
247 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight"