usbboot/win32/install_script.nsi

157 lines
3.8 KiB
NSIS

!include "x64.nsh"
;--------------------------------
;Include Modern UI
!include "MUI2.nsh"
;--------------------------------
;General
;Name and file
Name "Raspberry Pi USB boot"
OutFile "rpiboot_setup.exe"
;Default installation folder
InstallDir "$PROGRAMFILES\Raspberry Pi"
;Get installation folder from registry if available
InstallDirRegKey HKCU "Software\Raspberry Pi" ""
;Request application privileges for Windows Vista
RequestExecutionLevel admin
;--------------------------------
;Interface Settings
ShowInstDetails show
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_ABORTWARNING
!define MUI_ICON "Raspberry_Pi_Logo.ico"
!define MUI_UNICON "Raspberry_Pi_Logo.ico"
;--------------------------------
;Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "LICENSE.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
; Initialisation functions
Function .onInit
ReadRegStr $R0 HKCU "Software\Compute Module Boot" ""
StrCmp $R0 "" done
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"'Compute Module Boot' is already installed. $\n$\nClick `OK` to remove the \
previous version or `Cancel` to cancel this upgrade." \
IDOK uninst
Abort
;Run the uninstaller
uninst:
ClearErrors
; Remove the left over usb_driver directory
RmDir /r /REBOOTOK $R0\usb_driver
ExecWait '$R0\Uninstall.exe _?=$R0'
IfErrors no_remove_uninstaller done
;You can either use Delete /REBOOTOK in the uninstaller or add some code
;here to remove the uninstaller. Use a registry key to check
;whether the user has chosen to uninstall. If you are using an uninstaller
;components page, make sure all sections are uninstalled.
no_remove_uninstaller:
done:
RmDir /r /REBOOTOK $R0
FunctionEnd
;--------------------------------
;Installer Sections
Section "Raspberry Pi USB Boot" Sec_rpiboot
SetOutPath "$INSTDIR"
File /r redist
File /r ..\msd
DetailPrint "Installing BCM2708 driver..."
ExecWait '"$INSTDIR\redist\wdi-simple.exe" -v 0x0a5c -p 0x2763 -t 0' $0
DetailPrint "Driver install returned $0"
DetailPrint "Installing BCM2710 driver..."
ExecWait '"$INSTDIR\redist\wdi-simple.exe" -v 0x0a5c -p 0x2764 -t 0' $0
DetailPrint "Driver install returned $0"
File cyggcc_s-1.dll
File cygusb-1.0.dll
File cygwin1.dll
File ..\rpiboot.exe
CreateDirectory "$SMPROGRAMS\Raspberry Pi"
CreateShortcut "$SMPROGRAMS\Raspberry Pi\rpiboot.lnk" "$INSTDIR\rpiboot.exe"
CreateShortcut "$SMPROGRAMS\Raspberry Pi\Uninstall rpiboot.lnk" "$INSTDIR\Uninstall.exe"
;Store installation folder
WriteRegStr HKCU "Software\Raspberry Pi" "" $INSTDIR
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
;--------------------------------
;Descriptions
;Language strings
LangString DESC_SecDummy ${LANG_ENGLISH} "Install drivers for flashing Compute Module."
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Sec_rpiboot} $(DESC_SecDummy)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Uninstaller Section
Section "Uninstall"
RmDir /r /REBOOTOK $INSTDIR\redist
RmDir /r /REBOOTOK $INSTDIR\msd
RmDir /r /REBOOTOK $INSTDIR\usb_driver
Delete $INSTDIR\Uninstall.exe
Delete $INSTDIR\cyggcc_s-1.dll
Delete $INSTDIR\cygusb-1.0.dll
Delete $INSTDIR\cygwin1.dll
Delete $INSTDIR\rpiboot.exe
RmDir /REBOOTOK $INSTDIR
RmDir /r "$SMPROGRAMS\Raspberry Pi"
DeleteRegKey /ifempty HKCU "Software\Raspberry Pi"
SectionEnd