CPack: Add CPACK_NSIS_INSTALL_ROOT variable (#9148)
Control the root directory of the default directory presented to the end user of an NSIS installer by a CPack variable. Previously, the value used in the NSIS script was $PROGRAMFILES, which is equivalent to the "ProgramFiles" environment variable. That default value is still the same, but now a project may override the value by setting this new variable.
This commit is contained in:
parent
1bbe4e6917
commit
5a9e8e701e
|
@ -210,6 +210,11 @@
|
|||
# CPACK_PACKAGE_INSTALL_REGISTRY_KEY - Registry key used when
|
||||
# installing this project.
|
||||
#
|
||||
# CPACK_NSIS_INSTALL_ROOT - The default installation directory presented
|
||||
# to the end user by the NSIS installer is under this root dir. The full
|
||||
# directory presented to the end user is:
|
||||
# ${CPACK_NSIS_INSTALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}
|
||||
#
|
||||
# CPACK_NSIS_MUI_ICON - The icon file (.ico) for the generated
|
||||
# install program.
|
||||
#
|
||||
|
@ -777,6 +782,11 @@ IF(${__cpack_system_name} MATCHES Windows)
|
|||
ENDIF(${__cpack_system_name} MATCHES Windows)
|
||||
cpack_set_if_not_set(CPACK_SYSTEM_NAME "${__cpack_system_name}")
|
||||
|
||||
# Root dir: default value should be the string literal "$PROGRAMFILES"
|
||||
# for backwards compatibility. Projects may set this value to anything.
|
||||
set(__cpack_root_default "$PROGRAMFILES")
|
||||
cpack_set_if_not_set(CPACK_NSIS_INSTALL_ROOT "${__cpack_root_default}")
|
||||
|
||||
# <project>-<major>.<minor>.<patch>-<release>-<platform>.<pkgtype>
|
||||
cpack_set_if_not_set(CPACK_PACKAGE_FILE_NAME
|
||||
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
!include "MUI.nsh"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
|
||||
InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
|
@ -906,7 +906,7 @@ Function .onInit
|
|||
; install directory that is expected to be the
|
||||
; default
|
||||
StrCpy $IS_DEFAULT_INSTALLDIR 0
|
||||
StrCmp "$INSTDIR" "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
|
||||
StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
|
||||
StrCpy $IS_DEFAULT_INSTALLDIR 1
|
||||
|
||||
StrCpy $SV_ALLUSERS "JustMe"
|
||||
|
@ -939,7 +939,7 @@ Function .onInit
|
|||
done:
|
||||
StrCmp $SV_ALLUSERS "AllUsers" 0 +3
|
||||
StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
|
||||
StrCpy $INSTDIR "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
|
||||
StrCpy $INSTDIR "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
|
||||
|
||||
StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
|
||||
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
|
||||
|
|
|
@ -78,6 +78,9 @@ set(CPACK_NSIS_MENU_LINKS
|
|||
"news://newsserver" "Test News Link"
|
||||
)
|
||||
|
||||
# Suggested default root for end users of the installer:
|
||||
set(CPACK_NSIS_INSTALL_ROOT "C:\\Program Files\\CMake Tests Install Root")
|
||||
|
||||
# Include CPack to introduce the appropriate targets
|
||||
include(CPack)
|
||||
|
||||
|
|
Loading…
Reference in New Issue