199 lines
5.4 KiB
Plaintext
199 lines
5.4 KiB
Plaintext
|
; winpack.nsi
|
||
|
|
||
|
!addincludedir scripts\win\nsis\Include
|
||
|
!include EnvVarUpdate.nsh
|
||
|
|
||
|
!addplugindir scripts\win\nsis\Plugins
|
||
|
|
||
|
!include WinMessages.nsh
|
||
|
|
||
|
!define VERSION "@mynteye_VERSION@"
|
||
|
!define OpenCV_VERSION "@OpenCV_VERSION@"
|
||
|
|
||
|
!define DSETDIR "$APPDATA"
|
||
|
;!define DSETDIR "$PROGRAMFILES64"
|
||
|
|
||
|
; HKLM (all users) vs HKCU (current user) defines
|
||
|
!define ENV_HKLM 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
|
||
|
!define ENV_HKCU 'HKCU "Environment"'
|
||
|
|
||
|
;--------------------------------
|
||
|
|
||
|
; The name of the installer
|
||
|
Name "MYNTEYE S SDK ${VERSION}"
|
||
|
|
||
|
; The icon of the installer
|
||
|
Icon "scripts\win\nsis\mynt.ico"
|
||
|
|
||
|
; The file to write
|
||
|
OutFile "mynteye-s-${VERSION}-win-x64-opencv-${OpenCV_VERSION}.exe"
|
||
|
|
||
|
; The default installation directory
|
||
|
InstallDir ${DSETDIR}\Slightech\MYNTEYES\SDK\${VERSION}
|
||
|
|
||
|
; Registry key to check for directory (so if you install again, it will
|
||
|
; overwrite the old one automatically)
|
||
|
InstallDirRegKey HKLM "Software\MYNTEYESSDK" "Install_Dir"
|
||
|
|
||
|
; Request application privileges for Windows Vista
|
||
|
;RequestExecutionLevel user
|
||
|
RequestExecutionLevel admin
|
||
|
|
||
|
;--------------------------------
|
||
|
|
||
|
; Pages
|
||
|
|
||
|
Page components
|
||
|
Page directory
|
||
|
Page instfiles
|
||
|
|
||
|
UninstPage uninstConfirm
|
||
|
UninstPage instfiles
|
||
|
|
||
|
;--------------------------------
|
||
|
|
||
|
; The stuff to install
|
||
|
Section "SDK (required)"
|
||
|
|
||
|
SectionIn RO
|
||
|
|
||
|
; Set output path to the installation directory.
|
||
|
SetOutPath $INSTDIR
|
||
|
|
||
|
; Put file there
|
||
|
File /r "mynteye-s-${VERSION}-win-x64-opencv-${OpenCV_VERSION}\*"
|
||
|
|
||
|
; Write the installation path into the registry
|
||
|
WriteRegStr HKLM "SOFTWARE\MYNTEYESSDK" "Install_Dir" "$INSTDIR"
|
||
|
|
||
|
; Write the uninstall keys for Windows
|
||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MYNTEYESSDK" "DisplayName" "MYNTEYE S SDK"
|
||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MYNTEYESSDK" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MYNTEYESSDK" "NoModify" 1
|
||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MYNTEYESSDK" "NoRepair" 1
|
||
|
WriteUninstaller "uninstall.exe"
|
||
|
|
||
|
; Set variables for local machine
|
||
|
WriteRegExpandStr ${ENV_HKLM} MYNTEYES_SDK_ROOT "$INSTDIR"
|
||
|
|
||
|
;${EnvVarUpdate} $0 "PATH" "P" "HKLM" "%MYNTEYES_SDK_PATH%"
|
||
|
${EnvVarUpdate} $0 "PATH" "P" "HKLM" "$INSTDIR\bin;$INSTDIR\3rdparty\opencv\build\x64\vc15\bin"
|
||
|
|
||
|
; Push "%MYNTEYES_SDK_PATH%"
|
||
|
; Call AddToPath
|
||
|
|
||
|
; Make sure windows knows about the change
|
||
|
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
||
|
|
||
|
SectionEnd
|
||
|
|
||
|
; Optional section (can be disabled by the user)
|
||
|
Section "Desktop Shortcuts"
|
||
|
|
||
|
CreateShortcut "$DESKTOP\MYNTEYE S SDK ${VERSION}.lnk" "$INSTDIR" "" "$INSTDIR" 0
|
||
|
|
||
|
SectionEnd
|
||
|
|
||
|
Function .onInstSuccess
|
||
|
|
||
|
WriteRegStr "HKLM" "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" \
|
||
|
"View MYNTEYES README.txt" \
|
||
|
"cmd.exe /c start /max notepad.exe $INSTDIR\README.txt"
|
||
|
|
||
|
MessageBox MB_OKCANCEL "Reboot your system now?" /SD IDOK IDCANCEL NoReboot
|
||
|
Reboot
|
||
|
NoReboot:
|
||
|
|
||
|
FunctionEnd
|
||
|
|
||
|
Function .onInstFailed
|
||
|
MessageBox MB_OK "Install failed."
|
||
|
FunctionEnd
|
||
|
|
||
|
;--------------------------------
|
||
|
|
||
|
; Uninstaller
|
||
|
|
||
|
Section "Uninstall"
|
||
|
|
||
|
; Remove registry keys
|
||
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MYNTEYESSDK"
|
||
|
DeleteRegKey HKLM "SOFTWARE\MYNTEYESSDK"
|
||
|
|
||
|
; Remove install stuff
|
||
|
RMDir /r "$INSTDIR"
|
||
|
|
||
|
; Remove shortcuts, if any
|
||
|
Delete "$DESKTOP\MYNTEYE S SDK ${VERSION}.lnk"
|
||
|
|
||
|
; Remove directories used
|
||
|
StrCpy $0 "${DSETDIR}\Slightech\MYNTEYES"
|
||
|
Call un.DeleteDirIfEmpty
|
||
|
StrCpy $0 "${DSETDIR}\Slightech"
|
||
|
Call un.DeleteDirIfEmpty
|
||
|
|
||
|
RMDir /r "$APPDATA\Slightech\MYNTEYES"
|
||
|
StrCpy $0 "$APPDATA\Slightech"
|
||
|
Call un.DeleteDirIfEmpty
|
||
|
|
||
|
; Delete variables
|
||
|
DeleteRegValue ${ENV_HKLM} MYNTEYES_SDK_ROOT
|
||
|
|
||
|
;${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "%MYNTEYES_SDK_PATH%"
|
||
|
${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\bin"
|
||
|
${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\3rdparty\opencv\build\x64\vc15\bin"
|
||
|
|
||
|
; Push "%MYNTEYES_SDK_PATH%"
|
||
|
; Call un.RemoveFromPath
|
||
|
|
||
|
; Make sure windows knows about the change
|
||
|
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
||
|
|
||
|
SectionEnd
|
||
|
|
||
|
Function un.onUninstSuccess
|
||
|
MessageBox MB_OK "Uninstall success."
|
||
|
FunctionEnd
|
||
|
|
||
|
Function un.onUninstFailed
|
||
|
MessageBox MB_OK "Uninstall failed."
|
||
|
FunctionEnd
|
||
|
|
||
|
;--------------------------------
|
||
|
|
||
|
; DeleteDirIfEmpty - Delete dir only if empty
|
||
|
|
||
|
Function un.DeleteDirIfEmpty
|
||
|
FindFirst $R0 $R1 "$0\*.*"
|
||
|
strcmp $R1 "." 0 NoDelete
|
||
|
FindNext $R0 $R1
|
||
|
strcmp $R1 ".." 0 NoDelete
|
||
|
ClearErrors
|
||
|
FindNext $R0 $R1
|
||
|
IfErrors 0 NoDelete
|
||
|
FindClose $R0
|
||
|
Sleep 1000
|
||
|
RMDir "$0"
|
||
|
NoDelete:
|
||
|
FindClose $R0
|
||
|
FunctionEnd
|
||
|
|
||
|
;--------------------------------
|
||
|
|
||
|
; Path Manipulation
|
||
|
; http://nsis.sourceforge.net/Path_Manipulation
|
||
|
; Environmental Variables: append, prepend, and remove entries
|
||
|
; http://nsis.sourceforge.net/Environmental_Variables:_append%2C_prepend%2C_and_remove_entries
|
||
|
; Setting Environment Variables
|
||
|
; http://nsis.sourceforge.net/Setting_Environment_Variables
|
||
|
; Setting Environment Variables to Active Installer Process
|
||
|
; http://nsis.sourceforge.net/Setting_Environment_Variables_to_Active_Installer_Process
|
||
|
|
||
|
; Delete files and subdirectories
|
||
|
; http://nsis.sourceforge.net/Delete_files_and_subdirectories
|
||
|
; Delete dir only if empty
|
||
|
; http://nsis.sourceforge.net/Delete_dir_only_if_empty
|
||
|
|
||
|
;https://gist.github.com/azalea/deb3c1ed2a984eadf96be77b81dd49b1
|
||
|
;!include ProcessEnvPrependPath.nsh
|