Files
OpenVR-AdvancedSettings-frame/installer/installer.nsi
T
Vasily 644c887f71 Update version strings, update NSIS file, move around extra files
The additional files packaged with the installer have been moved to
their own dir to separate them from the C++ source.

All licenses are now also included in the installer, as per the terms.

The version string in overlaycontroller.h has been updated to 2.8.0.
2019-01-04 17:06:02 +01:00

162 lines
4.0 KiB
NSIS

;--------------------------------
;Include Modern UI
!include "MUI2.nsh"
;--------------------------------
;General
!define BASEDIR "..\bin\win64\AdvancedSettings"
!define SRCDIR "..\src"
!define THIRDDIR "..\third-party"
!define PACKAGEDIR "..\src\package_files"
!define PROJECTDIR "..\"
!define VERSION_STRING "2-8-0"
;Name and file
Name "OpenVR Advanced Settings"
OutFile "AdvancedSettings-${VERSION_STRING}-Installer.exe"
;Default installation folder
InstallDir "$PROGRAMFILES64\OpenVR-AdvancedSettings"
;Get installation folder from registry if available
InstallDirRegKey HKLM "Software\OpenVR-AdvancedSettings" ""
;Request application privileges for Windows Vista
RequestExecutionLevel admin
;--------------------------------
;Variables
VAR upgradeInstallation
;--------------------------------
;Interface Settings
!define MUI_ABORTWARNING
;--------------------------------
;Pages
!insertmacro MUI_PAGE_LICENSE "..\LICENSE"
!define MUI_PAGE_CUSTOMFUNCTION_PRE dirPre
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Macros
!macro TerminateOverlay
DetailPrint "Terminating OpenVR Advanced Settings overlay..."
ExecWait '"taskkill" /F /IM AdvancedSettings.exe'
Sleep 2000 ; give 2 seconds for the application to finish exiting
!macroend
;--------------------------------
;Functions
Function dirPre
StrCmp $upgradeInstallation "true" 0 +2
Abort
FunctionEnd
Function .onInit
StrCpy $upgradeInstallation "false"
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenVRAdvancedSettings" "UninstallString"
StrCmp $R0 "" done
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"OpenVR Advanced Settings is already installed. $\n$\nClick `OK` to upgrade the \
existing installation or `Cancel` to cancel this upgrade." \
IDOK upgrade
Abort
upgrade:
StrCpy $upgradeInstallation "true"
done:
FunctionEnd
;--------------------------------
;Installer Sections
Section "Install" SecInstall
!insertmacro TerminateOverlay
StrCmp $upgradeInstallation "true" 0 noupgrade
DetailPrint "Uninstall previous version..."
ExecWait '"$INSTDIR\Uninstall.exe" /S _?=$INSTDIR'
Delete $INSTDIR\Uninstall.exe
Goto afterupgrade
noupgrade:
afterupgrade:
SetOutPath "$INSTDIR"
;ADD YOUR OWN FILES HERE...
File "${BASEDIR}\LICENSE-GPL.txt"
File "${BASEDIR}\LICENSE-MIT.txt"
File "${BASEDIR}\LICENSE-VALVE.txt"
File "${BASEDIR}\*.exe"
File "${THIRDDIR}\openvr\bin\win64\*.dll"
File "${BASEDIR}\*.dll"
File "${PACKAGEDIR}\*.bat"
File "${PACKAGEDIR}\*.vrmanifest"
File "${PACKAGEDIR}\*.conf"
File /r "${SRCDIR}\res"
File /r "${BASEDIR}\qtdata"
; Install redistributable
ExecWait '"$INSTDIR\vcredist_x64.exe" /install /quiet'
; Install the vrmanifest
nsExec::ExecToLog '"$INSTDIR\AdvancedSettings.exe" -installmanifest'
;Store installation folder
WriteRegStr HKLM "Software\OpenVR-AdvancedSettings" "" $INSTDIR
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenVRAdvancedSettings" "DisplayName" "OpenVR Advanced Settings"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenVRAdvancedSettings" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
; If SteamVR is already running, execute the dashboard as the user
FindWindow $0 "Qt5QWindowIcon" "SteamVR Status"
StrCmp $0 0 +2
Exec '"$INSTDIR\AdvancedSettings.exe"'
SectionEnd
;--------------------------------
;Uninstaller Section
Section "Uninstall"
!insertmacro TerminateOverlay
; Remove the vrmanifest
nsExec::ExecToLog '"$INSTDIR\AdvancedSettings.exe" -removemanifest'
; Delete installed files
!include uninstallFiles.list
DeleteRegKey HKLM "Software\OpenVR-AdvancedSettings"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenVRAdvancedSettings"
SectionEnd