Source code

Revision control

Copy as Markdown

Other Tools

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
!ifndef INSTALL_DIR_HELPERS_NSH
!define INSTALL_DIR_HELPERS_NSH
!macro GetRawCommandLine Result
System::Call 'kernel32::GetCommandLineW() w .r${Result}'
!macroend
!define GetRawCommandLine "!insertmacro GetRawCommandLine"
!macro GetDArg Result
; /D= gets removed by NSIS from ${GetParameters} so check the raw command line
${GetRawCommandLine} 0
ClearErrors
${GetOptions} "$0" "/D=" ${Result}
${If} ${Errors}
StrCpy ${Result} ""
${EndIf}
!macroend
!define GetDArg "!insertmacro GetDArg"
!macro GetInstallDirectoryNameArg Result
${GetParameters} $0
ClearErrors
${GetOptions} "$0" "/InstallDirectoryName=" ${Result}
${If} ${Errors}
StrCpy ${Result} ""
${EndIf}
!macroend
!define GetInstallDirectoryNameArg "!insertmacro GetInstallDirectoryNameArg"
!macro GetInstallDirectoryPathArg Result
${GetParameters} $0
ClearErrors
${GetOptions} "$0" "/InstallDirectoryPath=" ${Result}
${If} ${Errors}
StrCpy ${Result} ""
${EndIf}
!macroend
!define GetInstallDirectoryPathArg "!insertmacro GetInstallDirectoryPathArg"
!macro UseExistingInstallPathIfNoInstallDirArg Path
Push $0
Push ${Path}
${GetInstallDirectoryPathArg} $0
${If} "$0" == ""
${GetInstallDirectoryNameArg} $0
${If} "$0" == ""
${GetDArg} $0
${If} "$0" == ""
Exch $INSTDIR
${EndIf}
${EndIf}
${EndIf}
Pop $0
Pop $0
!macroend
!define UseExistingInstallPathIfNoInstallDirArg "!insertmacro UseExistingInstallPathIfNoInstallDirArg"
!endif