mirror of https://github.com/PCSX2/pcsx2.git
120 lines
3.2 KiB
Plaintext
120 lines
3.2 KiB
Plaintext
; Copyright (C) 2017 PCSX2 Team
|
|
|
|
; These definitions are shared between the 2 installers (pre-install/portable and full)
|
|
; This reduces duplicate code throughout both installers.
|
|
|
|
!include "FileFunc.nsh"
|
|
|
|
ManifestDPIAware true
|
|
Unicode true
|
|
ShowInstDetails nevershow
|
|
ShowUninstDetails nevershow
|
|
|
|
SetCompressor /SOLID lzma
|
|
SetCompressorDictSize 24
|
|
|
|
Var UserPrivileges
|
|
Var IsAdmin
|
|
|
|
!ifndef APP_VERSION
|
|
!define APP_VERSION "1.8.0"
|
|
!endif
|
|
|
|
!define APP_NAME "PCSX2 ${APP_VERSION}"
|
|
|
|
; The name of the installer
|
|
Name "${APP_NAME}"
|
|
|
|
!define APP_FILENAME "pcsx2"
|
|
!define APP_EXE "$INSTDIR\${APP_FILENAME}.exe"
|
|
|
|
;===============================
|
|
; MUI STUFF
|
|
!include "MUI2.nsh"
|
|
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP "banner.bmp"
|
|
!define MUI_COMPONENTSPAGE_SMALLDESC
|
|
!define MUI_ICON "AppIcon.ico"
|
|
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-uninstall.ico"
|
|
|
|
Function IsUserAdmin
|
|
!include WinVer.nsh
|
|
# No user should ever have to experience this pain ;)
|
|
${IfNot} ${AtLeastWin8.1}
|
|
MessageBox MB_OK "Your operating system is unsupported by PCSX2. Please upgrade your operating system or install PCSX2."
|
|
Quit
|
|
${EndIf}
|
|
|
|
UserInfo::GetOriginalAccountType
|
|
Pop $UserPrivileges
|
|
|
|
# GetOriginalAccountType will check the tokens of the original user of the
|
|
# current thread/process. If the user tokens were elevated or limited for
|
|
# this process, GetOriginalAccountType will return the non-restricted
|
|
# account type.
|
|
# On Windows with UAC, for example, this is not the same value when running
|
|
# with `RequestExecutionLevel user`. GetOriginalAccountType will return
|
|
# "admin" while GetAccountType will return "user".
|
|
;UserInfo::GetOriginalAccountType
|
|
;Pop $R2
|
|
|
|
${If} $UserPrivileges == "Admin"
|
|
StrCpy $IsAdmin 1
|
|
${ElseIf} $UserPrivileges == "User"
|
|
StrCpy $IsAdmin 0
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
Function ShowHelpMessage
|
|
!define line1 "Command line options:$\r$\n$\r$\n"
|
|
!define line2 "/S - silent install (must be uppercase)$\r$\n"
|
|
!define line3 "/D=path\to\install\folder - Change install directory (Must be uppercase, the last option given and no quotes)$\r$\n"
|
|
!define line4 "/NoStart - Do not create start menu shortcut$\r$\n"
|
|
!define line5 "/NoDesktop - Do not create desktop shortcut$\r$\n"
|
|
!define line6 "/Portable- Install in portable mode instead of full install, no effect unless /S is passed as well"
|
|
MessageBox MB_OK "${line1}${line2}${line3}${line4}${line5}${line6}"
|
|
Abort
|
|
FunctionEnd
|
|
|
|
Function .onInit
|
|
Var /GLOBAL cmdLineParams
|
|
Push $R0
|
|
${GetParameters} $cmdLineParams
|
|
ClearErrors
|
|
|
|
${GetOptions} $cmdLineParams '/?' $R0
|
|
IfErrors +2 0
|
|
Call ShowHelpMessage
|
|
|
|
${GetOptions} $cmdLineParams '/H' $R0
|
|
IfErrors +2 0
|
|
Call ShowHelpMessage
|
|
|
|
Pop $R0
|
|
|
|
|
|
Var /GLOBAL option_startMenu
|
|
Var /GLOBAL option_desktop
|
|
Var /GLOBAL option_portable
|
|
StrCpy $option_startMenu 1
|
|
StrCpy $option_desktop 1
|
|
StrCpy $option_portable 0
|
|
|
|
Push $R0
|
|
|
|
${GetOptions} $cmdLineParams '/NoStart' $R0
|
|
IfErrors +2 0
|
|
StrCpy $option_startMenu 0
|
|
|
|
${GetOptions} $cmdLineParams '/NoDesktop' $R0
|
|
IfErrors +2 0
|
|
StrCpy $option_desktop 0
|
|
|
|
${GetOptions} $cmdLineParams '/Portable' $R0
|
|
IfErrors +2 0
|
|
StrCpy $option_portable 1
|
|
|
|
Pop $R0
|
|
|
|
FunctionEnd |