157 lines
3.8 KiB
NSIS
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
|