2018-11-01 17:12:36 +02:00
|
|
|
; 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
|
2018-11-01 17:34:52 +02:00
|
|
|
File /r "mynteye-s-${VERSION}-win-x64-opencv-${OpenCV_VERSION}\*"
|
2018-11-01 17:12:36 +02:00
|
|
|
|
|
|
|
; 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 README" \
|
|
|
|
; "cmd.exe /c start /max notepad.exe $INSTDIR\README"
|
|
|
|
|
|
|
|
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
|