X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=project%2FlibCEC.nsi;h=61cff60b28c9fbd5aaa0621b75d0ac845a6e8b1d;hb=f017f3c49b9136fbffe49fa3eaf372c51617140d;hp=8fb714333b346ef35a46f9540973a503f5344b04;hpb=09054f708d81b6b51b54b47d31bf84fac8d14487;p=deb_libcec.git diff --git a/project/libCEC.nsi b/project/libCEC.nsi index 8fb7143..61cff60 100644 --- a/project/libCEC.nsi +++ b/project/libCEC.nsi @@ -1,5 +1,5 @@ ;libCEC installer -;Copyright (C) 2011 Pulse-Eight Ltd. +;Copyright (C) 2012 Pulse-Eight Ltd. ;http://www.pulse-eight.com/ !include "MUI2.nsh" @@ -7,25 +7,28 @@ !include "LogicLib.nsh" !include "x64.nsh" -Name "libCEC" -OutFile "libCEC-installer.exe" +Name "Pulse-Eight libCEC version 2.0.0" +OutFile "..\build\libCEC-installer.exe" XPStyle on -InstallDir "$PROGRAMFILES\libCEC" -InstallDirRegKey HKCU "Software\libCEC" "" +InstallDir "$PROGRAMFILES\Pulse-Eight\USB-CEC Adapter" +InstallDirRegKey HKLM "Software\Pulse-Eight\USB-CEC Adapter software" "" RequestExecutionLevel admin Var StartMenuFolder +Var VSRedistSetupError +Var VSRedistInstalled -!define MUI_FINISHPAGE_LINK "Please visit http://www.pulse-eight.com/ for more information." +!define MUI_FINISHPAGE_LINK "Visit http://www.pulse-eight.com/ for more information." !define MUI_FINISHPAGE_LINK_LOCATION "http://www.pulse-eight.com/" !define MUI_ABORTWARNING !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "..\COPYING" +!insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\libCEC" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Pulse-Eight\USB-CEC Adapter sofware" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder @@ -39,32 +42,43 @@ Var StartMenuFolder !insertmacro MUI_LANGUAGE "English" -InstType "Full" +InstType "USB-CEC driver & libCEC" +InstType "USB-CEC driver only" +InstType "Full installation" -Section "libCEC" SecLibCEC +Section "USB-CEC driver" SecDriver SetShellVarContext current SectionIn RO - SectionIn 1 #section is in installtype Full + SectionIn 1 2 3 + + ; Uninstall the old unsigned software if it's found + ReadRegStr $1 HKCU "Software\libCEC" "" + ${If} $1 != "" + MessageBox MB_OK \ + "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." + ExecWait '"$1\Uninstall.exe" /S _?=$1' + Delete "$1\Uninstall.exe" + 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" - File "..\cec-client.exe" - File "..\ChangeLog" File "..\COPYING" - File "..\libcec.dll" - File "..\libcec.lib" - File "..\libcec.pdb" - File "..\pthreadVC2.dll" - File "..\README" + ; Copy the driver installer SetOutPath "$INSTDIR\driver" - File "..\dpinst-amd64.exe" - File "..\dpinst-x86.exe" - File "..\OEM001.inf" - SetOutPath "$INSTDIR\include" - File /r /x *.so "..\include\*.*" + File "..\build\p8-usbcec-driver-installer.exe" ;Store installation folder - WriteRegStr HKCU "Software\libCEC" "" $INSTDIR + WriteRegStr HKLM "Software\Pulse-Eight\USB-CEC Adapter software" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" @@ -73,45 +87,187 @@ Section "libCEC" SecLibCEC 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." - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall libCEC.lnk" "$INSTDIR\Uninstall.exe" \ + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk" "$INSTDIR\Uninstall.exe" \ "" "$INSTDIR\Uninstall.exe" 0 SW_SHOWNORMAL \ - "" "Uninstall libCEC." + "" "Uninstall Pulse-Eight USB-CEC Adapter software." WriteINIStr "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url" "InternetShortcut" "URL" "http://www.pulse-eight.com/" !insertmacro MUI_STARTMENU_WRITE_END - - + ;add entry to add/remove programs - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ - "DisplayName" "libCEC" - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ + "DisplayName" "Pulse-Eight USB-CEC Adapter software" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "UninstallString" "$INSTDIR\uninstall.exe" - WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "NoModify" 1 - WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "NoRepair" 1 - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "InstallLocation" "$INSTDIR" - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "DisplayIcon" "$INSTDIR\cec-client.exe,0" - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ - "Publisher" "Pulse-Eight Ltd." - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ + "Publisher" "Pulse-Eight Limited" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "HelpLink" "http://www.pulse-eight.com/" - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" \ "URLInfoAbout" "http://www.pulse-eight.com" ;install driver + ExecWait '"$INSTDIR\driver\p8-usbcec-driver-installer.exe" /S' + Delete "$INSTDIR\driver\p8-usbcec-driver-installer.exe" +SectionEnd + +Section "libCEC" SecLibCec + SetShellVarContext current + SectionIn 1 3 + + ; Copy to the installation directory + SetOutPath "$INSTDIR" + File "..\ChangeLog" + File "..\README" + File "..\build\*.dll" + File "..\build\*.xml" + SetOutPath "$INSTDIR\x64" + File /nonfatal "..\build\x64\*.dll" + File /nonfatal "..\build\x64\*.xml" + + ; Copy to XBMC\system + ReadRegStr $1 HKCU "Software\XBMC" "" + ${If} $1 != "" + SetOutPath "$1\system" + File "..\build\libcec.dll" + ${EndIf} + + ; Copy the headers + SetOutPath "$INSTDIR\include" + File /r /x *.so "..\include\cec*.*" +SectionEnd + +Section "CEC debug client" SecCecClient + SetShellVarContext current + SectionIn 3 + + ; Copy to the installation directory + SetOutPath "$INSTDIR" + File /x p8-usbcec-driver-installer.exe /x cec-tray.exe "..\build\*.exe" + SetOutPath "$INSTDIR\x64" + File /nonfatal /x cec-tray.exe "..\build\x64\*.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + SetOutPath "$INSTDIR" + + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + ${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 "libCEC Tray" SecCecConfig + SetShellVarContext current + SectionIn 1 3 + + ; Copy to the installation directory + SetOutPath "$INSTDIR" + File "..\build\cec-tray.exe" + SetOutPath "$INSTDIR\x64" + File /nonfatal "..\build\x64\cec-tray.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + SetOutPath "$INSTDIR" + + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" ${If} ${RunningX64} - ExecWait '"$INSTDIR\driver\dpinst-amd64.exe" /lm /sa /sw /PATH "$INSTDIR\driver"' + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\libCEC Tray (x64).lnk" "$INSTDIR\x64\cec-tray.exe" \ + "" "$INSTDIR\x64\cec-tray.exe" 0 SW_SHOWNORMAL \ + "" "Start the libCEC Tray (x64)." ${Else} - ExecWait '"$INSTDIR\driver\dpinst-x86.exe" /lm /sa /sw /PATH "$INSTDIR\driver"' + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\libCEC Tray.lnk" "$INSTDIR\cec-tray.exe" \ + "" "$INSTDIR\cec-tray.exe" 0 SW_SHOWNORMAL \ + "" "Start the libCEC Tray." ${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 @@ -119,36 +275,49 @@ Section "Uninstall" SetShellVarContext current - ${If} ${RunningX64} - ExecWait '"$INSTDIR\driver\dpinst-amd64.exe" /u "$INSTDIR\driver\OEM001.inf"' - ${Else} - ExecWait '"$INSTDIR\driver\dpinst-x64.exe" /u "$INSTDIR\driver\OEM001.inf"' - ${EndIf} Delete "$INSTDIR\AUTHORS" - Delete "$INSTDIR\cec-client.exe" + Delete "$INSTDIR\*.exe" Delete "$INSTDIR\ChangeLog" Delete "$INSTDIR\COPYING" - Delete "$INSTDIR\libcec.dll" - Delete "$INSTDIR\libcec.lib" - Delete "$INSTDIR\libcec.pdb" - Delete "$INSTDIR\pthreadVC2.dll" + Delete "$INSTDIR\*.dll" + Delete "$INSTDIR\*.lib" + Delete "$INSTDIR\*.xml" + Delete "$INSTDIR\x64\*.dll" + Delete "$INSTDIR\x64\*.lib" + Delete "$INSTDIR\x64\*.exe" + Delete "$INSTDIR\x64\*.xml" Delete "$INSTDIR\README" - Delete "$INSTDIR\driver\OEM001.inf" - Delete "$INSTDIR\driver\dpinst-amd64.exe" - Delete "$INSTDIR\driver\dpinst-x86.exe" + 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" "" + ${If} $1 != "" + ExecWait '"$1\Uninstall.exe" /S _?=$1' + ${EndIf} RMDir /r "$INSTDIR\include" Delete "$INSTDIR\Uninstall.exe" RMDir /r "$INSTDIR" + RMDir "$PROGRAMFILES\Pulse-Eight" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder + Delete "$SMPROGRAMS\$StartMenuFolder\libCEC Tray.lnk" + ${If} ${RunningX64} + Delete "$SMPROGRAMS\$StartMenuFolder\libCEC Tray (x64).lnk" + ${EndIf} Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client.lnk" - Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall libCEC.lnk" + ${If} ${RunningX64} + Delete "$SMPROGRAMS\$StartMenuFolder\CEC Test client (x64).lnk" + ${EndIf} + Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Pulse-Eight USB-CEC Adapter software.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Visit Pulse-Eight.url" - RMDir "$SMPROGRAMS\$StartMenuFolder" - - DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\libCEC" - - DeleteRegKey /ifempty HKCU "Software\libCEC" + RMDir "$SMPROGRAMS\$StartMenuFolder" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter sofware" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pulse-Eight USB-CEC Adapter driver" + DeleteRegKey /ifempty HKLM "Software\Pulse-Eight\USB-CEC Adapter software" + DeleteRegKey /ifempty HKLM "Software\Pulse-Eight" SectionEnd