InstallDirRegKey HKLM "Software\Pulse-Eight\USB-CEC Adapter software" ""
RequestExecutionLevel admin
Var StartMenuFolder
+Var VSRedistSetupError
+Var VSRedistInstalled
!define MUI_FINISHPAGE_LINK "Visit http://www.pulse-eight.com/ for more information."
!define MUI_FINISHPAGE_LINK_LOCATION "http://www.pulse-eight.com/"
RMDir "$1"
${EndIf}
+ ; Delete libcec.dll and libcec.x64.dll from the system directory
+ ; Let a seperate installer do this, when we need it
+ Delete "$SYSDIR\libcec.dll"
+ ${If} ${RunningX64}
+ Delete "$SYSDIR\libcec.x64.dll"
+ ${EndIf}
+
; Copy to the installation directory
SetOutPath "$INSTDIR"
File "..\AUTHORS"
; Copy the headers
SetOutPath "$INSTDIR\include"
File /r /x *.so "..\include\cec*.*"
-
- ; Copy libcec.dll and libcec.x64.dll to the system directory
- SetOutPath "$SYSDIR"
- File "..\build\libcec.dll"
- ${If} ${RunningX64}
- File /nonfatal "..\build\x64\libcec.x64.dll"
- ${EndIf}
SectionEnd
Section "CEC debug client" SecCecClient
; Copy to the installation directory
SetOutPath "$INSTDIR"
- File /x p8-usbcec-driver-installer.exe "..\build\*.exe"
+ File /x p8-usbcec-driver-installer.exe /x cec-config-gui.exe "..\build\*.exe"
SetOutPath "$INSTDIR\x64"
- File /nonfatal "..\build\x64\*.exe"
+ File /nonfatal /x cec-config-gui.exe "..\build\x64\*.exe"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
SetOutPath "$INSTDIR"
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
- CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk" "$INSTDIR\cec-client.exe" \
- "" "$INSTDIR\cec-client.exe" 0 SW_SHOWNORMAL \
- "" "Start the CEC Test client."
${If} ${RunningX64}
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk" "$INSTDIR\x64\cec-client.x64.exe" \
"" "$INSTDIR\cec-client.x64.exe" 0 SW_SHOWNORMAL \
"" "Start the CEC Test client (x64)."
+ ${Else}
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk" "$INSTDIR\cec-client.exe" \
+ "" "$INSTDIR\cec-client.exe" 0 SW_SHOWNORMAL \
+ "" "Start the CEC Test client."
${EndIf}
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
+Section "CEC configuration tool" SecCecConfig
+ SetShellVarContext current
+ SectionIn 1 3
+
+ ; Copy to the installation directory
+ SetOutPath "$INSTDIR"
+ File "..\build\cec-config-gui.exe"
+ SetOutPath "$INSTDIR\x64"
+ File /nonfatal "..\build\x64\cec-config-gui.exe"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+ SetOutPath "$INSTDIR"
+
+ CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
+ ${If} ${RunningX64}
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk" "$INSTDIR\x64\cec-config-gui.exe" \
+ "" "$INSTDIR\x64\cec-config-gui.exe" 0 SW_SHOWNORMAL \
+ "" "Start the CEC Adapter Configuration tool (x64)."
+ ${Else}
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk" "$INSTDIR\cec-config-gui.exe" \
+ "" "$INSTDIR\cec-config-gui.exe" 0 SW_SHOWNORMAL \
+ "" "Start the CEC Adapter Configuration tool."
+ ${EndIf}
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+SectionEnd
+
+!define REDISTRIBUTABLE_SECTIONNAME "Microsoft Visual C++ 2010 Redistributable Package"
+Section "" SecVCRedist
+ SetShellVarContext current
+ SectionIn 1 3
+
+
+ ${If} $VSRedistInstalled != "Yes"
+ ; Download redistributable
+ SetOutPath "$TEMP\vc20XX"
+ ${If} ${RunningX64}
+ NSISdl::download http://packages.pulse-eight.net/windows/vcredist_x64.exe vcredist_x64.exe
+ ExecWait '"$TEMP\vc20XX\vcredist_x64.exe" /q' $VSRedistSetupError
+ ${Else}
+ NSISdl::download http://packages.pulse-eight.net/windows/vcredist_x86.exe vcredist_x86.exe
+ ExecWait '"$TEMP\vc20XX\vcredist_x86.exe" /q' $VSRedistSetupError
+ ${Endif}
+ RMDIR /r "$TEMP\vc20XX"
+ ${Endif}
+
+SectionEnd
+
+Function .onInit
+
+ ; SP0 x86
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{196BB40D-1578-3D01-B289-BEFC77A11A1E}" "Version"
+ ${If} $1 != ""
+ StrCpy $VSRedistInstalled "Yes"
+ ${Endif}
+
+ ; SP0 x64
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}" "Version"
+ ${If} $1 != ""
+ StrCpy $VSRedistInstalled "Yes"
+ ${Endif}
+
+ ; SP0 ia64
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C1A35166-4301-38E9-BA67-02823AD72A1B}" "Version"
+ ${If} $1 != ""
+ StrCpy $VSRedistInstalled "Yes"
+ ${Endif}
+
+ ; SP1 x86
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}" "Version"
+ ${If} $1 != ""
+ StrCpy $VSRedistInstalled "Yes"
+ ${Endif}
+
+ ; SP1 x64
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" "Version"
+ ${If} $1 != ""
+ StrCpy $VSRedistInstalled "Yes"
+ ${Endif}
+
+ ; SP1 ia64
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}" "Version"
+ ${If} $1 != ""
+ StrCpy $VSRedistInstalled "Yes"
+ ${Endif}
+
+ ${If} $VSRedistInstalled == "Yes"
+ !insertMacro UnSelectSection ${SecVCRedist}
+ SectionSetText ${SecVCRedist} ""
+ ${Else}
+ !insertMacro SelectSection ${SecVCRedist}
+ SectionSetText ${SecVCRedist} "${REDISTRIBUTABLE_SECTIONNAME}"
+ ${Endif}
+
+FunctionEnd
+
;--------------------------------
;Uninstaller Section
SetShellVarContext current
Delete "$INSTDIR\AUTHORS"
- Delete "$INSTDIR\cec*.exe"
+ Delete "$INSTDIR\*.exe"
Delete "$INSTDIR\ChangeLog"
Delete "$INSTDIR\COPYING"
Delete "$INSTDIR\*.dll"
Delete "$INSTDIR\*.lib"
Delete "$INSTDIR\x64\*.dll"
Delete "$INSTDIR\x64\*.lib"
+ Delete "$INSTDIR\x64\*.exe"
Delete "$INSTDIR\README"
+ Delete "$SYSDIR\libcec.dll"
+ ${If} ${RunningX64}
+ Delete "$SYSDIR\libcec.x64.dll"
+ ${EndIf}
; Uninstall the driver
ReadRegStr $1 HKLM "Software\Pulse-Eight\USB-CEC Adapter driver" ""
RMDir "$PROGRAMFILES\Pulse-Eight"
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
+ Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration.lnk"
+ ${If} ${RunningX64}
+ Delete "$SMPROGRAMS\$StartMenuFolder\CEC Adapter Configuration (x64).lnk"
+ ${EndIf}
Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk"
${If} ${RunningX64}
Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk"