cec-config-gui: no longer showing modal device info windows
[deb_libcec.git] / project / libCEC.nsi
1 ;libCEC installer
2 ;Copyright (C) 2012 Pulse-Eight Ltd.
3 ;http://www.pulse-eight.com/
4
5 !include "MUI2.nsh"
6 !include "nsDialogs.nsh"
7 !include "LogicLib.nsh"
8 !include "x64.nsh"
9
10 Name "Pulse-Eight USB-CEC Adapter"
11 OutFile "..\build\libCEC-installer.exe"
12
13 XPStyle on
14 InstallDir "$PROGRAMFILES\Pulse-Eight\USB-CEC Adapter"
15 InstallDirRegKey HKLM "Software\Pulse-Eight\USB-CEC Adapter software" ""
16 RequestExecutionLevel admin
17 Var StartMenuFolder
18
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
22
23 !insertmacro MUI_PAGE_WELCOME
24 !insertmacro MUI_PAGE_LICENSE "..\COPYING"
25 !insertmacro MUI_PAGE_COMPONENTS
26 !insertmacro MUI_PAGE_DIRECTORY
27
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
32
33 !insertmacro MUI_PAGE_INSTFILES
34 !insertmacro MUI_PAGE_FINISH
35
36 !insertmacro MUI_UNPAGE_WELCOME
37 !insertmacro MUI_UNPAGE_CONFIRM
38 !insertmacro MUI_UNPAGE_INSTFILES
39 !insertmacro MUI_UNPAGE_FINISH
40
41 !insertmacro MUI_LANGUAGE "English"
42
43 InstType "USB-CEC driver & libCEC"
44 InstType "USB-CEC driver only"
45 InstType "Full installation"
46
47 Section "USB-CEC driver" SecDriver
48 SetShellVarContext current
49 SectionIn RO
50 SectionIn 1 2 3
51
52 ; Uninstall the old unsigned software if it's found
53 ReadRegStr $1 HKCU "Software\libCEC" ""
54 ${If} $1 != ""
55 MessageBox MB_OK \
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"
59 RMDir "$1"
60 ${EndIf}
61
62 ; Copy to the installation directory
63 SetOutPath "$INSTDIR"
64 File "..\AUTHORS"
65 File "..\COPYING"
66
67 ; Copy the driver installer
68 SetOutPath "$INSTDIR\driver"
69 File "..\build\p8-usbcec-driver-installer.exe"
70
71 ;Store installation folder
72 WriteRegStr HKLM "Software\Pulse-Eight\USB-CEC Adapter software" "" $INSTDIR
73
74 ;Create uninstaller
75 WriteUninstaller "$INSTDIR\Uninstall.exe"
76
77 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
78 SetOutPath "$INSTDIR"
79
80 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
81 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk" "$INSTDIR\Uninstall.exe" \
82 "" "$INSTDIR\Uninstall.exe" 0 SW_SHOWNORMAL \
83 "" "Uninstall Pulse-Eight USB-CEC Adapter software."
84
85 WriteINIStr "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url" "InternetShortcut" "URL" "http://www.pulse-eight.com/"
86 !insertmacro MUI_STARTMENU_WRITE_END
87
88 ;add entry to add/remove programs
89 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
90 "DisplayName" "Pulse-Eight USB-CEC Adapter software"
91 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
92 "UninstallString" "$INSTDIR\uninstall.exe"
93 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
94 "NoModify" 1
95 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
96 "NoRepair" 1
97 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
98 "InstallLocation" "$INSTDIR"
99 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
100 "DisplayIcon" "$INSTDIR\cec-client.exe,0"
101 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
102 "Publisher" "Pulse-Eight Limited"
103 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
104 "HelpLink" "http://www.pulse-eight.com/"
105 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \
106 "URLInfoAbout" "http://www.pulse-eight.com"
107
108 ;install driver
109 ExecWait '"$INSTDIR\driver\p8-usbcec-driver-installer.exe" /S'
110 Delete "$INSTDIR\driver\p8-usbcec-driver-installer.exe"
111 SectionEnd
112
113 Section "libCEC" SecLibCec
114 SetShellVarContext current
115 SectionIn 1 3
116
117 ; Copy to the installation directory
118 SetOutPath "$INSTDIR"
119 File "..\ChangeLog"
120 File "..\README"
121 File "..\build\*.dll"
122 SetOutPath "$INSTDIR\x64"
123 File /nonfatal "..\build\x64\*.dll"
124
125 ; Copy to XBMC\system
126 ReadRegStr $1 HKCU "Software\XBMC" ""
127 ${If} $1 != ""
128 SetOutPath "$1\system"
129 File "..\build\libcec.dll"
130 ${EndIf}
131
132 ; Copy the headers
133 SetOutPath "$INSTDIR\include"
134 File /r /x *.so "..\include\cec*.*"
135
136 ; Copy libcec.dll and libcec.x64.dll to the system directory
137 SetOutPath "$SYSDIR"
138 File "..\build\libcec.dll"
139 ${If} ${RunningX64}
140 File /nonfatal "..\build\x64\libcec.x64.dll"
141 ${EndIf}
142 SectionEnd
143
144 Section "CEC debug client" SecCecClient
145 SetShellVarContext current
146 SectionIn 3
147
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"
153
154 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
155 SetOutPath "$INSTDIR"
156
157 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
158 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk" "$INSTDIR\cec-client.exe" \
159 "" "$INSTDIR\cec-client.exe" 0 SW_SHOWNORMAL \
160 "" "Start the CEC Test client."
161 ${If} ${RunningX64}
162 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk" "$INSTDIR\x64\cec-client.x64.exe" \
163 "" "$INSTDIR\cec-client.x64.exe" 0 SW_SHOWNORMAL \
164 "" "Start the CEC Test client (x64)."
165 ${EndIf}
166 !insertmacro MUI_STARTMENU_WRITE_END
167
168 SectionEnd
169
170 Section "CEC configuration tool" SecCecConfig
171 SetShellVarContext current
172 SectionIn 1 3
173
174 ; Copy to the installation directory
175 SetOutPath "$INSTDIR"
176 File "..\build\cec-config-gui.exe"
177 SetOutPath "$INSTDIR\x64"
178 File /nonfatal "..\build\x64\cec-config-gui.exe"
179
180 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
181 SetOutPath "$INSTDIR"
182
183 CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
184 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk" "$INSTDIR\cec-config-gui.exe" \
185 "" "$INSTDIR\cec-config-gui.exe" 0 SW_SHOWNORMAL \
186 "" "Start the CEC Adapter Configuration tool."
187 ${If} ${RunningX64}
188 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk" "$INSTDIR\x64\cec-config-gui.exe" \
189 "" "$INSTDIR\x64\cec-config-gui.exe" 0 SW_SHOWNORMAL \
190 "" "Start the CEC Adapter Configuration tool (x64)."
191 ${EndIf}
192 !insertmacro MUI_STARTMENU_WRITE_END
193
194 SectionEnd
195
196 ;--------------------------------
197 ;Uninstaller Section
198
199 Section "Uninstall"
200
201 SetShellVarContext current
202
203 Delete "$INSTDIR\AUTHORS"
204 Delete "$INSTDIR\*.exe"
205 Delete "$INSTDIR\ChangeLog"
206 Delete "$INSTDIR\COPYING"
207 Delete "$INSTDIR\*.dll"
208 Delete "$INSTDIR\*.lib"
209 Delete "$INSTDIR\x64\*.dll"
210 Delete "$INSTDIR\x64\*.lib"
211 Delete "$INSTDIR\x64\*.exe"
212 Delete "$INSTDIR\README"
213
214 ; Uninstall the driver
215 ReadRegStr $1 HKLM "Software\Pulse-Eight\USB-CEC Adapter driver" ""
216 ${If} $1 != ""
217 ExecWait '"$1\Uninstall.exe" /S _?=$1'
218 ${EndIf}
219
220 RMDir /r "$INSTDIR\include"
221 Delete "$INSTDIR\Uninstall.exe"
222 RMDir /r "$INSTDIR"
223 RMDir "$PROGRAMFILES\Pulse-Eight"
224
225 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
226 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk"
227 ${If} ${RunningX64}
228 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk"
229 ${EndIf}
230 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk"
231 ${If} ${RunningX64}
232 Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk"
233 ${EndIf}
234 Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk"
235 Delete "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url"
236 RMDir "$SMPROGRAMS\$StartMenuFolder"
237
238 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware"
239 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter driver"
240 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight\USB-CEC Adapter software"
241 DeleteRegKey /ifempty HKLM "Software\Pulse-Eight"
242 SectionEnd