mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
Add explicit support for passing a `ADD_CMAKE_TO_PATH={0,1}` property to
`msiexec` command-line installations to control the checkbox. Also
preserve compatibility with the old `ADD_CMAKE_TO_PATH={None,System}`
property, which previously controlled the radio button group, by mapping
the values to the checkbox.
Remove the "Add CMake to the system PATH for the current user" option.
It actually added CMake to the installing user's PATH, not the system
PATH, even though CMake is installed to a system location.
Also revise the wording of the desktop shortcut checkbox to match
the style of the PATH checkbox wording.
Issue: #21465
314 lines
12 KiB
CMake
314 lines
12 KiB
CMake
# This file is configured at cmake time, and loaded at cpack time.
|
|
# To pass variables to cpack from cmake, they must be configured
|
|
# in this file.
|
|
|
|
if(CPACK_GENERATOR MATCHES "NSIS")
|
|
set(CPACK_NSIS_INSTALL_ROOT "@CPACK_NSIS_INSTALL_ROOT@")
|
|
|
|
# set the install/uninstall icon used for the installer itself
|
|
# There is a bug in NSI that does not handle full unix paths properly.
|
|
set(CPACK_NSIS_MUI_ICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeLogo.ico")
|
|
set(CPACK_NSIS_MUI_UNIICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeLogo.ico")
|
|
# set the package header icon for MUI
|
|
set(CPACK_PACKAGE_ICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeInstall.bmp")
|
|
# tell cpack to create links to the doc files
|
|
set(CPACK_NSIS_MENU_LINKS
|
|
"@CMAKE_DOC_DIR@/html/index.html" "CMake Documentation"
|
|
"https://cmake.org" "CMake Web Site"
|
|
)
|
|
# Use the icon from cmake-gui for add-remove programs
|
|
set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\cmake-gui.exe")
|
|
|
|
set(CPACK_NSIS_PACKAGE_NAME "@CPACK_NSIS_PACKAGE_NAME@")
|
|
set(CPACK_NSIS_DISPLAY_NAME "@CPACK_NSIS_PACKAGE_NAME@, a cross-platform, open-source build system")
|
|
set(CPACK_NSIS_HELP_LINK "https://cmake.org")
|
|
set(CPACK_NSIS_URL_INFO_ABOUT "http://www.kitware.com")
|
|
set(CPACK_NSIS_CONTACT @CPACK_PACKAGE_CONTACT@)
|
|
set(CPACK_NSIS_MODIFY_PATH ON)
|
|
endif()
|
|
|
|
# include the cpack options for qt dialog if they exist
|
|
# they might not if qt was not enabled for the build
|
|
include("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)
|
|
|
|
if(CPACK_GENERATOR MATCHES "IFW")
|
|
|
|
# Installer configuration
|
|
set(CPACK_IFW_PACKAGE_TITLE "CMake Build Tool")
|
|
set(CPACK_IFW_PRODUCT_URL "https://cmake.org")
|
|
@_CPACK_IFW_PACKAGE_ICON@
|
|
set(CPACK_IFW_PACKAGE_WINDOW_ICON
|
|
"@CMake_SOURCE_DIR@/Source/QtDialog/CMakeSetup128.png")
|
|
set(CPACK_IFW_PACKAGE_CONTROL_SCRIPT
|
|
"@CMake_SOURCE_DIR@/Source/QtIFW/controlscript.qs")
|
|
|
|
# Uninstaller configuration
|
|
set(CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME "cmake-maintenance")
|
|
@_CPACK_IFW_COMPONENTS_CONFIGURATION@
|
|
# Unspecified
|
|
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNSPECIFIED_UNAME@_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
# Package configuration group
|
|
set(CPACK_IFW_PACKAGE_GROUP CMake)
|
|
|
|
# Group configuration
|
|
|
|
# CMake
|
|
set(CPACK_COMPONENT_GROUP_CMAKE_DISPLAY_NAME
|
|
"@CPACK_PACKAGE_NAME@")
|
|
set(CPACK_COMPONENT_GROUP_CMAKE_DESCRIPTION
|
|
"@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
|
|
@_CPACK_IFW_COMPONENT_GROUP_CMAKE@
|
|
|
|
# Tools
|
|
set(CPACK_COMPONENT_GROUP_TOOLS_DISPLAY_NAME "Command-Line Tools")
|
|
set(CPACK_COMPONENT_GROUP_TOOLS_DESCRIPTION
|
|
"Command-Line Tools: cmake, ctest and cpack")
|
|
set(CPACK_COMPONENT_GROUP_TOOLS_PARENT_GROUP CMake)
|
|
set(CPACK_IFW_COMPONENT_GROUP_TOOLS_PRIORITY 90)
|
|
set(CPACK_IFW_COMPONENT_GROUP_TOOLS_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CMAKE_DISPLAY_NAME "cmake")
|
|
set(CPACK_COMPONENT_CMAKE_DESCRIPTION
|
|
"The \"cmake\" executable is the CMake command-line interface")
|
|
set(CPACK_COMPONENT_CMAKE_REQUIRED TRUE)
|
|
set(CPACK_COMPONENT_CMAKE_GROUP Tools)
|
|
set(CPACK_IFW_COMPONENT_CMAKE_NAME "CMake")
|
|
set(CPACK_IFW_COMPONENT_CMAKE_PRIORITY 89)
|
|
set(CPACK_IFW_COMPONENT_CMAKE_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CTEST_DISPLAY_NAME "ctest")
|
|
set(CPACK_COMPONENT_CTEST_DESCRIPTION
|
|
"The \"ctest\" executable is the CMake test driver program")
|
|
set(CPACK_COMPONENT_CTEST_REQUIRED TRUE)
|
|
set(CPACK_COMPONENT_CTEST_GROUP Tools)
|
|
set(CPACK_IFW_COMPONENT_CTEST_NAME "CTest")
|
|
set(CPACK_IFW_COMPONENT_CTEST_PRIORITY 88)
|
|
set(CPACK_IFW_COMPONENT_CTEST_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CPACK_DISPLAY_NAME "cpack")
|
|
set(CPACK_COMPONENT_CPACK_DESCRIPTION
|
|
"The \"cpack\" executable is the CMake packaging program")
|
|
set(CPACK_COMPONENT_CPACK_REQUIRED TRUE)
|
|
set(CPACK_COMPONENT_CPACK_GROUP Tools)
|
|
set(CPACK_IFW_COMPONENT_CPACK_NAME "CPack")
|
|
set(CPACK_IFW_COMPONENT_CPACK_PRIORITY 87)
|
|
set(CPACK_IFW_COMPONENT_CPACK_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CMCLDEPS_DISPLAY_NAME "cmcldeps")
|
|
set(CPACK_COMPONENT_CMCLDEPS_DESCRIPTION
|
|
"The \"cmcldeps\" executable is wrapper around \"cl\" program")
|
|
set(CPACK_COMPONENT_CMCLDEPS_GROUP Tools)
|
|
set(CPACK_IFW_COMPONENT_CMCLDEPS_NAME "CMClDeps")
|
|
set(CPACK_IFW_COMPONENT_CMCLDEPS_PRIORITY 86)
|
|
set(CPACK_IFW_COMPONENT_CMCLDEPS_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
# Dialogs
|
|
set(CPACK_COMPONENT_GROUP_DIALOGS_DISPLAY_NAME "Interactive Dialogs")
|
|
set(CPACK_COMPONENT_GROUP_DIALOGS_DESCRIPTION
|
|
"Interactive Dialogs with Console and GUI interfaces")
|
|
set(CPACK_COMPONENT_GROUP_DIALOGS_PARENT_GROUP CMake)
|
|
set(CPACK_IFW_COMPONENT_GROUP_DIALOGS_PRIORITY 80)
|
|
set(CPACK_IFW_COMPONENT_GROUP_DIALOGS_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CMAKE-GUI_DISPLAY_NAME "cmake-gui")
|
|
set(CPACK_COMPONENT_CMAKE-GUI_GROUP Dialogs)
|
|
set(CPACK_IFW_COMPONENT_CMAKE-GUI_NAME "QtGUI")
|
|
set(CPACK_IFW_COMPONENT_CMAKE-GUI_SCRIPT
|
|
"@CMake_BINARY_DIR@/CMake.Dialogs.QtGUI.qs")
|
|
set(CPACK_IFW_COMPONENT_CMAKE-GUI_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
@_CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES@
|
|
|
|
set(CPACK_COMPONENT_CCMAKE_DISPLAY_NAME "ccmake")
|
|
set(CPACK_COMPONENT_CCMAKE_GROUP Dialogs)
|
|
set(CPACK_IFW_COMPONENT_CCMAKE_NAME "CursesGUI")
|
|
set(CPACK_IFW_COMPONENT_CCMAKE_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
# Documentation
|
|
set(CPACK_COMPONENT_GROUP_DOCUMENTATION_DISPLAY_NAME "Documentation")
|
|
set(CPACK_COMPONENT_GROUP_DOCUMENTATION_DESCRIPTION
|
|
"CMake Documentation in different formats (html, man, qch)")
|
|
set(CPACK_COMPONENT_GROUP_DOCUMENTATION_PARENT_GROUP CMake)
|
|
set(CPACK_IFW_COMPONENT_GROUP_DOCUMENTATION_PRIORITY 60)
|
|
set(CPACK_IFW_COMPONENT_GROUP_DOCUMENTATION_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_SPHINX-MAN_DISPLAY_NAME "man")
|
|
set(CPACK_COMPONENT_SPHINX-MAN_GROUP Documentation)
|
|
set(CPACK_COMPONENT_SPHINX-MAN_DISABLED TRUE)
|
|
set(CPACK_IFW_COMPONENT_SPHINX-MAN_NAME "SphinxMan")
|
|
set(CPACK_IFW_COMPONENT_SPHINX-MAN_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_SPHINX-HTML_DISPLAY_NAME "HTML")
|
|
set(CPACK_COMPONENT_SPHINX-HTML_GROUP Documentation)
|
|
set(CPACK_IFW_COMPONENT_SPHINX-HTML_NAME "SphinxHTML")
|
|
set(CPACK_IFW_COMPONENT_SPHINX-HTML_SCRIPT
|
|
"@CMake_BINARY_DIR@/CMake.Documentation.SphinxHTML.qs")
|
|
set(CPACK_IFW_COMPONENT_SPHINX-HTML_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_SPHINX-SINGLEHTML_DISPLAY_NAME "Single HTML")
|
|
set(CPACK_COMPONENT_SPHINX-SINGLEHTML_GROUP Documentation)
|
|
set(CPACK_COMPONENT_SPHINX-SINGLEHTML_DISABLED TRUE)
|
|
set(CPACK_IFW_COMPONENT_SPHINX-SINGLEHTML_NAME "SphinxSingleHTML")
|
|
set(CPACK_IFW_COMPONENT_SPHINX-SINGLEHTML_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_SPHINX-QTHELP_DISPLAY_NAME "Qt Compressed Help")
|
|
set(CPACK_COMPONENT_SPHINX-QTHELP_GROUP Documentation)
|
|
set(CPACK_COMPONENT_SPHINX-QTHELP_DISABLED TRUE)
|
|
set(CPACK_IFW_COMPONENT_SPHINX-QTHELP_NAME "SphinxQtHelp")
|
|
set(CPACK_IFW_COMPONENT_SPHINX-QTHELP_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
# Developer Reference
|
|
set(CPACK_COMPONENT_GROUP_DEVELOPERREFERENCE_DISPLAY_NAME "Developer Reference")
|
|
set(CPACK_COMPONENT_GROUP_DEVELOPERREFERENCE_DESCRIPTION
|
|
"CMake Reference in different formats (html, qch)")
|
|
set(CPACK_COMPONENT_GROUP_DEVELOPERREFERENCE_PARENT_GROUP CMake)
|
|
set(CPACK_IFW_COMPONENT_GROUP_DEVELOPERREFERENCE_PRIORITY 50)
|
|
set(CPACK_IFW_COMPONENT_GROUP_DEVELOPERREFERENCE_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CMAKE-DEVELOPER-REFERENCE-HTML_DISPLAY_NAME "HTML")
|
|
set(CPACK_COMPONENT_CMAKE-DEVELOPER-REFERENCE-HTML_GROUP DeveloperReference)
|
|
set(CPACK_COMPONENT_CMAKE-DEVELOPER-REFERENCE-HTML_DISABLED TRUE)
|
|
set(CPACK_IFW_COMPONENT_CMAKE-DEVELOPER-REFERENCE-HTML_NAME "HTML")
|
|
set(CPACK_IFW_COMPONENT_CMAKE-DEVELOPER-REFERENCE-HTML_SCRIPT
|
|
"@CMake_BINARY_DIR@/CMake.DeveloperReference.HTML.qs")
|
|
set(CPACK_IFW_COMPONENT_CMAKE-DEVELOPER-REFERENCE-HTML_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
set(CPACK_COMPONENT_CMAKE-DEVELOPER-REFERENCE-QTHELP_DISPLAY_NAME "Qt Compressed Help")
|
|
set(CPACK_COMPONENT_CMAKE-DEVELOPER-REFERENCE-QTHELP_GROUP DeveloperReference)
|
|
set(CPACK_COMPONENT_CMAKE-DEVELOPER-REFERENCE-QTHELP_DISABLED TRUE)
|
|
set(CPACK_IFW_COMPONENT_CMAKE-DEVELOPER-REFERENCE-QTHELP_NAME "QtHelp")
|
|
set(CPACK_IFW_COMPONENT_CMAKE-DEVELOPER-REFERENCE-QTHELP_VERSION
|
|
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
|
|
|
endif()
|
|
|
|
if("${CPACK_GENERATOR}" STREQUAL "DragNDrop")
|
|
set(CPACK_DMG_BACKGROUND_IMAGE
|
|
"@CMake_SOURCE_DIR@/Packaging/CMakeDMGBackground.tif")
|
|
set(CPACK_DMG_DS_STORE_SETUP_SCRIPT
|
|
"@CMake_SOURCE_DIR@/Packaging/CMakeDMGSetup.scpt")
|
|
endif()
|
|
|
|
if("${CPACK_GENERATOR}" STREQUAL "WIX")
|
|
# Reset CPACK_PACKAGE_VERSION to deal with WiX restriction.
|
|
# But the file names still use the full CMake_VERSION value:
|
|
set(CPACK_PACKAGE_FILE_NAME
|
|
"cmake-@CMake_VERSION@-${CPACK_SYSTEM_NAME}")
|
|
set(CPACK_SOURCE_PACKAGE_FILE_NAME
|
|
"cmake-@CMake_VERSION@")
|
|
|
|
if(NOT CPACK_WIX_SIZEOF_VOID_P)
|
|
set(CPACK_WIX_SIZEOF_VOID_P "@CMAKE_SIZEOF_VOID_P@")
|
|
endif()
|
|
|
|
set(CPACK_PACKAGE_VERSION
|
|
"@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@")
|
|
# WIX installers require at most a 4 component version number, where
|
|
# each component is an integer between 0 and 65534 inclusive
|
|
set(patch "@CMake_VERSION_PATCH@")
|
|
if(patch MATCHES "^[0-9]+$" AND patch LESS 65535)
|
|
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${patch}")
|
|
endif()
|
|
|
|
set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "https://cmake.org")
|
|
|
|
set(CPACK_WIX_PROPERTY_ARPCONTACT "@CPACK_PACKAGE_CONTACT@")
|
|
|
|
set(CPACK_WIX_PROPERTY_ARPCOMMENTS
|
|
"CMake is a cross-platform, open-source build system."
|
|
)
|
|
|
|
set(CPACK_WIX_PRODUCT_ICON
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/CMakeLogo.ico"
|
|
)
|
|
|
|
set_property(INSTALL "@CMAKE_DOC_DIR@/html/index.html" PROPERTY
|
|
CPACK_START_MENU_SHORTCUTS "CMake Documentation"
|
|
)
|
|
|
|
set_property(INSTALL "cmake.org.html" PROPERTY
|
|
CPACK_START_MENU_SHORTCUTS "CMake Web Site"
|
|
)
|
|
|
|
set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-dcl:high")
|
|
|
|
if(NOT "$ENV{CMAKE_CI_PACKAGE}" STREQUAL "")
|
|
# Suppress validation. It does not work without
|
|
# an interactive session or an admin account.
|
|
# https://github.com/wixtoolset/issues/issues/3968
|
|
list(APPEND CPACK_WIX_LIGHT_EXTRA_FLAGS "-sval")
|
|
endif()
|
|
|
|
set(CPACK_WIX_UI_BANNER
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/ui_banner.jpg"
|
|
)
|
|
|
|
set(CPACK_WIX_UI_DIALOG
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/ui_dialog.jpg"
|
|
)
|
|
|
|
set(CPACK_WIX_EXTRA_SOURCES
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/install_dir.wxs"
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/options.wxs"
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/options_dlg.wxs"
|
|
)
|
|
|
|
set(_WIX_CUSTOM_ACTION_ENABLED "@CMake_BUILD_WIX_CUSTOM_ACTION@")
|
|
if(_WIX_CUSTOM_ACTION_ENABLED)
|
|
list(APPEND CPACK_WIX_EXTRA_SOURCES
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/cmake_nsis_overwrite_dialog.wxs"
|
|
)
|
|
list(APPEND CPACK_WIX_CANDLE_EXTRA_FLAGS -dCHECK_NSIS=1)
|
|
|
|
set(_WIX_CUSTOM_ACTION_MULTI_CONFIG "@CMake_BUILD_WIX_CUSTOM_ACTION_MULTI_CONFIG@")
|
|
if(_WIX_CUSTOM_ACTION_MULTI_CONFIG)
|
|
if(CPACK_BUILD_CONFIG)
|
|
set(_WIX_CUSTOM_ACTION_CONFIG "${CPACK_BUILD_CONFIG}")
|
|
else()
|
|
set(_WIX_CUSTOM_ACTION_CONFIG "Release")
|
|
endif()
|
|
|
|
list(APPEND CPACK_WIX_EXTRA_SOURCES
|
|
"@CMake_BINARY_DIR@/Utilities/Release/WiX/custom_action_dll-${_WIX_CUSTOM_ACTION_CONFIG}.wxs")
|
|
else()
|
|
list(APPEND CPACK_WIX_EXTRA_SOURCES
|
|
"@CMake_BINARY_DIR@/Utilities/Release/WiX/custom_action_dll.wxs")
|
|
endif()
|
|
endif()
|
|
|
|
set(CPACK_WIX_UI_REF "CMakeUI_InstallDir")
|
|
|
|
set(CPACK_WIX_PATCH_FILE
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/patch_path_env.xml"
|
|
)
|
|
|
|
set(CPACK_WIX_TEMPLATE
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/WIX.template.in"
|
|
)
|
|
|
|
set(BUILD_QtDialog "@BUILD_QtDialog@")
|
|
|
|
if(BUILD_QtDialog)
|
|
list(APPEND CPACK_WIX_PATCH_FILE
|
|
"@CMake_SOURCE_DIR@/Utilities/Release/WiX/patch_desktop_shortcut.xml"
|
|
)
|
|
list(APPEND CPACK_WIX_CANDLE_EXTRA_FLAGS -dBUILD_QtDialog=1)
|
|
endif()
|
|
endif()
|