Upstream version 3.8.0
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFkxwUS95KUdnZKtW/iLG/YMTXUUFAljxAJQACgkQ/iLG/YMT XUXCIw//S09p6HKIc7WpMP4X4DWPzVu06HvUmrZVp08WL6TQOnrr5Rdfvhj9OC8o mR2dDo0LzYmtxba6zSYxQkuzdaJJ1ORhtJwwylsG6vfCJDFm2t1H/Cr/m7uuXv6M zt6qrHkb5uynMDwV+4RBcbvbakg7ZIYuKHwR3hBnf/rATDT4Gv91oUZ/XUh63Pxr aX3J7pZtvbnXFFAl13EraqUcgW2ooW1WuUht3A/KCQGdRrmEboinBJLgX+IAujja qSo5Fn+CI+lZagQJ5cE5qo1F2LJIGPrXwnktecjpTHBgvS4/Aw4OKsh/pELCrnlI k6iZTGGwPU4vPYr1L17FZszQDJ7OARbtqLz8VyT+uGHjEkxPGGuKEXsdkVRwsT9u 0aLhcgFFq4ZZEBcDLmbyoKNN9blyHtBtW5TGId1t4BhKukElsqaK7F9BzVmhjrez NPvI1Wrw6NynJAh2YcSA7jN0bFeCLr0g090Exl5DLfr1+hqmBSB755+KgArYddRr padZXtNF4c88IJBelkuFhmeaUQ6F110XH/gAURi8oXTgfuYp4kqL3A6xhcuDQOlS MdTODllHq965mphI4jCyFhmIiG7PDZQe9rIy8Avfqb00ivtenllJxicCL+wei8ja MDg2vI3T802MRefx3/oIObJmVnrnipzJurodIk0hHXUWa362p4c= =ZWlM -----END PGP SIGNATURE----- Merge tag 'upstream/3.8.0' into experimental Upstream version 3.8.0 # gpg: Signature made Fr 14 Apr 2017 19:02:12 CEST # gpg: using RSA key 164C70512F7929476764AB56FE22C6FD83135D45 # gpg: Good signature from "Felix Geyer <felix@fobos.de>" [ultimate] # gpg: aka "Felix Geyer <debfx-pkg@fobos.de>" [ultimate] # gpg: aka "Felix Geyer <debfx@kubuntu.org>" [ultimate] # gpg: aka "Felix Geyer <debfx@fobos.de>" [ultimate] # gpg: aka "Felix Geyer <debfx@ubuntu.com>" [ultimate] # gpg: aka "Felix Geyer <felix.geyer@fobos.de>" [ultimate] # gpg: aka "Felix Geyer <fgeyer@debian.org>" [ultimate] # Primary key fingerprint: 164C 7051 2F79 2947 6764 AB56 FE22 C6FD 8313 5D45
This commit is contained in:
commit
e567ae1c00
24
.gitattributes
vendored
24
.gitattributes
vendored
@ -1,6 +1,13 @@
|
||||
.gitattributes export-ignore
|
||||
.hooks* export-ignore
|
||||
|
||||
# Custom attribute to mark sources as using our C code style.
|
||||
[attr]our-c-style whitespace=tab-in-indent format.clang-format
|
||||
|
||||
# Custom attribute to mark sources as generated.
|
||||
# Do not perform whitespace checks. Do not format.
|
||||
[attr]generated whitespace=-tab-in-indent,-indent-with-non-tab -format.clang-format
|
||||
|
||||
bootstrap crlf=input
|
||||
configure crlf=input
|
||||
*.[1-9] crlf=input
|
||||
@ -16,10 +23,17 @@ configure crlf=input
|
||||
*.sln -crlf
|
||||
*.vcproj -crlf
|
||||
|
||||
*.c whitespace=tab-in-indent
|
||||
*.h whitespace=tab-in-indent
|
||||
*.cxx whitespace=tab-in-indent
|
||||
*.txt whitespace=tab-in-indent
|
||||
*.cmake whitespace=tab-in-indent
|
||||
*.c our-c-style
|
||||
*.cc our-c-style
|
||||
*.cpp our-c-style
|
||||
*.cu our-c-style
|
||||
*.cxx our-c-style
|
||||
*.h our-c-style
|
||||
*.hh our-c-style
|
||||
*.hpp our-c-style
|
||||
*.hxx our-c-style
|
||||
*.notcu our-c-style
|
||||
|
||||
*.cmake whitespace=tab-in-indent
|
||||
*.rst whitespace=tab-in-indent conflict-marker-size=79
|
||||
*.txt whitespace=tab-in-indent
|
||||
|
@ -4,6 +4,7 @@
|
||||
# Loaded by .git/hooks/(pre-commit|commit-msg|prepare-commit-msg)
|
||||
# during git commit after local hooks have been installed.
|
||||
|
||||
hooks_chain_pre_commit="Utilities/Git/pre-commit"
|
||||
hooks_chain_commit_msg="Utilities/Git/commit-msg"
|
||||
hooks_chain_prepare_commit_msg="Utilities/Git/prepare-commit-msg"
|
||||
[hooks "chain"]
|
||||
pre-commit = Utilities/Git/pre-commit
|
||||
commit-msg = Utilities/Git/commit-msg
|
||||
prepare-commit-msg = Utilities/Git/prepare-commit-msg
|
@ -1,4 +1,4 @@
|
||||
install(DIRECTORY vim/indent vim/syntax DESTINATION ${CMAKE_DATA_DIR}/editors/vim)
|
||||
install(FILES cmake-mode.el DESTINATION ${CMAKE_DATA_DIR}/editors/emacs)
|
||||
install(FILES cmake.m4 DESTINATION share/aclocal)
|
||||
install(FILES cmake.m4 DESTINATION ${CMAKE_XDGDATA_DIR}/aclocal)
|
||||
add_subdirectory (bash-completion)
|
||||
|
File diff suppressed because one or more lines are too long
416
CMakeCPack.cmake
416
CMakeCPack.cmake
@ -1,205 +1,249 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# If the cmake version includes cpack, use it
|
||||
if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
|
||||
if(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake")
|
||||
option(CMAKE_INSTALL_DEBUG_LIBRARIES
|
||||
"Install Microsoft runtime debug libraries with CMake." FALSE)
|
||||
mark_as_advanced(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
||||
option(CMAKE_INSTALL_DEBUG_LIBRARIES
|
||||
"Install Microsoft runtime debug libraries with CMake." FALSE)
|
||||
mark_as_advanced(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
||||
|
||||
# By default, do not warn when built on machines using only VS Express:
|
||||
if(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
|
||||
endif()
|
||||
# By default, do not warn when built on machines using only VS Express:
|
||||
if(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
|
||||
endif()
|
||||
|
||||
if(CMake_INSTALL_DEPENDENCIES)
|
||||
include(${CMake_SOURCE_DIR}/Modules/InstallRequiredSystemLibraries.cmake)
|
||||
endif()
|
||||
endif()
|
||||
if(CMake_INSTALL_DEPENDENCIES)
|
||||
include(${CMake_SOURCE_DIR}/Modules/InstallRequiredSystemLibraries.cmake)
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake is a build tool")
|
||||
set(CPACK_PACKAGE_VENDOR "Kitware")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
|
||||
set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
|
||||
set(CPACK_PACKAGE_VERSION "${CMake_VERSION}")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "cmake-${CMake_VERSION}")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake is a build tool")
|
||||
set(CPACK_PACKAGE_VENDOR "Kitware")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
|
||||
set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
|
||||
set(CPACK_PACKAGE_VERSION "${CMake_VERSION}")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "cmake-${CMake_VERSION}")
|
||||
|
||||
# Installers for 32- vs. 64-bit CMake:
|
||||
# - Root install directory (displayed to end user at installer-run time)
|
||||
# - "NSIS package/display name" (text used in the installer GUI)
|
||||
# - Registry key used to store info about the installation
|
||||
if(CMAKE_CL_64)
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION} (Win64)")
|
||||
# Installers for 32- vs. 64-bit CMake:
|
||||
# - Root install directory (displayed to end user at installer-run time)
|
||||
# - "NSIS package/display name" (text used in the installer GUI)
|
||||
# - Registry key used to store info about the installation
|
||||
if(CMAKE_CL_64)
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION} (Win64)")
|
||||
else()
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
|
||||
endif()
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_NSIS_PACKAGE_NAME}")
|
||||
|
||||
if(NOT DEFINED CPACK_SYSTEM_NAME)
|
||||
# make sure package is not Cygwin-unknown, for Cygwin just
|
||||
# cygwin is good for the system name
|
||||
if("x${CMAKE_SYSTEM_NAME}" STREQUAL "xCYGWIN")
|
||||
set(CPACK_SYSTEM_NAME Cygwin)
|
||||
else()
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
|
||||
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_NSIS_PACKAGE_NAME}")
|
||||
endif()
|
||||
if(${CPACK_SYSTEM_NAME} MATCHES Windows)
|
||||
if(CMAKE_CL_64)
|
||||
set(CPACK_SYSTEM_NAME win64-x64)
|
||||
set(CPACK_IFW_TARGET_DIRECTORY "@RootDir@/Program Files/${CMAKE_PROJECT_NAME}")
|
||||
else()
|
||||
set(CPACK_SYSTEM_NAME win32-x86)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CPACK_SYSTEM_NAME)
|
||||
# make sure package is not Cygwin-unknown, for Cygwin just
|
||||
# cygwin is good for the system name
|
||||
if("x${CMAKE_SYSTEM_NAME}" STREQUAL "xCYGWIN")
|
||||
set(CPACK_SYSTEM_NAME Cygwin)
|
||||
else()
|
||||
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
endif()
|
||||
if(${CPACK_SYSTEM_NAME} MATCHES Windows)
|
||||
if(CMAKE_CL_64)
|
||||
set(CPACK_SYSTEM_NAME win64-x64)
|
||||
set(CPACK_IFW_TARGET_DIRECTORY "@RootDir@/Program Files/${CMAKE_PROJECT_NAME}")
|
||||
else()
|
||||
set(CPACK_SYSTEM_NAME win32-x86)
|
||||
endif()
|
||||
endif()
|
||||
# Command for configure IFW script templates
|
||||
include(${CMake_SOURCE_DIR}/Modules/CPackIFWConfigureFile.cmake)
|
||||
|
||||
# Components
|
||||
if(CMake_INSTALL_COMPONENTS)
|
||||
set(_CPACK_IFW_COMPONENTS_ALL cmake ctest cpack)
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmcldeps)
|
||||
# Advanced IFW configuration
|
||||
set(_cpifwrc CPACK_IFW_COMPONENT_GROUP_CMAKE_)
|
||||
set(_cpifwrcconf _CPACK_IFW_COMPONENT_GROUP_CMAKE)
|
||||
set(${_cpifwrcconf} "# CMake IFW configuration\n")
|
||||
macro(_cmifwarg DESCRIPTION TYPE NAME DEFAULT)
|
||||
set(_var CMake_IFW_ROOT_COMPONENT_${NAME})
|
||||
if(DEFINED ${_var})
|
||||
set(${_var} ${${_var}} CACHE ${TYPE} ${DESCRIPTION})
|
||||
mark_as_advanced(${_var})
|
||||
elseif(NOT "${DEFAULT}" STREQUAL "")
|
||||
set(${_var} ${DEFAULT})
|
||||
endif()
|
||||
if(DEFINED ${_var})
|
||||
set(${_cpifwrcconf}
|
||||
"${${_cpifwrcconf}} set(${_cpifwrc}${NAME}\n \"${${_var}}\")\n")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
_cmifwarg("Package <Name> tag (domen-like)"
|
||||
STRING NAME "")
|
||||
_cmifwarg("Package <DisplayName> tag"
|
||||
STRING DISPLAY_NAME "")
|
||||
_cmifwarg("Package <Description> tag"
|
||||
STRING DESCRIPTION "")
|
||||
_cmifwarg("Package <ReleaseDate> tag (keep empty to auto generate)"
|
||||
STRING RELEASE_DATE "")
|
||||
_cmifwarg("Package <Default> tag (values: TRUE, FALSE, SCRIPT)"
|
||||
STRING DEFAULT "")
|
||||
_cmifwarg("Package <Version> tag"
|
||||
STRING VERSION
|
||||
"${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}")
|
||||
_cmifwarg("Package <SortingPriority> tag"
|
||||
STRING PRIORITY "100")
|
||||
_cmifwarg("Package <ForsedInstallation> tag"
|
||||
STRING FORCED_INSTALLATION "")
|
||||
|
||||
set(${_cpifwrc}LICENSES_DEFAULT
|
||||
"${CPACK_PACKAGE_NAME} Copyright;${CPACK_RESOURCE_FILE_LICENSE}")
|
||||
|
||||
# Components
|
||||
if(CMake_INSTALL_COMPONENTS)
|
||||
set(_CPACK_IFW_COMPONENTS_ALL cmake ctest cpack)
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmcldeps)
|
||||
endif()
|
||||
if(APPLE)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmakexbuild)
|
||||
endif()
|
||||
if(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
|
||||
set(_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME
|
||||
${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
|
||||
else()
|
||||
set(_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME Unspecified)
|
||||
endif()
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL ${_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME})
|
||||
string(TOUPPER "${_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME}"
|
||||
_CPACK_IFW_COMPONENT_UNSPECIFIED_UNAME)
|
||||
if(BUILD_CursesDialog)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL ccmake)
|
||||
endif()
|
||||
if(BUILD_QtDialog)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-gui)
|
||||
if(USE_LGPL)
|
||||
set(_CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES "set(CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES
|
||||
\"LGPLv${USE_LGPL}\" \"${CMake_SOURCE_DIR}/Licenses/LGPLv${USE_LGPL}.txt\")")
|
||||
endif()
|
||||
if(APPLE)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmakexbuild)
|
||||
endif()
|
||||
if(SPHINX_MAN)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-man)
|
||||
endif()
|
||||
if(SPHINX_HTML)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-html)
|
||||
endif()
|
||||
if(SPHINX_SINGLEHTML)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-singlehtml)
|
||||
endif()
|
||||
if(SPHINX_QTHELP)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-qthelp)
|
||||
endif()
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE)
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-developer-reference-html)
|
||||
endif()
|
||||
if(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
|
||||
set(_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME
|
||||
${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
|
||||
else()
|
||||
set(_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME Unspecified)
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-developer-reference-qthelp)
|
||||
endif()
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL ${_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME})
|
||||
string(TOUPPER "${_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME}"
|
||||
_CPACK_IFW_COMPONENT_UNSPECIFIED_UNAME)
|
||||
if(BUILD_CursesDialog)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL ccmake)
|
||||
endif()
|
||||
if(BUILD_QtDialog)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-gui)
|
||||
if(USE_LGPL)
|
||||
set(_CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES "set(CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES
|
||||
\"LGPLv${USE_LGPL}\" \"${CMake_SOURCE_DIR}/Licenses/LGPLv${USE_LGPL}.txt\")")
|
||||
endif()
|
||||
endif()
|
||||
if(SPHINX_MAN)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-man)
|
||||
endif()
|
||||
if(SPHINX_HTML)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-html)
|
||||
endif()
|
||||
if(SPHINX_SINGLEHTML)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-singlehtml)
|
||||
endif()
|
||||
if(SPHINX_QTHELP)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-qthelp)
|
||||
endif()
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE)
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-developer-reference-html)
|
||||
endif()
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
|
||||
list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-developer-reference-qthelp)
|
||||
endif()
|
||||
endif()
|
||||
set(_CPACK_IFW_COMPONENTS_CONFIGURATION "
|
||||
endif()
|
||||
set(_CPACK_IFW_COMPONENTS_CONFIGURATION "
|
||||
# Components
|
||||
set(CPACK_COMPONENTS_ALL \"${_CPACK_IFW_COMPONENTS_ALL}\")
|
||||
set(CPACK_COMPONENTS_GROUPING IGNORE)
|
||||
")
|
||||
else()
|
||||
if(BUILD_QtDialog AND USE_LGPL)
|
||||
set(_CPACK_IFW_ADDITIONAL_LICENSES
|
||||
"\"LGPLv${USE_LGPL}\" \"${CMake_SOURCE_DIR}/Licenses/LGPLv${USE_LGPL}.txt\"")
|
||||
endif()
|
||||
")
|
||||
_cmifwarg("Package <Script> template"
|
||||
FILEPATH SCRIPT_TEMPLATE "${CMake_SOURCE_DIR}/Source/QtIFW/CMake.qs.in")
|
||||
else()
|
||||
if(BUILD_QtDialog AND USE_LGPL)
|
||||
set(${_cpifwrc}LICENSES_DEFAULT
|
||||
"${${_cpifwrc}LICENSES_DEFAULT};LGPLv${USE_LGPL};${CMake_SOURCE_DIR}/Licenses/LGPLv${USE_LGPL}.txt")
|
||||
endif()
|
||||
|
||||
# Components scripts configuration
|
||||
foreach(_script
|
||||
CMake
|
||||
CMake.Documentation.SphinxHTML
|
||||
CMake.DeveloperReference.HTML)
|
||||
configure_file("${CMake_SOURCE_DIR}/Source/QtIFW/${_script}.qs.in"
|
||||
"${CMake_BINARY_DIR}/${_script}.qs" @ONLY)
|
||||
endforeach()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
|
||||
set(_CPACK_IFW_PACKAGE_ICON
|
||||
"set(CPACK_IFW_PACKAGE_ICON \"${CMake_SOURCE_DIR}/Source/QtDialog/CMakeSetup.ico\")")
|
||||
if(BUILD_QtDialog)
|
||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/bin/cmake-gui.exe\", \"@StartMenuDir@/CMake (cmake-gui).lnk\");\n")
|
||||
endif()
|
||||
if(SPHINX_HTML)
|
||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}/html/index.html\", \"@StartMenuDir@/CMake Documentation.lnk\");\n")
|
||||
endif()
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE)
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
|
||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}/developer-reference/html/index.html\", \"@StartMenuDir@/CMake Developer Reference.lnk\");\n")
|
||||
endif()
|
||||
endif()
|
||||
configure_file("${CMake_SOURCE_DIR}/Source/QtIFW/installscript.qs.in"
|
||||
"${CMake_BINARY_DIR}/installscript.qs" @ONLY
|
||||
)
|
||||
install(FILES "${CMake_SOURCE_DIR}/Source/QtIFW/cmake.org.html"
|
||||
DESTINATION "${CMAKE_DOC_DIR}"
|
||||
)
|
||||
if(CMake_INSTALL_COMPONENTS)
|
||||
set(_CPACK_IFW_PACKAGE_SCRIPT "${CMake_BINARY_DIR}/CMake.qs")
|
||||
else()
|
||||
set(_CPACK_IFW_PACKAGE_SCRIPT "${CMake_BINARY_DIR}/installscript.qs")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES Linux)
|
||||
set(CPACK_IFW_TARGET_DIRECTORY "@HomeDir@/${CMAKE_PROJECT_NAME}")
|
||||
set(CPACK_IFW_ADMIN_TARGET_DIRECTORY "@ApplicationsDir@/${CMAKE_PROJECT_NAME}")
|
||||
endif()
|
||||
|
||||
set(_CPACK_IFW_PACKAGE_VERSION ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH})
|
||||
|
||||
if(NOT DEFINED CPACK_PACKAGE_FILE_NAME)
|
||||
# if the CPACK_PACKAGE_FILE_NAME is not defined by the cache
|
||||
# default to source package - system, on cygwin system is not
|
||||
# needed
|
||||
if(CYGWIN)
|
||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}")
|
||||
else()
|
||||
set(CPACK_PACKAGE_FILE_NAME
|
||||
"${CPACK_SOURCE_PACKAGE_FILE_NAME}-${CPACK_SYSTEM_NAME}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_CONTACT "cmake@cmake.org")
|
||||
|
||||
if(UNIX)
|
||||
set(CPACK_STRIP_FILES "${CMAKE_BIN_DIR}/ccmake;${CMAKE_BIN_DIR}/cmake;${CMAKE_BIN_DIR}/cpack;${CMAKE_BIN_DIR}/ctest")
|
||||
set(CPACK_SOURCE_STRIP_FILES "")
|
||||
set(CPACK_PACKAGE_EXECUTABLES "ccmake" "CMake")
|
||||
endif()
|
||||
|
||||
set(CPACK_WIX_UPGRADE_GUID "8ffd1d72-b7f1-11e2-8ee5-00238bca4991")
|
||||
|
||||
if(MSVC AND NOT "$ENV{WIX}" STREQUAL "")
|
||||
set(WIX_CUSTOM_ACTION_ENABLED TRUE)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(WIX_CUSTOM_ACTION_MULTI_CONFIG TRUE)
|
||||
else()
|
||||
set(WIX_CUSTOM_ACTION_MULTI_CONFIG FALSE)
|
||||
endif()
|
||||
else()
|
||||
set(WIX_CUSTOM_ACTION_ENABLED FALSE)
|
||||
endif()
|
||||
|
||||
# Set the options file that needs to be included inside CMakeCPackOptions.cmake
|
||||
set(QT_DIALOG_CPACK_OPTIONS_FILE ${CMake_BINARY_DIR}/Source/QtDialog/QtDialogCPack.cmake)
|
||||
configure_file("${CMake_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
|
||||
"${CMake_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
|
||||
set(CPACK_PROJECT_CONFIG_FILE "${CMake_BINARY_DIR}/CMakeCPackOptions.cmake")
|
||||
|
||||
# include CPack model once all variables are set
|
||||
include(CPack)
|
||||
_cmifwarg("Package <Script> template"
|
||||
FILEPATH SCRIPT_TEMPLATE "${CMake_SOURCE_DIR}/Source/QtIFW/installscript.qs.in")
|
||||
endif()
|
||||
_cmifwarg("Package <Script> generated"
|
||||
FILEPATH SCRIPT_GENERATED "${CMake_BINARY_DIR}/CMake.qs")
|
||||
|
||||
_cmifwarg("Package <Licenses> tag (pairs of <display_name> <file_path>)"
|
||||
STRING LICENSES "${${_cpifwrc}LICENSES_DEFAULT}")
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
|
||||
set(_CPACK_IFW_PACKAGE_ICON
|
||||
"set(CPACK_IFW_PACKAGE_ICON \"${CMake_SOURCE_DIR}/Source/QtDialog/CMakeSetup.ico\")")
|
||||
if(BUILD_QtDialog)
|
||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/bin/cmake-gui.exe\", \"@StartMenuDir@/CMake (cmake-gui).lnk\");\n")
|
||||
endif()
|
||||
if(SPHINX_HTML)
|
||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}/html/index.html\", \"@StartMenuDir@/CMake Documentation.lnk\");\n")
|
||||
endif()
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE)
|
||||
if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
|
||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}/developer-reference/html/index.html\", \"@StartMenuDir@/CMake Developer Reference.lnk\");\n")
|
||||
endif()
|
||||
endif()
|
||||
install(FILES "${CMake_SOURCE_DIR}/Source/QtIFW/cmake.org.html"
|
||||
DESTINATION "${CMAKE_DOC_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES Linux)
|
||||
set(CPACK_IFW_TARGET_DIRECTORY "@HomeDir@/${CMAKE_PROJECT_NAME}")
|
||||
set(CPACK_IFW_ADMIN_TARGET_DIRECTORY "@ApplicationsDir@/${CMAKE_PROJECT_NAME}")
|
||||
endif()
|
||||
|
||||
# Components scripts configuration
|
||||
if((EXISTS "${CMake_IFW_ROOT_COMPONENT_SCRIPT_TEMPLATE}")
|
||||
AND (NOT "${CMake_IFW_ROOT_COMPONENT_SCRIPT_GENERATED}" STREQUAL "")
|
||||
AND (NOT "${CMake_IFW_ROOT_COMPONENT_SCRIPT}"))
|
||||
cpack_ifw_configure_file("${CMake_IFW_ROOT_COMPONENT_SCRIPT_TEMPLATE}"
|
||||
"${CMake_IFW_ROOT_COMPONENT_SCRIPT_GENERATED}")
|
||||
_cmifwarg("Package <Script> tag"
|
||||
FILEPATH SCRIPT "${CMake_IFW_ROOT_COMPONENT_SCRIPT_GENERATED}")
|
||||
endif()
|
||||
foreach(_script
|
||||
CMake.Dialogs.QtGUI
|
||||
CMake.Documentation.SphinxHTML
|
||||
CMake.DeveloperReference.HTML)
|
||||
cpack_ifw_configure_file("${CMake_SOURCE_DIR}/Source/QtIFW/${_script}.qs.in"
|
||||
"${CMake_BINARY_DIR}/${_script}.qs")
|
||||
endforeach()
|
||||
|
||||
if(NOT DEFINED CPACK_PACKAGE_FILE_NAME)
|
||||
# if the CPACK_PACKAGE_FILE_NAME is not defined by the cache
|
||||
# default to source package - system, on cygwin system is not
|
||||
# needed
|
||||
if(CYGWIN)
|
||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}")
|
||||
else()
|
||||
set(CPACK_PACKAGE_FILE_NAME
|
||||
"${CPACK_SOURCE_PACKAGE_FILE_NAME}-${CPACK_SYSTEM_NAME}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_CONTACT "cmake@cmake.org")
|
||||
|
||||
if(UNIX)
|
||||
set(CPACK_STRIP_FILES "${CMAKE_BIN_DIR}/ccmake;${CMAKE_BIN_DIR}/cmake;${CMAKE_BIN_DIR}/cpack;${CMAKE_BIN_DIR}/ctest")
|
||||
set(CPACK_SOURCE_STRIP_FILES "")
|
||||
set(CPACK_PACKAGE_EXECUTABLES "ccmake" "CMake")
|
||||
endif()
|
||||
|
||||
set(CPACK_WIX_UPGRADE_GUID "8ffd1d72-b7f1-11e2-8ee5-00238bca4991")
|
||||
|
||||
if(MSVC AND NOT "$ENV{WIX}" STREQUAL "")
|
||||
set(WIX_CUSTOM_ACTION_ENABLED TRUE)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(WIX_CUSTOM_ACTION_MULTI_CONFIG TRUE)
|
||||
else()
|
||||
set(WIX_CUSTOM_ACTION_MULTI_CONFIG FALSE)
|
||||
endif()
|
||||
else()
|
||||
set(WIX_CUSTOM_ACTION_ENABLED FALSE)
|
||||
endif()
|
||||
|
||||
# Set the options file that needs to be included inside CMakeCPackOptions.cmake
|
||||
set(QT_DIALOG_CPACK_OPTIONS_FILE ${CMake_BINARY_DIR}/Source/QtDialog/QtDialogCPack.cmake)
|
||||
configure_file("${CMake_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
|
||||
"${CMake_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
|
||||
set(CPACK_PROJECT_CONFIG_FILE "${CMake_BINARY_DIR}/CMakeCPackOptions.cmake")
|
||||
|
||||
# include CPack model once all variables are set
|
||||
include(CPack)
|
||||
|
@ -47,7 +47,7 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
@_CPACK_IFW_COMPONENTS_CONFIGURATION@
|
||||
# Unspecified
|
||||
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNSPECIFIED_UNAME@_VERSION
|
||||
"@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
# Package configuration group
|
||||
set(CPACK_IFW_PACKAGE_GROUP CMake)
|
||||
@ -59,13 +59,7 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
"@CPACK_PACKAGE_NAME@")
|
||||
set(CPACK_COMPONENT_GROUP_CMAKE_DESCRIPTION
|
||||
"@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
|
||||
set(CPACK_IFW_COMPONENT_GROUP_CMAKE_VERSION
|
||||
"@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_GROUP_CMAKE_LICENSES
|
||||
"@CPACK_PACKAGE_NAME@ Copyright" "@CPACK_RESOURCE_FILE_LICENSE@"
|
||||
@_CPACK_IFW_ADDITIONAL_LICENSES@)
|
||||
set(CPACK_IFW_COMPONENT_GROUP_CMAKE_SCRIPT "@_CPACK_IFW_PACKAGE_SCRIPT@")
|
||||
set(CPACK_IFW_COMPONENT_GROUP_CMAKE_PRIORITY 100)
|
||||
@_CPACK_IFW_COMPONENT_GROUP_CMAKE@
|
||||
|
||||
# Tools
|
||||
set(CPACK_COMPONENT_GROUP_TOOLS_DISPLAY_NAME "Command-Line Tools")
|
||||
@ -73,7 +67,8 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
"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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_GROUP_TOOLS_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
set(CPACK_COMPONENT_CMAKE_DISPLAY_NAME "cmake")
|
||||
set(CPACK_COMPONENT_CMAKE_DESCRIPTION
|
||||
@ -82,7 +77,8 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CMAKE_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
set(CPACK_COMPONENT_CTEST_DISPLAY_NAME "ctest")
|
||||
set(CPACK_COMPONENT_CTEST_DESCRIPTION
|
||||
@ -91,7 +87,8 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CTEST_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
set(CPACK_COMPONENT_CPACK_DISPLAY_NAME "cpack")
|
||||
set(CPACK_COMPONENT_CPACK_DESCRIPTION
|
||||
@ -100,7 +97,8 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CPACK_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
set(CPACK_COMPONENT_CMCLDEPS_DISPLAY_NAME "cmcldeps")
|
||||
set(CPACK_COMPONENT_CMCLDEPS_DESCRIPTION
|
||||
@ -108,7 +106,8 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CMCLDEPS_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
set(CPACK_COMPONENT_CMAKEXBUILD_DISPLAY_NAME "cmakexbuild")
|
||||
set(CPACK_COMPONENT_CMAKEXBUILD_DESCRIPTION
|
||||
@ -117,7 +116,8 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
set(CPACK_COMPONENT_CMAKEXBUILD_GROUP Tools)
|
||||
set(CPACK_IFW_COMPONENT_CMAKEXBUILD_NAME "CMakeXBuild")
|
||||
set(CPACK_IFW_COMPONENT_CMAKEXBUILD_PRIORITY 85)
|
||||
set(CPACK_IFW_COMPONENT_CMAKEXBUILD_VERSION "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CMAKEXBUILD_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
# Dialogs
|
||||
set(CPACK_COMPONENT_GROUP_DIALOGS_DISPLAY_NAME "Interactive Dialogs")
|
||||
@ -125,20 +125,23 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
"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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
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_SOURCE_DIR@/Source/QtIFW/CMake.Dialogs.QtGUI.qs")
|
||||
set(CPACK_IFW_COMPONENT_CMAKE-GUI_VERSION "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
"@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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CCMAKE_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
# Documentation
|
||||
set(CPACK_COMPONENT_GROUP_DOCUMENTATION_DISPLAY_NAME "Documentation")
|
||||
@ -147,33 +150,36 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
set(CPACK_COMPONENT_GROUP_DOCUMENTATION_PARENT_GROUP CMake)
|
||||
set(CPACK_IFW_COMPONENT_GROUP_DOCUMENTATION_PRIORITY 60)
|
||||
set(CPACK_IFW_COMPONENT_GROUP_DOCUMENTATION_VERSION
|
||||
"@_CPACK_IFW_PACKAGE_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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
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
|
||||
"@_CPACK_IFW_PACKAGE_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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_SPHINX-QTHELP_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
# Developer Reference
|
||||
set(CPACK_COMPONENT_GROUP_DEVELOPERREFERENCE_DISPLAY_NAME "Developer Reference")
|
||||
@ -182,7 +188,7 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
set(CPACK_COMPONENT_GROUP_DEVELOPERREFERENCE_PARENT_GROUP CMake)
|
||||
set(CPACK_IFW_COMPONENT_GROUP_DEVELOPERREFERENCE_PRIORITY 50)
|
||||
set(CPACK_IFW_COMPONENT_GROUP_DEVELOPERREFERENCE_VERSION
|
||||
"@_CPACK_IFW_PACKAGE_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)
|
||||
@ -190,13 +196,15 @@ if(CPACK_GENERATOR MATCHES "IFW")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
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 "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||
set(CPACK_IFW_COMPONENT_CMAKE-DEVELOPER-REFERENCE-QTHELP_VERSION
|
||||
"@CMake_IFW_ROOT_COMPONENT_VERSION@")
|
||||
|
||||
endif()
|
||||
|
||||
|
157
CMakeLists.txt
157
CMakeLists.txt
@ -66,12 +66,8 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
||||
include(${CMake_SOURCE_DIR}/Source/Checks/cm_cxx_features.cmake)
|
||||
endif()
|
||||
|
||||
# option to set the internal encoding of CMake to UTF-8
|
||||
option(CMAKE_ENCODING_UTF8 "Use UTF-8 encoding internally." ON)
|
||||
mark_as_advanced(CMAKE_ENCODING_UTF8)
|
||||
if(CMAKE_ENCODING_UTF8)
|
||||
set(KWSYS_ENCODING_DEFAULT_CODEPAGE CP_UTF8)
|
||||
endif()
|
||||
# set the internal encoding of CMake to UTF-8
|
||||
set(KWSYS_ENCODING_DEFAULT_CODEPAGE CP_UTF8)
|
||||
|
||||
# option to use COMPONENT with install command
|
||||
option(CMake_INSTALL_COMPONENTS "Using components when installing" OFF)
|
||||
@ -108,7 +104,7 @@ macro(CMAKE_HANDLE_SYSTEM_LIBRARIES)
|
||||
|
||||
# Allow the user to enable/disable all system utility library options by
|
||||
# defining CMAKE_USE_SYSTEM_LIBRARIES or CMAKE_USE_SYSTEM_LIBRARY_${util}.
|
||||
set(UTILITIES BZIP2 CURL EXPAT FORM JSONCPP LIBARCHIVE LIBLZMA LIBUV ZLIB)
|
||||
set(UTILITIES BZIP2 CURL EXPAT FORM JSONCPP LIBARCHIVE LIBLZMA LIBRHASH LIBUV ZLIB)
|
||||
foreach(util ${UTILITIES})
|
||||
if(NOT DEFINED CMAKE_USE_SYSTEM_LIBRARY_${util}
|
||||
AND DEFINED CMAKE_USE_SYSTEM_LIBRARIES)
|
||||
@ -148,6 +144,7 @@ macro(CMAKE_HANDLE_SYSTEM_LIBRARIES)
|
||||
"${CMAKE_USE_SYSTEM_LIBRARY_LIBLZMA}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
|
||||
option(CMAKE_USE_SYSTEM_FORM "Use system-installed libform" "${CMAKE_USE_SYSTEM_LIBRARY_FORM}")
|
||||
option(CMAKE_USE_SYSTEM_JSONCPP "Use system-installed jsoncpp" "${CMAKE_USE_SYSTEM_LIBRARY_JSONCPP}")
|
||||
option(CMAKE_USE_SYSTEM_LIBRHASH "Use system-installed librhash" "${CMAKE_USE_SYSTEM_LIBRARY_LIBRHASH}")
|
||||
option(CMAKE_USE_SYSTEM_LIBUV "Use system-installed libuv" "${CMAKE_USE_SYSTEM_LIBRARY_LIBUV}")
|
||||
|
||||
# For now use system KWIML only if explicitly requested rather
|
||||
@ -260,6 +257,7 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||
set(KWSYS_USE_MD5 1)
|
||||
set(KWSYS_USE_Process 1)
|
||||
set(KWSYS_USE_CommandLineArguments 1)
|
||||
set(KWSYS_USE_ConsoleBuf 1)
|
||||
set(KWSYS_HEADER_ROOT ${CMake_BINARY_DIR}/Source)
|
||||
set(KWSYS_INSTALL_DOC_DIR "${CMAKE_DOC_DIR}")
|
||||
add_subdirectory(Source/kwsys)
|
||||
@ -301,6 +299,23 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||
add_subdirectory(Utilities/KWIML)
|
||||
endif()
|
||||
|
||||
if(CMAKE_USE_SYSTEM_LIBRHASH)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.0)
|
||||
find_package(LibRHash)
|
||||
else()
|
||||
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBRHASH requires CMake >= 3.0")
|
||||
endif()
|
||||
if(NOT LibRHash_FOUND)
|
||||
message(FATAL_ERROR
|
||||
"CMAKE_USE_SYSTEM_LIBRHASH is ON but LibRHash is not found!")
|
||||
endif()
|
||||
set(CMAKE_LIBRHASH_LIBRARIES LibRHash::LibRHash)
|
||||
else()
|
||||
set(CMAKE_LIBRHASH_LIBRARIES cmlibrhash)
|
||||
add_subdirectory(Utilities/cmlibrhash)
|
||||
CMAKE_SET_TARGET_FOLDER(cmlibrhash "Utilities/3rdParty")
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build zlib library for Curl, CMake, and CTest.
|
||||
set(CMAKE_ZLIB_HEADER "cm_zlib.h")
|
||||
@ -366,66 +381,9 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||
set(CMAKE_COMPRESS_LIBRARIES "cmcompress")
|
||||
add_subdirectory(Utilities/cmcompress)
|
||||
CMAKE_SET_TARGET_FOLDER(cmcompress "Utilities/3rdParty")
|
||||
if(CMAKE_USE_SYSTEM_BZIP2)
|
||||
find_package(BZip2)
|
||||
else()
|
||||
set(BZIP2_INCLUDE_DIR
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities/cmbzip2")
|
||||
set(BZIP2_LIBRARIES cmbzip2)
|
||||
add_subdirectory(Utilities/cmbzip2)
|
||||
CMAKE_SET_TARGET_FOLDER(cmbzip2 "Utilities/3rdParty")
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build or use system liblzma for libarchive.
|
||||
if(CMAKE_USE_SYSTEM_LIBLZMA)
|
||||
find_package(LibLZMA)
|
||||
if(NOT LIBLZMA_FOUND)
|
||||
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBLZMA is ON but LibLZMA is not found!")
|
||||
endif()
|
||||
set(LZMA_INCLUDE_DIR ${LIBLZMA_INCLUDE_DIRS})
|
||||
set(LZMA_LIBRARY ${LIBLZMA_LIBRARIES})
|
||||
else()
|
||||
add_subdirectory(Utilities/cmliblzma)
|
||||
CMAKE_SET_TARGET_FOLDER(cmliblzma "Utilities/3rdParty")
|
||||
set(LZMA_INCLUDE_DIR
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities/cmliblzma/liblzma/api")
|
||||
set(LZMA_LIBRARY cmliblzma)
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build or use system libarchive for CMake and CTest.
|
||||
if(CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
find_package(LibArchive 3.0.0)
|
||||
if(NOT LibArchive_FOUND)
|
||||
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found!")
|
||||
endif()
|
||||
set(CMAKE_TAR_INCLUDES ${LibArchive_INCLUDE_DIRS})
|
||||
set(CMAKE_TAR_LIBRARIES ${LibArchive_LIBRARIES})
|
||||
else()
|
||||
set(ZLIB_INCLUDE_DIR ${CMAKE_ZLIB_INCLUDES})
|
||||
set(ZLIB_LIBRARY ${CMAKE_ZLIB_LIBRARIES})
|
||||
add_definitions(-DLIBARCHIVE_STATIC)
|
||||
set(ENABLE_NETTLE OFF CACHE INTERNAL "Enable use of Nettle")
|
||||
set(ENABLE_OPENSSL ${CMAKE_USE_OPENSSL} CACHE INTERNAL "Enable use of OpenSSL")
|
||||
set(ENABLE_LZMA ON CACHE INTERNAL "Enable the use of the system found LZMA library if found")
|
||||
set(ENABLE_ZLIB ON CACHE INTERNAL "Enable the use of the system found ZLIB library if found")
|
||||
set(ENABLE_BZip2 ON CACHE INTERNAL "Enable the use of the system found BZip2 library if found")
|
||||
set(ENABLE_LIBXML2 OFF CACHE INTERNAL "Enable the use of the system found libxml2 library if found")
|
||||
set(ENABLE_EXPAT OFF CACHE INTERNAL "Enable the use of the system found EXPAT library if found")
|
||||
set(ENABLE_PCREPOSIX OFF CACHE INTERNAL "Enable the use of the system found PCREPOSIX library if found")
|
||||
set(ENABLE_LibGCC OFF CACHE INTERNAL "Enable the use of the system found LibGCC library if found")
|
||||
set(ENABLE_XATTR OFF CACHE INTERNAL "Enable extended attribute support")
|
||||
set(ENABLE_ACL OFF CACHE INTERNAL "Enable ACL support")
|
||||
set(ENABLE_ICONV OFF CACHE INTERNAL "Enable iconv support")
|
||||
set(ENABLE_CNG OFF CACHE INTERNAL "Enable the use of CNG(Crypto Next Generation)")
|
||||
add_subdirectory(Utilities/cmlibarchive)
|
||||
CMAKE_SET_TARGET_FOLDER(cmlibarchive "Utilities/3rdParty")
|
||||
set(CMAKE_TAR_LIBRARIES cmlibarchive ${BZIP2_LIBRARIES})
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build expat library for CMake and CTest.
|
||||
# Build expat library for CMake, CTest, and libarchive.
|
||||
if(CMAKE_USE_SYSTEM_EXPAT)
|
||||
find_package(EXPAT)
|
||||
if(NOT EXPAT_FOUND)
|
||||
@ -441,6 +399,72 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||
CMAKE_SET_TARGET_FOLDER(cmexpat "Utilities/3rdParty")
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build or use system libbz2 for libarchive.
|
||||
if(NOT CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
if(CMAKE_USE_SYSTEM_BZIP2)
|
||||
find_package(BZip2)
|
||||
else()
|
||||
set(BZIP2_INCLUDE_DIR
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities/cmbzip2")
|
||||
set(BZIP2_LIBRARIES cmbzip2)
|
||||
add_subdirectory(Utilities/cmbzip2)
|
||||
CMAKE_SET_TARGET_FOLDER(cmbzip2 "Utilities/3rdParty")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build or use system liblzma for libarchive.
|
||||
if(NOT CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
if(CMAKE_USE_SYSTEM_LIBLZMA)
|
||||
find_package(LibLZMA)
|
||||
if(NOT LIBLZMA_FOUND)
|
||||
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBLZMA is ON but LibLZMA is not found!")
|
||||
endif()
|
||||
set(LZMA_INCLUDE_DIR ${LIBLZMA_INCLUDE_DIRS})
|
||||
set(LZMA_LIBRARY ${LIBLZMA_LIBRARIES})
|
||||
else()
|
||||
add_subdirectory(Utilities/cmliblzma)
|
||||
CMAKE_SET_TARGET_FOLDER(cmliblzma "Utilities/3rdParty")
|
||||
set(LZMA_INCLUDE_DIR
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities/cmliblzma/liblzma/api")
|
||||
set(LZMA_LIBRARY cmliblzma)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build or use system libarchive for CMake and CTest.
|
||||
if(CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
find_package(LibArchive 3.0.0)
|
||||
if(NOT LibArchive_FOUND)
|
||||
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found!")
|
||||
endif()
|
||||
set(CMAKE_TAR_INCLUDES ${LibArchive_INCLUDE_DIRS})
|
||||
set(CMAKE_TAR_LIBRARIES ${LibArchive_LIBRARIES})
|
||||
else()
|
||||
set(EXPAT_INCLUDE_DIR ${CMAKE_EXPAT_INCLUDES})
|
||||
set(EXPAT_LIBRARY ${CMAKE_EXPAT_LIBRARIES})
|
||||
set(ZLIB_INCLUDE_DIR ${CMAKE_ZLIB_INCLUDES})
|
||||
set(ZLIB_LIBRARY ${CMAKE_ZLIB_LIBRARIES})
|
||||
add_definitions(-DLIBARCHIVE_STATIC)
|
||||
set(ENABLE_NETTLE OFF CACHE INTERNAL "Enable use of Nettle")
|
||||
set(ENABLE_OPENSSL ${CMAKE_USE_OPENSSL} CACHE INTERNAL "Enable use of OpenSSL")
|
||||
set(ENABLE_LZMA ON CACHE INTERNAL "Enable the use of the system found LZMA library if found")
|
||||
set(ENABLE_ZLIB ON CACHE INTERNAL "Enable the use of the system found ZLIB library if found")
|
||||
set(ENABLE_BZip2 ON CACHE INTERNAL "Enable the use of the system found BZip2 library if found")
|
||||
set(ENABLE_LIBXML2 OFF CACHE INTERNAL "Enable the use of the system found libxml2 library if found")
|
||||
set(ENABLE_EXPAT ON CACHE INTERNAL "Enable the use of the system found EXPAT library if found")
|
||||
set(ENABLE_PCREPOSIX OFF CACHE INTERNAL "Enable the use of the system found PCREPOSIX library if found")
|
||||
set(ENABLE_LibGCC OFF CACHE INTERNAL "Enable the use of the system found LibGCC library if found")
|
||||
set(ENABLE_XATTR OFF CACHE INTERNAL "Enable extended attribute support")
|
||||
set(ENABLE_ACL OFF CACHE INTERNAL "Enable ACL support")
|
||||
set(ENABLE_ICONV OFF CACHE INTERNAL "Enable iconv support")
|
||||
set(ENABLE_CNG OFF CACHE INTERNAL "Enable the use of CNG(Crypto Next Generation)")
|
||||
add_subdirectory(Utilities/cmlibarchive)
|
||||
CMAKE_SET_TARGET_FOLDER(cmlibarchive "Utilities/3rdParty")
|
||||
set(CMAKE_TAR_LIBRARIES cmlibarchive ${BZIP2_LIBRARIES})
|
||||
endif()
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Build jsoncpp library.
|
||||
if(CMAKE_USE_SYSTEM_JSONCPP)
|
||||
@ -486,6 +510,9 @@ int main(void) { return 0; }
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
|
||||
# Disable until it can be ported.
|
||||
set(CMAKE_USE_LIBUV 0)
|
||||
elseif(CMAKE_SYSTEM STREQUAL "SunOS-5.10")
|
||||
# Disable until it can be ported.
|
||||
set(CMAKE_USE_LIBUV 0)
|
||||
endif()
|
||||
endif()
|
||||
if(CMAKE_USE_LIBUV)
|
||||
|
@ -17,7 +17,6 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
|
||||
"Utilities.cmbzip2."
|
||||
"Source.CTest.Curl"
|
||||
"Source.CursesDialog.form"
|
||||
"Source.cm_sha2.*warning.*cast increases required alignment of target type"
|
||||
"Utilities.cmcurl"
|
||||
"Utilities.cmexpat."
|
||||
"Utilities.cmlibarchive"
|
||||
@ -84,7 +83,10 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
|
||||
"warning: Value stored to 'yytoken' is never read"
|
||||
"index_encoder.c.241.2. warning: Value stored to .out_start. is never read"
|
||||
"index.c.*warning: Access to field.*results in a dereference of a null pointer.*loaded from variable.*"
|
||||
"cm_sha2.*warning: Value stored to.*is never read"
|
||||
"cmCommandArgumentLexer.cxx:[0-9]+:[0-9]+: warning: Call to 'realloc' has an allocation size of 0 bytes"
|
||||
"cmDependsJavaLexer.cxx:[0-9]+:[0-9]+: warning: Call to 'realloc' has an allocation size of 0 bytes"
|
||||
"cmExprLexer.cxx:[0-9]+:[0-9]+: warning: Call to 'realloc' has an allocation size of 0 bytes"
|
||||
"cmListFileLexer.c:[0-9]+:[0-9]+: warning: Call to 'realloc' has an allocation size of 0 bytes"
|
||||
"cmFortranLexer.cxx:[0-9]+:[0-9]+: warning: Call to 'realloc' has an allocation size of 0 bytes"
|
||||
"testProcess.*warning: Dereference of null pointer .loaded from variable .invalidAddress.."
|
||||
"liblzma/simple/x86.c:[0-9]+:[0-9]+: warning: The result of the '<<' expression is undefined"
|
||||
|
@ -1,5 +1,5 @@
|
||||
CMake - Cross Platform Makefile Generator
|
||||
Copyright 2000-2016 Kitware, Inc. and Contributors
|
||||
Copyright 2000-2017 Kitware, Inc. and Contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -37,6 +37,7 @@ The following individuals and institutions are among the Contributors:
|
||||
* Aleksey Avdeev <solo@altlinux.ru>
|
||||
* Alexander Neundorf <neundorf@kde.org>
|
||||
* Alexander Smorkalov <alexander.smorkalov@itseez.com>
|
||||
* Alexey Sokolov <sokolov@google.com>
|
||||
* Alex Turbov <i.zaufi@gmail.com>
|
||||
* Andreas Pakulat <apaku@gmx.de>
|
||||
* Andreas Schneider <asn@cryptomilk.org>
|
||||
@ -54,6 +55,7 @@ The following individuals and institutions are among the Contributors:
|
||||
* Eran Ifrah <eran.ifrah@gmail.com>
|
||||
* Esben Mose Hansen, Ange Optimization ApS
|
||||
* Geoffrey Viola <geoffrey.viola@asirobots.com>
|
||||
* Google Inc
|
||||
* Gregor Jasny
|
||||
* Helio Chissini de Castro <helio@kde.org>
|
||||
* Ilya Lavrenov <ilya.lavrenov@itseez.com>
|
||||
|
@ -21,7 +21,8 @@ The first signature is for adding a custom command to produce an output::
|
||||
[WORKING_DIRECTORY dir]
|
||||
[COMMENT comment]
|
||||
[DEPFILE depfile]
|
||||
[VERBATIM] [APPEND] [USES_TERMINAL])
|
||||
[VERBATIM] [APPEND] [USES_TERMINAL]
|
||||
[COMMAND_EXPAND_LISTS])
|
||||
|
||||
This defines a command to generate specified ``OUTPUT`` file(s).
|
||||
A target created in the same directory (``CMakeLists.txt`` file)
|
||||
@ -122,6 +123,14 @@ The options are:
|
||||
Arguments to ``DEPENDS`` may use
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
``COMMAND_EXPAND_LISTS``
|
||||
Lists in ``COMMAND`` arguments will be expanded, including those
|
||||
created with
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`,
|
||||
allowing ``COMMAND`` arguments such as
|
||||
``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
|
||||
to be properly expanded.
|
||||
|
||||
``IMPLICIT_DEPENDS``
|
||||
Request scanning of implicit dependencies of an input file.
|
||||
The language given specifies the programming language whose
|
||||
|
@ -12,6 +12,7 @@ Add a target with no output so it will always be built.
|
||||
[WORKING_DIRECTORY dir]
|
||||
[COMMENT comment]
|
||||
[VERBATIM] [USES_TERMINAL]
|
||||
[COMMAND_EXPAND_LISTS]
|
||||
[SOURCES src1 [src2...]])
|
||||
|
||||
Adds a target with the given name that executes the given commands.
|
||||
@ -88,6 +89,14 @@ The options are:
|
||||
Use the :command:`add_dependencies` command to add dependencies
|
||||
on other targets.
|
||||
|
||||
``COMMAND_EXPAND_LISTS``
|
||||
Lists in ``COMMAND`` arguments will be expanded, including those
|
||||
created with
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`,
|
||||
allowing ``COMMAND`` arguments such as
|
||||
``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
|
||||
to be properly expanded.
|
||||
|
||||
``SOURCES``
|
||||
Specify additional source files to be included in the custom target.
|
||||
Specified source files will be added to IDE project files for
|
||||
|
@ -33,7 +33,7 @@ type is ``STATIC`` or ``SHARED`` based on whether the current value of the
|
||||
variable :variable:`BUILD_SHARED_LIBS` is ``ON``. For ``SHARED`` and
|
||||
``MODULE`` libraries the :prop_tgt:`POSITION_INDEPENDENT_CODE` target
|
||||
property is set to ``ON`` automatically.
|
||||
A ``SHARED`` library may be marked with the :prop_tgt:`FRAMEWORK`
|
||||
A ``SHARED`` or ``STATIC`` library may be marked with the :prop_tgt:`FRAMEWORK`
|
||||
target property to create an OS X Framework.
|
||||
|
||||
If a library does not export any symbols, it must not be declared as a
|
||||
|
@ -18,6 +18,7 @@ Perform the :ref:`CTest MemCheck Step` as a :ref:`Dashboard Client`.
|
||||
[SCHEDULE_RANDOM <ON|OFF>]
|
||||
[STOP_TIME <time-of-day>]
|
||||
[RETURN_VALUE <result-var>]
|
||||
[DEFECT_COUNT <defect-count-var>]
|
||||
[QUIET]
|
||||
)
|
||||
|
||||
@ -26,4 +27,9 @@ Run tests with a dynamic analysis tool and store results in
|
||||
``MemCheck.xml`` for submission with the :command:`ctest_submit`
|
||||
command.
|
||||
|
||||
The options are the same as those for the :command:`ctest_test` command.
|
||||
Most options are the same as those for the :command:`ctest_test` command.
|
||||
|
||||
The options unique to this command are:
|
||||
|
||||
``DEFECT_COUNT <defect-count-var>``
|
||||
Store in the ``<defect-count-var>`` the number of defects found.
|
||||
|
@ -56,10 +56,16 @@ Submit to CDash Upload API
|
||||
|
||||
::
|
||||
|
||||
ctest_submit(CDASH_UPLOAD <file> [CDASH_UPLOAD_TYPE <type>])
|
||||
ctest_submit(CDASH_UPLOAD <file> [CDASH_UPLOAD_TYPE <type>]
|
||||
[RETRY_COUNT <count>]
|
||||
[RETRY_DELAY <delay>]
|
||||
[QUIET])
|
||||
|
||||
This second signature is used to upload files to CDash via the CDash
|
||||
file upload API. The api first sends a request to upload to CDash along
|
||||
with a content hash of the file. If CDash does not already have the file,
|
||||
then it is uploaded. Along with the file, a CDash type string is specified
|
||||
to tell CDash which handler to use to process the data.
|
||||
|
||||
This signature accepts the ``RETRY_COUNT``, ``RETRY_DELAY``, and ``QUIET``
|
||||
options as described above.
|
||||
|
@ -18,9 +18,10 @@ Execute one or more child processes.
|
||||
[OUTPUT_QUIET]
|
||||
[ERROR_QUIET]
|
||||
[OUTPUT_STRIP_TRAILING_WHITESPACE]
|
||||
[ERROR_STRIP_TRAILING_WHITESPACE])
|
||||
[ERROR_STRIP_TRAILING_WHITESPACE]
|
||||
[ENCODING <name>])
|
||||
|
||||
Runs the given sequence of one or more commands with the standard
|
||||
Runs the given sequence of one or more commands in parallel with the standard
|
||||
output of each process piped to the standard input of the next.
|
||||
A single standard error pipe is used for all processes.
|
||||
|
||||
@ -36,6 +37,9 @@ Options:
|
||||
(Use the ``INPUT_*``, ``OUTPUT_*``, and ``ERROR_*`` options to
|
||||
redirect stdin, stdout, and stderr.)
|
||||
|
||||
If a sequential execution of multiple commands is required, use multiple
|
||||
:command:`execute_process` calls with a single ``COMMAND`` argument.
|
||||
|
||||
``WORKING_DIRECTORY``
|
||||
The named directory will be set as the current working directory of
|
||||
the child processes.
|
||||
@ -63,6 +67,25 @@ Options:
|
||||
``OUTPUT_QUIET``, ``ERROR_QUIET``
|
||||
The standard output or standard error results will be quietly ignored.
|
||||
|
||||
``ENCODING <name>``
|
||||
On Windows, the encoding that is used to decode output from the process.
|
||||
Ignored on other platforms.
|
||||
Valid encoding names are:
|
||||
|
||||
``NONE``
|
||||
Perform no decoding. This assumes that the process output is encoded
|
||||
in the same way as CMake's internal encoding (UTF-8).
|
||||
This is the default.
|
||||
``AUTO``
|
||||
Use the current active console's codepage or if that isn't
|
||||
available then use ANSI.
|
||||
``ANSI``
|
||||
Use the ANSI codepage.
|
||||
``OEM``
|
||||
Use the original equipment manufacturer (OEM) code page.
|
||||
``UTF8``
|
||||
Use the UTF-8 codepage.
|
||||
|
||||
If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the
|
||||
same pipe the precedence is not specified.
|
||||
If no ``OUTPUT_*`` or ``ERROR_*`` options are given the output will
|
||||
|
@ -83,10 +83,12 @@ from the input file.
|
||||
|
||||
::
|
||||
|
||||
file(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> <filename> <variable>)
|
||||
file(<HASH> <filename> <variable>)
|
||||
|
||||
Compute a cryptographic hash of the content of ``<filename>`` and
|
||||
store it in a ``<variable>``.
|
||||
store it in a ``<variable>``. The supported ``<HASH>`` algorithm names
|
||||
are those listed by the :ref:`string(\<HASH\>) <Supported Hash Algorithms>`
|
||||
command.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -153,7 +155,8 @@ Move a file or directory within a filesystem from ``<oldname>`` to
|
||||
file(REMOVE_RECURSE [<files>...])
|
||||
|
||||
Remove the given files. The ``REMOVE_RECURSE`` mode will remove the given
|
||||
files and directories, also non-empty directories
|
||||
files and directories, also non-empty directories. No error is emitted if a
|
||||
given file does not exist.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -233,8 +236,8 @@ Additional options to ``DOWNLOAD`` are:
|
||||
``EXPECTED_HASH ALGO=<value>``
|
||||
|
||||
Verify that the downloaded content hash matches the expected value, where
|
||||
``ALGO`` is one of ``MD5``, ``SHA1``, ``SHA224``, ``SHA256``, ``SHA384``, or
|
||||
``SHA512``. If it does not match, the operation fails with an error.
|
||||
``ALGO`` is one of the algorithms supported by ``file(<HASH>)``.
|
||||
If it does not match, the operation fails with an error.
|
||||
|
||||
``EXPECTED_MD5 <value>``
|
||||
Historical short-hand for ``EXPECTED_HASH MD5=<value>``.
|
||||
@ -301,6 +304,11 @@ Exactly one ``CONTENT`` or ``INPUT`` option must be given. A specific
|
||||
Generated files are modified on subsequent cmake runs only if their content
|
||||
is changed.
|
||||
|
||||
Note also that ``file(GENERATE)`` does not create the output file until the
|
||||
generation phase. The output file will not yet have been written when the
|
||||
``file(GENERATE)`` command returns, it is written only after processing all
|
||||
of a project's ``CMakeLists.txt`` files.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
::
|
||||
|
@ -9,17 +9,17 @@ Conditionally execute a group of commands.
|
||||
# then section.
|
||||
COMMAND1(ARGS ...)
|
||||
COMMAND2(ARGS ...)
|
||||
...
|
||||
#...
|
||||
elseif(expression2)
|
||||
# elseif section.
|
||||
COMMAND1(ARGS ...)
|
||||
COMMAND2(ARGS ...)
|
||||
...
|
||||
#...
|
||||
else(expression)
|
||||
# else section.
|
||||
COMMAND1(ARGS ...)
|
||||
COMMAND2(ARGS ...)
|
||||
...
|
||||
#...
|
||||
endif(expression)
|
||||
|
||||
Evaluates the given expression. If the result is true, the commands
|
||||
|
@ -90,8 +90,10 @@ project. There are five kinds of target files that may be installed:
|
||||
``ARCHIVE``, ``LIBRARY``, ``RUNTIME``, ``FRAMEWORK``, and ``BUNDLE``.
|
||||
Executables are treated as ``RUNTIME`` targets, except that those
|
||||
marked with the ``MACOSX_BUNDLE`` property are treated as ``BUNDLE``
|
||||
targets on OS X. Static libraries are always treated as ``ARCHIVE``
|
||||
targets. Module libraries are always treated as ``LIBRARY`` targets.
|
||||
targets on OS X. Static libraries are treated as ``ARCHIVE`` targets,
|
||||
except that those marked with the ``FRAMEWORK`` property are treated
|
||||
as ``FRAMEWORK`` targets on OS X.
|
||||
Module libraries are always treated as ``LIBRARY`` targets.
|
||||
For non-DLL platforms shared libraries are treated as ``LIBRARY``
|
||||
targets, except that those marked with the ``FRAMEWORK`` property are
|
||||
treated as ``FRAMEWORK`` targets on OS X. For DLL platforms the DLL
|
||||
|
@ -2,15 +2,27 @@ source_group
|
||||
------------
|
||||
|
||||
Define a grouping for source files in IDE project generation.
|
||||
There are two different signatures to create source groups.
|
||||
|
||||
.. code-block:: cmake
|
||||
::
|
||||
|
||||
source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
|
||||
source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
|
||||
|
||||
Defines a group into which sources will be placed in project files.
|
||||
This is intended to set up file tabs in Visual Studio.
|
||||
The options are:
|
||||
|
||||
``TREE``
|
||||
CMake will automatically detect, from ``<src>`` files paths, source groups
|
||||
it needs to create, to keep structure of source groups analogically to the
|
||||
actual files and directories structure in the project. Paths of ``<src>``
|
||||
files will be cut to be relative to ``<root>``.
|
||||
|
||||
``PREFIX``
|
||||
Source group and files located directly in ``<root>`` path, will be placed
|
||||
in ``<prefix>`` source groups.
|
||||
|
||||
``FILES``
|
||||
Any source file specified explicitly will be placed in group
|
||||
``<name>``. Relative paths are interpreted with respect to the
|
||||
@ -25,11 +37,13 @@ explicitly lists the file with ``FILES`` will be favored, if any.
|
||||
If no group explicitly lists the file, the *last* group whose
|
||||
regular expression matches the file will be favored.
|
||||
|
||||
The ``<name>`` of the group may contain backslashes to specify subgroups:
|
||||
The ``<name>`` of the group and ``<prefix>`` argument may contain backslashes
|
||||
to specify subgroups:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
source_group(outer\\inner ...)
|
||||
source_group(TREE <root> PREFIX sources\\inc ...)
|
||||
|
||||
For backwards compatibility, the short-hand signature
|
||||
|
||||
|
@ -206,15 +206,38 @@ Comparison
|
||||
|
||||
Compare the strings and store true or false in the output variable.
|
||||
|
||||
.. _`Supported Hash Algorithms`:
|
||||
|
||||
Hashing
|
||||
^^^^^^^
|
||||
|
||||
::
|
||||
|
||||
string(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512>
|
||||
<output variable> <input>)
|
||||
string(<HASH> <output variable> <input>)
|
||||
|
||||
Compute a cryptographic hash of the input string.
|
||||
The supported ``<HASH>`` algorithm names are:
|
||||
|
||||
``MD5``
|
||||
Message-Digest Algorithm 5, RFC 1321.
|
||||
``SHA1``
|
||||
US Secure Hash Algorithm 1, RFC 3174.
|
||||
``SHA224``
|
||||
US Secure Hash Algorithms, RFC 4634.
|
||||
``SHA256``
|
||||
US Secure Hash Algorithms, RFC 4634.
|
||||
``SHA384``
|
||||
US Secure Hash Algorithms, RFC 4634.
|
||||
``SHA512``
|
||||
US Secure Hash Algorithms, RFC 4634.
|
||||
``SHA3_224``
|
||||
Keccak SHA-3.
|
||||
``SHA3_256``
|
||||
Keccak SHA-3.
|
||||
``SHA3_384``
|
||||
Keccak SHA-3.
|
||||
``SHA3_512``
|
||||
Keccak SHA-3.
|
||||
|
||||
Generation
|
||||
^^^^^^^^^^
|
||||
@ -273,6 +296,7 @@ specifiers:
|
||||
|
||||
::
|
||||
|
||||
%% A literal percent sign (%).
|
||||
%d The day of the current month (01-31).
|
||||
%H The hour on a 24-hour clock (00-23).
|
||||
%I The hour on a 12-hour clock (01-12).
|
||||
@ -306,6 +330,12 @@ If no explicit ``<format string>`` is given it will default to:
|
||||
|
||||
Write a string which can be used as an identifier in C.
|
||||
|
||||
.. note::
|
||||
|
||||
If the ``SOURCE_DATE_EPOCH`` environment variable is set,
|
||||
its value will be used instead of the current time.
|
||||
See https://reproducible-builds.org/specs/source-date-epoch/ for details.
|
||||
|
||||
UUID
|
||||
""""
|
||||
|
||||
|
@ -53,6 +53,11 @@ Each ``<item>`` may be:
|
||||
:ref:`usage requirement <Target Usage Requirements>`. This has the same
|
||||
effect as passing the framework directory as an include directory.
|
||||
|
||||
On :ref:`Visual Studio Generators` for VS 2010 and above, library files
|
||||
ending in ``.targets`` will be treated as MSBuild targets files and
|
||||
imported into generated project files. This is not supported by other
|
||||
generators.
|
||||
|
||||
* **A plain library name**: The generated link line will ask the linker
|
||||
to search for the library (e.g. ``foo`` becomes ``-lfoo`` or ``foo.lib``).
|
||||
|
||||
|
@ -35,7 +35,11 @@ Try Compiling Source Files
|
||||
[COMPILE_DEFINITIONS <defs>...]
|
||||
[LINK_LIBRARIES <libs>...]
|
||||
[OUTPUT_VARIABLE <var>]
|
||||
[COPY_FILE <fileName> [COPY_FILE_ERROR <var>]])
|
||||
[COPY_FILE <fileName> [COPY_FILE_ERROR <var>]]
|
||||
[<LANG>_STANDARD <std>]
|
||||
[<LANG>_STANDARD_REQUIRED <bool>]
|
||||
[<LANG>_EXTENSIONS <bool>]
|
||||
)
|
||||
|
||||
Try building an executable from one or more source files. The success or
|
||||
failure of the ``try_compile``, i.e. ``TRUE`` or ``FALSE`` respectively, is
|
||||
@ -82,6 +86,19 @@ The options are:
|
||||
``OUTPUT_VARIABLE <var>``
|
||||
Store the output from the build process the given variable.
|
||||
|
||||
``<LANG>_STANDARD <std>``
|
||||
Specify the :prop_tgt:`C_STANDARD`, :prop_tgt:`CXX_STANDARD`,
|
||||
or :prop_tgt:`CUDA_STANDARD` target property of the generated project.
|
||||
|
||||
``<LANG>_STANDARD_REQUIRED <bool>``
|
||||
Specify the :prop_tgt:`C_STANDARD_REQUIRED`,
|
||||
:prop_tgt:`CXX_STANDARD_REQUIRED`, or :prop_tgt:`CUDA_STANDARD_REQUIRED`
|
||||
target property of the generated project.
|
||||
|
||||
``<LANG>_EXTENSIONS <bool>``
|
||||
Specify the :prop_tgt:`C_EXTENSIONS`, :prop_tgt:`CXX_EXTENSIONS`,
|
||||
or :prop_tgt:`CUDA_EXTENSIONS` target property of the generated project.
|
||||
|
||||
In this version all files in ``<bindir>/CMakeFiles/CMakeTmp`` will be
|
||||
cleaned automatically. For debugging, ``--debug-trycompile`` can be
|
||||
passed to ``cmake`` to avoid this clean. However, multiple sequential
|
||||
@ -119,3 +136,20 @@ the type of target used for the source file signature.
|
||||
Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify
|
||||
variables that must be propagated into the test project. This variable is
|
||||
meant for use only in toolchain files.
|
||||
|
||||
If :policy:`CMP0067` is set to ``NEW``, or any of the ``<LANG>_STANDARD``,
|
||||
``<LANG>_STANDARD_REQUIRED``, or ``<LANG>_EXTENSIONS`` options are used,
|
||||
then the language standard variables are honored:
|
||||
|
||||
* :variable:`CMAKE_C_STANDARD`
|
||||
* :variable:`CMAKE_C_STANDARD_REQUIRED`
|
||||
* :variable:`CMAKE_C_EXTENSIONS`
|
||||
* :variable:`CMAKE_CXX_STANDARD`
|
||||
* :variable:`CMAKE_CXX_STANDARD_REQUIRED`
|
||||
* :variable:`CMAKE_CXX_EXTENSIONS`
|
||||
* :variable:`CMAKE_CUDA_STANDARD`
|
||||
* :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
|
||||
* :variable:`CMAKE_CUDA_EXTENSIONS`
|
||||
|
||||
Their values are used to set the corresponding target properties in
|
||||
the generated project (unless overridden by an explicit option).
|
||||
|
@ -18,6 +18,9 @@ This "extra" generator may be specified as:
|
||||
``CodeBlocks - NMake Makefiles``
|
||||
Generate with :generator:`NMake Makefiles`.
|
||||
|
||||
``CodeBlocks - NMake Makefiles JOM``
|
||||
Generate with :generator:`NMake Makefiles JOM`.
|
||||
|
||||
``CodeBlocks - Ninja``
|
||||
Generate with :generator:`Ninja`.
|
||||
|
||||
|
10
Help/generator/VS_TOOLSET_HOST_ARCH.txt
Normal file
10
Help/generator/VS_TOOLSET_HOST_ARCH.txt
Normal file
@ -0,0 +1,10 @@
|
||||
For each toolset that comes with this version of Visual Studio, there are
|
||||
variants that are themselves compiled for 32-bit (x86) and 64-bit (x64) hosts
|
||||
(independent of the architecture they target). By default Visual Studio
|
||||
chooses the 32-bit variant even on a 64-bit host. One may request use of the
|
||||
64-bit host tools by adding ``host=x64`` to the toolset specification:
|
||||
|
||||
``host=x64``
|
||||
Select the 64-bit variant of the default toolset.
|
||||
``<toolset>,host=x64``
|
||||
Select the 64-bit variant of the ``<toolset>`` toolset.
|
@ -17,3 +17,10 @@ a target platform name optionally at the end of this generator name:
|
||||
|
||||
For compatibility with CMake versions prior to 3.0, one may specify this
|
||||
generator using the name ``Visual Studio 10`` without the year component.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``v100`` toolset that comes with Visual Studio 10 2010 is selected by
|
||||
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
@ -20,3 +20,10 @@ a target platform name optionally at the end of this generator name:
|
||||
|
||||
For compatibility with CMake versions prior to 3.0, one may specify this
|
||||
generator using the name "Visual Studio 11" without the year component.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``v110`` toolset that comes with Visual Studio 11 2012 is selected by
|
||||
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
@ -17,3 +17,12 @@ a target platform name optionally at the end of this generator name:
|
||||
|
||||
For compatibility with CMake versions prior to 3.0, one may specify this
|
||||
generator using the name "Visual Studio 12" without the year component.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``v120`` toolset that comes with Visual Studio 12 2013 is selected by
|
||||
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
||||
.. include:: VS_TOOLSET_HOST_ARCH.txt
|
||||
|
@ -14,3 +14,12 @@ a target platform name optionally at the end of this generator name:
|
||||
|
||||
``Visual Studio 14 2015 ARM``
|
||||
Specify target platform ``ARM``.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``v140`` toolset that comes with Visual Studio 14 2015 is selected by
|
||||
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
||||
.. include:: VS_TOOLSET_HOST_ARCH.txt
|
||||
|
@ -14,3 +14,12 @@ a target platform name optionally at the end of this generator name:
|
||||
|
||||
``Visual Studio 15 2017 ARM``
|
||||
Specify target platform ``ARM``.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``v141`` toolset that comes with Visual Studio 15 2017 is selected by
|
||||
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
||||
.. include:: VS_TOOLSET_HOST_ARCH.txt
|
||||
|
@ -2,3 +2,10 @@ Xcode
|
||||
-----
|
||||
|
||||
Generate Xcode project files.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
By default Xcode is allowed to select its own default toolchain.
|
||||
The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
@ -52,13 +52,12 @@
|
||||
Specify toolset name if supported by generator.
|
||||
|
||||
Some CMake generators support a toolset name to be given to the
|
||||
native build system to choose a compiler. This is supported only on
|
||||
specific generators:
|
||||
native build system to choose a compiler.
|
||||
See the :variable:`CMAKE_GENERATOR_TOOLSET` variable.
|
||||
This is supported only on specific generators:
|
||||
|
||||
::
|
||||
|
||||
Visual Studio >= 10
|
||||
Xcode >= 3.0
|
||||
* :ref:`Visual Studio Generators` for VS 2010 and above
|
||||
* The :generator:`Xcode` generator for Xcode 3.0 and above
|
||||
|
||||
See native build system documentation for allowed toolset names.
|
||||
|
||||
|
@ -964,6 +964,8 @@ are:
|
||||
* ``EXPORT_NAME``
|
||||
* ``IMPORTED``
|
||||
* ``NAME``
|
||||
* ``NO_SYSTEM_FROM_IMPORTED``
|
||||
* Properties matching ``IMPORTED_LIBNAME_*``
|
||||
* Properties matching ``MAP_IMPORTED_CONFIG_*``
|
||||
|
||||
``INTERFACE`` libraries may be installed and exported. Any content they refer
|
||||
|
@ -84,6 +84,33 @@ Feature requirements are evaluated transitively by consuming the link
|
||||
implementation. See :manual:`cmake-buildsystem(7)` for more on
|
||||
transitive behavior of build properties and usage requirements.
|
||||
|
||||
Requiring Language Standards
|
||||
----------------------------
|
||||
|
||||
In projects that use a large number of commonly available features from
|
||||
a particular language standard (e.g. C++ 11) one may specify a
|
||||
meta-feature (e.g. ``cxx_std_11``) that requires use of a compiler mode
|
||||
aware of that standard. This is simpler than specifying all the
|
||||
features individually, but does not guarantee the existence of any
|
||||
particular feature. Diagnosis of use of unsupported features will be
|
||||
delayed until compile time.
|
||||
|
||||
For example, if C++ 11 features are used extensively in a project's
|
||||
header files, then clients must use a compiler mode aware of C++ 11
|
||||
or above. This can be requested with the code:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
target_compile_features(mylib PUBLIC cxx_std_11)
|
||||
|
||||
In this example, CMake will ensure the compiler is invoked in a mode
|
||||
that is aware of C++ 11 (or above), adding flags such as
|
||||
``-std=gnu++11`` if necessary. This applies to sources within ``mylib``
|
||||
as well as any dependents (that may include headers from ``mylib``).
|
||||
|
||||
Availability of Compiler Extensions
|
||||
-----------------------------------
|
||||
|
||||
Because the :prop_tgt:`CXX_EXTENSIONS` target property is ``ON`` by default,
|
||||
CMake uses extended variants of language dialects by default, such as
|
||||
``-std=gnu++11`` instead of ``-std=c++11``. That target property may be
|
||||
@ -299,7 +326,7 @@ the feature-appropriate include directory
|
||||
Supported Compilers
|
||||
===================
|
||||
|
||||
CMake is currently aware of the :prop_tgt:`language standards <CXX_STANDARD>`
|
||||
CMake is currently aware of the :prop_tgt:`C++ standards <CXX_STANDARD>`
|
||||
and :prop_gbl:`compile features <CMAKE_CXX_KNOWN_FEATURES>` available from
|
||||
the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
|
||||
versions specified for each:
|
||||
@ -309,4 +336,18 @@ versions specified for each:
|
||||
* ``GNU``: GNU compiler versions 4.4 through 5.0.
|
||||
* ``MSVC``: Microsoft Visual Studio versions 2010 through 2015.
|
||||
* ``SunPro``: Oracle SolarisStudio version 12.4.
|
||||
* ``Intel``: Intel compiler versions 12.1 through 16.0 on UNIX platforms.
|
||||
* ``Intel``: Intel compiler versions 12.1 through 17.0.
|
||||
|
||||
CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>`
|
||||
and :prop_gbl:`compile features <CMAKE_C_KNOWN_FEATURES>` available from
|
||||
the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
|
||||
versions specified for each:
|
||||
|
||||
* all compilers and versions listed above for C++
|
||||
* ``GNU``: GNU compiler versions 3.4 through 5.0.
|
||||
|
||||
CMake is currently aware of the :prop_tgt:`CUDA standards <CUDA_STANDARD>`
|
||||
from the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
|
||||
versions specified for each:
|
||||
|
||||
* ``NVIDIA``: NVIDIA nvcc compiler 7.5 though 8.0.
|
||||
|
@ -11,7 +11,7 @@ Introduction
|
||||
============
|
||||
|
||||
This manual is intended for reference by developers modifying the CMake
|
||||
source tree itself.
|
||||
source tree itself, and by those authoring externally-maintained modules.
|
||||
|
||||
|
||||
Permitted C++ Subset
|
||||
@ -540,7 +540,7 @@ a :ref:`Line Comment` block of the form:
|
||||
|
||||
or a :ref:`Bracket Comment` of the form:
|
||||
|
||||
.. code-block:: cmake
|
||||
::
|
||||
|
||||
#[[.rst:
|
||||
<module-name>
|
||||
@ -558,7 +558,7 @@ All such comments must start with ``#`` in the first column.
|
||||
|
||||
For example, a ``Modules/Findxxx.cmake`` module may contain:
|
||||
|
||||
.. code-block:: cmake
|
||||
::
|
||||
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
@ -51,6 +51,8 @@ Available logical expressions are:
|
||||
``0`` if all ``?`` are ``0``, else ``1``
|
||||
``$<NOT:?>``
|
||||
``0`` if ``?`` is ``1``, else ``1``
|
||||
``$<IF:?,true-value...,false-value...>```
|
||||
``true-value...`` if ``?`` is ``1``, ``false-value...`` if ``?`` is ``0``
|
||||
``$<STREQUAL:a,b>``
|
||||
``1`` if ``a`` is STREQUAL ``b``, else ``0``
|
||||
``$<EQUAL:a,b>``
|
||||
|
@ -255,7 +255,7 @@ invocation as exactly one argument.
|
||||
|
||||
For example:
|
||||
|
||||
.. code-block:: cmake
|
||||
::
|
||||
|
||||
message("This is a quoted argument containing multiple lines.
|
||||
This is always one argument even though it contains a ; character.
|
||||
@ -329,11 +329,17 @@ For example:
|
||||
To support legacy CMake code, unquoted arguments may also contain
|
||||
double-quoted strings (``"..."``, possibly enclosing horizontal
|
||||
whitespace), and make-style variable references (``$(MAKEVAR)``).
|
||||
|
||||
Unescaped double-quotes must balance, may not appear at the
|
||||
beginning of an unquoted argument, and are treated as part of the
|
||||
content. For example, the unquoted arguments ``-Da="b c"``,
|
||||
``-Da=$(v)``, and ``a" "b"c"d`` are each interpreted literally.
|
||||
|
||||
Make-style references are treated literally as part of the content
|
||||
and do not undergo variable expansion. They are treated as part
|
||||
of a single argument (rather than as separate ``$``, ``(``,
|
||||
``MAKEVAR``, and ``)`` arguments).
|
||||
|
||||
The above "unquoted_legacy" production represents such arguments.
|
||||
We do not recommend using legacy unquoted arguments in new code.
|
||||
Instead use a `Quoted Argument`_ or a `Bracket Argument`_ to
|
||||
@ -421,7 +427,7 @@ A ``#`` immediately followed by a `Bracket Argument`_ forms a
|
||||
|
||||
For example:
|
||||
|
||||
.. code-block:: cmake
|
||||
::
|
||||
|
||||
#[[This is a bracket comment.
|
||||
It runs until the close bracket.]]
|
||||
|
@ -59,12 +59,14 @@ All Modules
|
||||
/module/CPackDeb
|
||||
/module/CPackDMG
|
||||
/module/CPackIFW
|
||||
/module/CPackIFWConfigureFile
|
||||
/module/CPackNSIS
|
||||
/module/CPackPackageMaker
|
||||
/module/CPackProductBuild
|
||||
/module/CPackRPM
|
||||
/module/CPack
|
||||
/module/CPackWIX
|
||||
/module/CSharpUtilities
|
||||
/module/CTest
|
||||
/module/CTestCoverageCollectGCOV
|
||||
/module/CTestScriptMode
|
||||
|
@ -449,12 +449,12 @@ be true. This can be tested with logic in the package configuration file:
|
||||
foreach(_comp ${ClimbingStats_FIND_COMPONENTS})
|
||||
if (NOT ";${_supported_components};" MATCHES _comp)
|
||||
set(ClimbingStats_FOUND False)
|
||||
set(ClimbingStats_NOTFOUND_MESSAGE "Unsupported component: ${_comp}")
|
||||
set(ClimbingStats_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
|
||||
endif()
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStats${_comp}Targets.cmake")
|
||||
endforeach()
|
||||
|
||||
Here, the ``ClimbingStats_NOTFOUND_MESSAGE`` is set to a diagnosis that the package
|
||||
Here, the ``ClimbingStats_NOT_FOUND_MESSAGE`` is set to a diagnosis that the package
|
||||
could not be found because an invalid component was specified. This message
|
||||
variable can be set for any case where the ``_FOUND`` variable is set to ``False``,
|
||||
and will be displayed to the user.
|
||||
|
@ -51,6 +51,14 @@ The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
|
||||
to determine whether to report an error on use of deprecated macros or
|
||||
functions.
|
||||
|
||||
Policies Introduced by CMake 3.8
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0067: Honor language standard in try_compile() source-file signature. </policy/CMP0067>
|
||||
|
||||
Policies Introduced by CMake 3.7
|
||||
================================
|
||||
|
||||
|
@ -44,6 +44,7 @@ Properties of Global Scope
|
||||
/prop_gbl/TARGET_MESSAGES
|
||||
/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS
|
||||
/prop_gbl/USE_FOLDERS
|
||||
/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME
|
||||
|
||||
.. _`Directory Properties`:
|
||||
|
||||
@ -121,6 +122,7 @@ Properties on Targets
|
||||
/prop_tgt/AUTORCC
|
||||
/prop_tgt/AUTORCC_OPTIONS
|
||||
/prop_tgt/BINARY_DIR
|
||||
/prop_tgt/BUILD_RPATH
|
||||
/prop_tgt/BUILD_WITH_INSTALL_RPATH
|
||||
/prop_tgt/BUNDLE_EXTENSION
|
||||
/prop_tgt/BUNDLE
|
||||
@ -142,6 +144,10 @@ Properties on Targets
|
||||
/prop_tgt/CONFIG_OUTPUT_NAME
|
||||
/prop_tgt/CONFIG_POSTFIX
|
||||
/prop_tgt/CROSSCOMPILING_EMULATOR
|
||||
/prop_tgt/CUDA_SEPARABLE_COMPILATION
|
||||
/prop_tgt/CUDA_EXTENSIONS
|
||||
/prop_tgt/CUDA_STANDARD
|
||||
/prop_tgt/CUDA_STANDARD_REQUIRED
|
||||
/prop_tgt/CXX_EXTENSIONS
|
||||
/prop_tgt/CXX_STANDARD
|
||||
/prop_tgt/CXX_STANDARD_REQUIRED
|
||||
@ -166,6 +172,8 @@ Properties on Targets
|
||||
/prop_tgt/IMPORTED_CONFIGURATIONS
|
||||
/prop_tgt/IMPORTED_IMPLIB_CONFIG
|
||||
/prop_tgt/IMPORTED_IMPLIB
|
||||
/prop_tgt/IMPORTED_LIBNAME_CONFIG
|
||||
/prop_tgt/IMPORTED_LIBNAME
|
||||
/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG
|
||||
/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES
|
||||
/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG
|
||||
@ -204,6 +212,7 @@ Properties on Targets
|
||||
/prop_tgt/LABELS
|
||||
/prop_tgt/LANG_CLANG_TIDY
|
||||
/prop_tgt/LANG_COMPILER_LAUNCHER
|
||||
/prop_tgt/LANG_CPPLINT
|
||||
/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE
|
||||
/prop_tgt/LANG_VISIBILITY_PRESET
|
||||
/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG
|
||||
@ -229,6 +238,7 @@ Properties on Targets
|
||||
/prop_tgt/MACOSX_BUNDLE
|
||||
/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST
|
||||
/prop_tgt/MACOSX_RPATH
|
||||
/prop_tgt/MANUALLY_ADDED_DEPENDENCIES
|
||||
/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG
|
||||
/prop_tgt/NAME
|
||||
/prop_tgt/NO_SONAME
|
||||
@ -265,8 +275,11 @@ Properties on Targets
|
||||
/prop_tgt/VERSION
|
||||
/prop_tgt/VISIBILITY_INLINES_HIDDEN
|
||||
/prop_tgt/VS_CONFIGURATION_TYPE
|
||||
/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY
|
||||
/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION
|
||||
/prop_tgt/VS_DOTNET_REFERENCE_refname
|
||||
/prop_tgt/VS_DOTNET_REFERENCES
|
||||
/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL
|
||||
/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION
|
||||
/prop_tgt/VS_GLOBAL_KEYWORD
|
||||
/prop_tgt/VS_GLOBAL_PROJECT_TYPES
|
||||
@ -281,6 +294,7 @@ Properties on Targets
|
||||
/prop_tgt/VS_SCC_PROJECTNAME
|
||||
/prop_tgt/VS_SCC_PROVIDER
|
||||
/prop_tgt/VS_SDK_REFERENCES
|
||||
/prop_tgt/VS_USER_PROPS
|
||||
/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
|
||||
/prop_tgt/VS_WINRT_COMPONENT
|
||||
/prop_tgt/VS_WINRT_EXTENSIONS
|
||||
@ -288,6 +302,8 @@ Properties on Targets
|
||||
/prop_tgt/WIN32_EXECUTABLE
|
||||
/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS
|
||||
/prop_tgt/XCODE_ATTRIBUTE_an-attribute
|
||||
/prop_tgt/XCODE_EXPLICIT_FILE_TYPE
|
||||
/prop_tgt/XCODE_PRODUCT_TYPE
|
||||
/prop_tgt/XCTEST
|
||||
|
||||
.. _`Test Properties`:
|
||||
@ -344,9 +360,17 @@ Properties on Source Files
|
||||
/prop_sf/MACOSX_PACKAGE_LOCATION
|
||||
/prop_sf/OBJECT_DEPENDS
|
||||
/prop_sf/OBJECT_OUTPUTS
|
||||
/prop_sf/SKIP_AUTOGEN
|
||||
/prop_sf/SKIP_AUTOMOC
|
||||
/prop_sf/SKIP_AUTORCC
|
||||
/prop_sf/SKIP_AUTOUIC
|
||||
/prop_sf/SYMBOLIC
|
||||
/prop_sf/VS_COPY_TO_OUT_DIR
|
||||
/prop_sf/VS_CSHARP_tagname
|
||||
/prop_sf/VS_DEPLOYMENT_CONTENT
|
||||
/prop_sf/VS_DEPLOYMENT_LOCATION
|
||||
/prop_sf/VS_INCLUDE_IN_VSIX
|
||||
/prop_sf/VS_RESOURCE_GENERATOR
|
||||
/prop_sf/VS_SHADER_ENTRYPOINT
|
||||
/prop_sf/VS_SHADER_FLAGS
|
||||
/prop_sf/VS_SHADER_MODEL
|
||||
|
@ -22,12 +22,11 @@ Qt 4 and Qt 5 may be used together in the same
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR)
|
||||
|
||||
project(Qt4And5)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
find_package(Qt5 COMPONENTS Widgets DBus REQUIRED)
|
||||
add_executable(publisher publisher.cpp)
|
||||
@ -73,14 +72,20 @@ The ``moc`` command line will consume the :prop_tgt:`COMPILE_DEFINITIONS` and
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES` target properties from the target it is being
|
||||
invoked for, and for the appropriate build configuration.
|
||||
|
||||
Generated ``moc_*.cpp`` and ``*.moc`` files are placed in the build directory
|
||||
so it is convenient to set the :variable:`CMAKE_INCLUDE_CURRENT_DIR`
|
||||
variable. The :prop_tgt:`AUTOMOC` target property may be pre-set for all
|
||||
The generated ``moc_*.cpp`` and ``*.moc`` files are placed in the
|
||||
``<CMAKE_CURRENT_BINARY_DIR>/<TARGETNAME>_autogen/include`` directory which is
|
||||
automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
(This differs from CMake 3.7 and below; see their documentation for details.)
|
||||
|
||||
The :prop_tgt:`AUTOMOC` target property may be pre-set for all
|
||||
following targets by setting the :variable:`CMAKE_AUTOMOC` variable. The
|
||||
:prop_tgt:`AUTOMOC_MOC_OPTIONS` target property may be populated to set
|
||||
options to pass to ``moc``. The :variable:`CMAKE_AUTOMOC_MOC_OPTIONS`
|
||||
variable may be populated to pre-set the options for all following targets.
|
||||
|
||||
Source C++ files can be excluded from :prop_tgt:`AUTOMOC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTOMOC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
.. _`Qt AUTOUIC`:
|
||||
|
||||
AUTOUIC
|
||||
@ -94,10 +99,13 @@ If a preprocessor ``#include`` directive is found which matches
|
||||
``ui_<basename>.h``, and a ``<basename>.ui`` file exists, then ``uic`` will
|
||||
be executed to generate the appropriate file.
|
||||
|
||||
Generated ``ui_*.h`` files are placed in the build directory so it is
|
||||
convenient to set the :variable:`CMAKE_INCLUDE_CURRENT_DIR` variable. The
|
||||
:prop_tgt:`AUTOUIC` target property may be pre-set for all following targets
|
||||
by setting the :variable:`CMAKE_AUTOUIC` variable. The
|
||||
The generated generated ``ui_*.h`` files are placed in the
|
||||
``<CMAKE_CURRENT_BINARY_DIR>/<TARGETNAME>_autogen/include`` directory which is
|
||||
automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
(This differs from CMake 3.7 and below; see their documentation for details.)
|
||||
|
||||
The :prop_tgt:`AUTOUIC` target property may be pre-set for all following
|
||||
targets by setting the :variable:`CMAKE_AUTOUIC` variable. The
|
||||
:prop_tgt:`AUTOUIC_OPTIONS` target property may be populated to set options
|
||||
to pass to ``uic``. The :variable:`CMAKE_AUTOUIC_OPTIONS` variable may be
|
||||
populated to pre-set the options for all following targets. The
|
||||
@ -144,6 +152,9 @@ result of linking with the :prop_tgt:`IMPORTED` target:
|
||||
Qt5::Widgets
|
||||
)
|
||||
|
||||
Source files can be excluded from :prop_tgt:`AUTOUIC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTOUIC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
.. _`Qt AUTORCC`:
|
||||
|
||||
AUTORCC
|
||||
@ -166,6 +177,9 @@ populated to pre-set the options for all following targets. The
|
||||
``<name>.qrc`` file to set particular options for the file. This
|
||||
overrides options from the :prop_tgt:`AUTORCC_OPTIONS` target property.
|
||||
|
||||
Source files can be excluded from :prop_tgt:`AUTORCC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTORCC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
qtmain.lib on Windows
|
||||
=====================
|
||||
|
||||
|
@ -82,6 +82,7 @@ Variables that Provide Information
|
||||
/variable/CMAKE_VS_NsightTegra_VERSION
|
||||
/variable/CMAKE_VS_PLATFORM_NAME
|
||||
/variable/CMAKE_VS_PLATFORM_TOOLSET
|
||||
/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
|
||||
/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
|
||||
/variable/CMAKE_XCODE_PLATFORM_TOOLSET
|
||||
/variable/PROJECT_BINARY_DIR
|
||||
@ -160,6 +161,8 @@ Variables that Change Behavior
|
||||
/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE
|
||||
/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
|
||||
/variable/CMAKE_STAGING_PREFIX
|
||||
/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
|
||||
/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE
|
||||
/variable/CMAKE_SYSTEM_APPBUNDLE_PATH
|
||||
/variable/CMAKE_SYSTEM_FRAMEWORK_PATH
|
||||
/variable/CMAKE_SYSTEM_IGNORE_PATH
|
||||
@ -259,6 +262,7 @@ Variables that Control the Build
|
||||
/variable/CMAKE_AUTORCC_OPTIONS
|
||||
/variable/CMAKE_AUTOUIC
|
||||
/variable/CMAKE_AUTOUIC_OPTIONS
|
||||
/variable/CMAKE_BUILD_RPATH
|
||||
/variable/CMAKE_BUILD_WITH_INSTALL_RPATH
|
||||
/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
|
||||
/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
|
||||
@ -280,6 +284,7 @@ Variables that Control the Build
|
||||
/variable/CMAKE_IOS_INSTALL_COMBINED
|
||||
/variable/CMAKE_LANG_CLANG_TIDY
|
||||
/variable/CMAKE_LANG_COMPILER_LAUNCHER
|
||||
/variable/CMAKE_LANG_CPPLINT
|
||||
/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE
|
||||
/variable/CMAKE_LANG_VISIBILITY_PRESET
|
||||
/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY
|
||||
@ -325,6 +330,7 @@ Variables that Control the Build
|
||||
/variable/CMAKE_USE_RELATIVE_PATHS
|
||||
/variable/CMAKE_VISIBILITY_INLINES_HIDDEN
|
||||
/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
|
||||
/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD
|
||||
/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
|
||||
/variable/CMAKE_WIN32_EXECUTABLE
|
||||
/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute
|
||||
@ -344,6 +350,10 @@ Variables for Languages
|
||||
/variable/CMAKE_C_EXTENSIONS
|
||||
/variable/CMAKE_C_STANDARD
|
||||
/variable/CMAKE_C_STANDARD_REQUIRED
|
||||
/variable/CMAKE_CUDA_EXTENSIONS
|
||||
/variable/CMAKE_CUDA_STANDARD
|
||||
/variable/CMAKE_CUDA_STANDARD_REQUIRED
|
||||
/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
|
||||
/variable/CMAKE_CXX_COMPILE_FEATURES
|
||||
/variable/CMAKE_CXX_EXTENSIONS
|
||||
/variable/CMAKE_CXX_STANDARD
|
||||
|
@ -263,8 +263,10 @@ Available commands are:
|
||||
052f86c15bbde68af55c7f7b340ab639 file2.txt
|
||||
|
||||
``remove [-f] <file>...``
|
||||
Remove the file(s), use ``-f`` to force it. If a file does
|
||||
not exist it will be silently ignored.
|
||||
Remove the file(s). If any of the listed files already do not
|
||||
exist, the command returns a non-zero exit code, but no message
|
||||
is logged. The ``-f`` option changes the behavior to return a
|
||||
zero exit code (i.e. success) in such situations instead.
|
||||
|
||||
``remove_directory <dir>``
|
||||
Remove a directory and its contents. If a directory does
|
||||
|
1
Help/module/CPackIFWConfigureFile.rst
Normal file
1
Help/module/CPackIFWConfigureFile.rst
Normal file
@ -0,0 +1 @@
|
||||
.. cmake-module:: ../../Modules/CPackIFWConfigureFile.cmake
|
1
Help/module/CSharpUtilities.rst
Normal file
1
Help/module/CSharpUtilities.rst
Normal file
@ -0,0 +1 @@
|
||||
.. cmake-module:: ../../Modules/CSharpUtilities.cmake
|
37
Help/policy/CMP0067.rst
Normal file
37
Help/policy/CMP0067.rst
Normal file
@ -0,0 +1,37 @@
|
||||
CMP0067
|
||||
-------
|
||||
|
||||
Honor language standard in :command:`try_compile` source-file signature.
|
||||
|
||||
The :command:`try_compile` source file signature is intended to allow
|
||||
callers to check whether they will be able to compile a given source file
|
||||
with the current toolchain. In order to match compiler behavior, any
|
||||
language standard mode should match. However, CMake 3.7 and below did not
|
||||
do this. CMake 3.8 and above prefer to honor the language standard settings
|
||||
for ``C``, ``CXX`` (C++), and ``CUDA`` using the values of the variables:
|
||||
|
||||
* :variable:`CMAKE_C_STANDARD`
|
||||
* :variable:`CMAKE_C_STANDARD_REQUIRED`
|
||||
* :variable:`CMAKE_C_EXTENSIONS`
|
||||
* :variable:`CMAKE_CXX_STANDARD`
|
||||
* :variable:`CMAKE_CXX_STANDARD_REQUIRED`
|
||||
* :variable:`CMAKE_CXX_EXTENSIONS`
|
||||
* :variable:`CMAKE_CUDA_STANDARD`
|
||||
* :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
|
||||
* :variable:`CMAKE_CUDA_EXTENSIONS`
|
||||
|
||||
This policy provides compatibility for projects that do not expect
|
||||
the language standard settings to be used automatically.
|
||||
|
||||
The ``OLD`` behavior of this policy is to ignore language standard
|
||||
setting variables when generating the ``try_compile`` test project.
|
||||
The ``NEW`` behavior of this policy is to honor language standard
|
||||
setting variables.
|
||||
|
||||
This policy was introduced in CMake version 3.8. Unlike most policies,
|
||||
CMake version |release| does *not* warn by default when this policy
|
||||
is not set and simply uses OLD behavior. See documentation of the
|
||||
:variable:`CMAKE_POLICY_WARNING_CMP0067 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
|
||||
variable to control the warning.
|
||||
|
||||
.. include:: DEPRECATED.txt
|
@ -1,7 +1,7 @@
|
||||
AUTOGEN_TARGETS_FOLDER
|
||||
----------------------
|
||||
|
||||
Name of :prop_tgt:`FOLDER` for ``*_automoc`` targets that are added automatically by
|
||||
Name of :prop_tgt:`FOLDER` for ``*_autogen`` targets that are added automatically by
|
||||
CMake for targets for which :prop_tgt:`AUTOMOC` is enabled.
|
||||
|
||||
If not set, CMake uses the :prop_tgt:`FOLDER` property of the parent target as a
|
||||
|
@ -1,7 +1,7 @@
|
||||
AUTOMOC_TARGETS_FOLDER
|
||||
----------------------
|
||||
|
||||
Name of :prop_tgt:`FOLDER` for ``*_automoc`` targets that are added automatically by
|
||||
Name of :prop_tgt:`FOLDER` for ``*_autogen`` targets that are added automatically by
|
||||
CMake for targets for which :prop_tgt:`AUTOMOC` is enabled.
|
||||
|
||||
This property is obsolete. Use :prop_gbl:`AUTOGEN_TARGETS_FOLDER` instead.
|
||||
|
@ -14,6 +14,18 @@ compile features and a list of supported compilers.
|
||||
|
||||
The features known to this version of CMake are:
|
||||
|
||||
``cxx_std_98``
|
||||
Compiler mode is aware of C++ 98.
|
||||
|
||||
``cxx_std_11``
|
||||
Compiler mode is aware of C++ 11.
|
||||
|
||||
``cxx_std_14``
|
||||
Compiler mode is aware of C++ 14.
|
||||
|
||||
``cxx_std_17``
|
||||
Compiler mode is aware of C++ 17.
|
||||
|
||||
``cxx_aggregate_default_initializers``
|
||||
Aggregate default initializers, as defined in N3605_.
|
||||
|
||||
|
@ -13,6 +13,15 @@ compile features and a list of supported compilers.
|
||||
|
||||
The features known to this version of CMake are:
|
||||
|
||||
``c_std_90``
|
||||
Compiler mode is aware of C 90.
|
||||
|
||||
``c_std_99``
|
||||
Compiler mode is aware of C 99.
|
||||
|
||||
``c_std_11``
|
||||
Compiler mode is aware of C 11.
|
||||
|
||||
``c_function_prototypes``
|
||||
Function prototypes, as defined in ``ISO/IEC 9899:1990``.
|
||||
|
||||
|
24
Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
Normal file
24
Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
Normal file
@ -0,0 +1,24 @@
|
||||
XCODE_EMIT_EFFECTIVE_PLATFORM_NAME
|
||||
----------------------------------
|
||||
|
||||
Control emission of ``EFFECTIVE_PLATFORM_NAME`` by the Xcode generator.
|
||||
|
||||
It is required for building the same target with multiple SDKs. A
|
||||
common use case is the parallel use of ``iphoneos`` and
|
||||
``iphonesimulator`` SDKs.
|
||||
|
||||
Three different states possible that control when the Xcode generator
|
||||
emits the ``EFFECTIVE_PLATFORM_NAME`` variable:
|
||||
|
||||
- If set to ``ON`` it will always be emitted
|
||||
- If set to ``OFF`` it will never be emitted
|
||||
- If unset (the default) it will only be emitted when the project was
|
||||
configured for an embedded Xcode SDK like iOS, tvOS, watchOS or any
|
||||
of the simulators.
|
||||
|
||||
.. note::
|
||||
|
||||
When this behavior is enable for generated Xcode projects, the
|
||||
``EFFECTIVE_PLATFORM_NAME`` variable will leak into
|
||||
:manual:`Generator expressions <cmake-generator-expressions(7)>`
|
||||
like ``TARGET_FILE`` and will render those mostly unusable.
|
@ -6,3 +6,10 @@ Additional flags to be added when compiling this source file.
|
||||
These flags will be added to the list of compile flags when this
|
||||
source file builds. Use :prop_sf:`COMPILE_DEFINITIONS` to pass
|
||||
additional preprocessor definitions.
|
||||
|
||||
Contents of ``COMPILE_FLAGS`` may use "generator expressions"
|
||||
with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
|
||||
manual for available expressions. However, :generator:`Xcode`
|
||||
does not support per-config per-source settings, so expressions
|
||||
that depend on the build configuration are not allowed with that
|
||||
generator.
|
||||
|
8
Help/prop_sf/SKIP_AUTOGEN.rst
Normal file
8
Help/prop_sf/SKIP_AUTOGEN.rst
Normal file
@ -0,0 +1,8 @@
|
||||
SKIP_AUTOGEN
|
||||
------------
|
||||
|
||||
Exclude the source file from :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC` and
|
||||
:prop_tgt:`AUTORCC` processing (for Qt projects).
|
||||
|
||||
For finer control see :prop_sf:`SKIP_AUTOMOC`, :prop_sf:`SKIP_AUTOUIC` and
|
||||
:prop_sf:`SKIP_AUTORCC`.
|
6
Help/prop_sf/SKIP_AUTOMOC.rst
Normal file
6
Help/prop_sf/SKIP_AUTOMOC.rst
Normal file
@ -0,0 +1,6 @@
|
||||
SKIP_AUTOMOC
|
||||
------------
|
||||
|
||||
Exclude the source file from :prop_tgt:`AUTOMOC` processing (for Qt projects).
|
||||
|
||||
For broader control see :prop_sf:`SKIP_AUTOGEN`
|
6
Help/prop_sf/SKIP_AUTORCC.rst
Normal file
6
Help/prop_sf/SKIP_AUTORCC.rst
Normal file
@ -0,0 +1,6 @@
|
||||
SKIP_AUTORCC
|
||||
------------
|
||||
|
||||
Exclude the source file from :prop_tgt:`AUTORCC` processing (for Qt projects).
|
||||
|
||||
For broader control see :prop_sf:`SKIP_AUTOGEN`
|
6
Help/prop_sf/SKIP_AUTOUIC.rst
Normal file
6
Help/prop_sf/SKIP_AUTOUIC.rst
Normal file
@ -0,0 +1,6 @@
|
||||
SKIP_AUTOUIC
|
||||
------------
|
||||
|
||||
Exclude the source file from :prop_tgt:`AUTOUIC` processing (for Qt projects).
|
||||
|
||||
For broader control see :prop_sf:`SKIP_AUTOGEN`
|
6
Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
Normal file
6
Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
Normal file
@ -0,0 +1,6 @@
|
||||
VS_COPY_TO_OUT_DIR
|
||||
------------------
|
||||
|
||||
Sets the ``<CopyToOutputDirectory>`` tag for a source file in a
|
||||
Visual Studio project file. Valid values are ``Never``, ``Always``
|
||||
and ``PreserveNewest``.
|
19
Help/prop_sf/VS_CSHARP_tagname.rst
Normal file
19
Help/prop_sf/VS_CSHARP_tagname.rst
Normal file
@ -0,0 +1,19 @@
|
||||
VS_CSHARP_<tagname>
|
||||
-------------------
|
||||
|
||||
Visual Studio and CSharp source-file-specific configuration.
|
||||
|
||||
Tell the Visual Studio generator to set the source file tag
|
||||
``<tagname>`` to a given value in the generated Visual Studio CSharp
|
||||
project. Ignored on other generators and languages. This property
|
||||
can be used to define dependencies between source files or set any
|
||||
other Visual Studio specific parameters.
|
||||
|
||||
Example usage:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set_source_files_property(<filename>
|
||||
PROPERTIES
|
||||
VS_CSHARP_DependentUpon <other file>
|
||||
VS_CSHARP_SubType "Form")
|
6
Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
Normal file
6
Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
Normal file
@ -0,0 +1,6 @@
|
||||
VS_INCLUDE_IN_VSIX
|
||||
------------------
|
||||
|
||||
Boolean property to specify if the file should be included within a VSIX
|
||||
extension package. This is needed for development of Visual Studio
|
||||
extensions.
|
8
Help/prop_sf/VS_RESOURCE_GENERATOR.rst
Normal file
8
Help/prop_sf/VS_RESOURCE_GENERATOR.rst
Normal file
@ -0,0 +1,8 @@
|
||||
VS_RESOURCE_GENERATOR
|
||||
---------------------
|
||||
|
||||
This property allows to specify the resource generator to be used
|
||||
on this file. It defaults to ``PublicResXFileCodeGenerator`` if
|
||||
not set.
|
||||
|
||||
This property only applies to C# projects.
|
@ -22,7 +22,9 @@ When the test outputs a line that matches ``regex`` its start time is
|
||||
reset to the current time and its timeout duration is changed to
|
||||
``seconds``. Prior to this, the timeout duration is determined by the
|
||||
:prop_test:`TIMEOUT` property or the :variable:`CTEST_TEST_TIMEOUT`
|
||||
variable if either of these are set.
|
||||
variable if either of these are set. Because the test's start time is
|
||||
reset, its execution time will not include any time that was spent
|
||||
waiting for the matching output.
|
||||
|
||||
:prop_test:`TIMEOUT_AFTER_MATCH` is useful for avoiding spurious
|
||||
timeouts when your test must wait for some system resource to become
|
||||
|
@ -1,16 +1,16 @@
|
||||
AUTOGEN_TARGET_DEPENDS
|
||||
----------------------
|
||||
|
||||
Target dependencies of the corresponding ``_automoc`` target.
|
||||
Target dependencies of the corresponding ``_autogen`` target.
|
||||
|
||||
Targets which have their :prop_tgt:`AUTOMOC` target ``ON`` have a
|
||||
corresponding ``_automoc`` target which is used to autogenerate generate moc
|
||||
files. As this ``_automoc`` target is created at generate-time, it is not
|
||||
corresponding ``_autogen`` target which is used to autogenerate generate moc
|
||||
files. As this ``_autogen`` target is created at generate-time, it is not
|
||||
possible to define dependencies of it, such as to create inputs for the ``moc``
|
||||
executable.
|
||||
|
||||
The ``AUTOGEN_TARGET_DEPENDS`` target property can be set instead to a list of
|
||||
dependencies for the ``_automoc`` target. The buildsystem will be generated to
|
||||
dependencies for the ``_autogen`` target. The buildsystem will be generated to
|
||||
depend on its contents.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
|
@ -15,11 +15,12 @@ source files at build time and invoke moc accordingly.
|
||||
the ``Q_OBJECT`` class declaration is expected in the header, and
|
||||
``moc`` is run on the header file. A ``moc_foo.cpp`` file will be
|
||||
generated from the source's header into the
|
||||
:variable:`CMAKE_CURRENT_BINARY_DIR` directory. This allows the
|
||||
compiler to find the included ``moc_foo.cpp`` file regardless of the
|
||||
location the original source. However, if multiple source files
|
||||
in different directories do this then their generated moc files would
|
||||
collide. In this case a diagnostic will be issued.
|
||||
``<CMAKE_CURRENT_BINARY_DIR>/<TARGETNAME>_autogen/include``
|
||||
directory which is automatically added to the target's
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`. This allows the compiler to find the
|
||||
included ``moc_foo.cpp`` file regardless of the location the original source.
|
||||
However, if multiple source files in different directories do this then their
|
||||
generated moc files would collide. In this case a diagnostic will be issued.
|
||||
|
||||
* If an ``#include`` statement like ``#include "foo.moc"`` is found,
|
||||
then a ``Q_OBJECT`` is expected in the current source file and ``moc``
|
||||
@ -30,7 +31,7 @@ source files at build time and invoke moc accordingly.
|
||||
alternative extensions, such as ``hpp``, ``hxx`` etc when searching
|
||||
for headers. The resulting moc files, which are not included as shown
|
||||
above in any of the source files are included in a generated
|
||||
``<targetname>_automoc.cpp`` file, which is compiled as part of the
|
||||
``moc_compilation.cpp`` file, which is compiled as part of the
|
||||
target.
|
||||
|
||||
This property is initialized by the value of the :variable:`CMAKE_AUTOMOC`
|
||||
@ -46,5 +47,8 @@ See the documentation for this variable for more details.
|
||||
The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the
|
||||
automoc targets together in an IDE, e.g. in MSVS.
|
||||
|
||||
Source C++ files can be excluded from :prop_tgt:`AUTOMOC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTOMOC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
@ -24,5 +24,8 @@ generate unspecified unique names for ``rcc``. Therefore if
|
||||
``Q_INIT_RESOURCE()`` or ``Q_CLEANUP_RESOURCE()`` need to be used the
|
||||
``.qrc`` file name must be unique.
|
||||
|
||||
Source files can be excluded from :prop_tgt:`AUTORCC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTORCC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
@ -20,5 +20,8 @@ Additional command line options for ``uic`` can be set via the
|
||||
The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the
|
||||
autouic targets together in an IDE, e.g. in MSVS.
|
||||
|
||||
Source files can be excluded from :prop_tgt:`AUTOUIC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTOUIC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
10
Help/prop_tgt/BUILD_RPATH.rst
Normal file
10
Help/prop_tgt/BUILD_RPATH.rst
Normal file
@ -0,0 +1,10 @@
|
||||
BUILD_RPATH
|
||||
-----------
|
||||
|
||||
A :ref:`;-list <CMake Language Lists>` specifying runtime path (``RPATH``)
|
||||
entries to add to binaries linked in the build tree (for platforms that
|
||||
support it). The entries will *not* be used for binaries in the install
|
||||
tree. See also the :prop_tgt:`INSTALL_RPATH` target property.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_BUILD_RPATH` if it is set when a target is created.
|
@ -5,3 +5,7 @@ Use the given emulator to run executables created when crosscompiling.
|
||||
This command will be added as a prefix to :command:`add_test`,
|
||||
:command:`add_custom_command`, and :command:`add_custom_target` commands
|
||||
for built target system executables.
|
||||
|
||||
This property is initialized by the value of the
|
||||
:variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable if it is set when a target
|
||||
is created.
|
||||
|
17
Help/prop_tgt/CUDA_EXTENSIONS.rst
Normal file
17
Help/prop_tgt/CUDA_EXTENSIONS.rst
Normal file
@ -0,0 +1,17 @@
|
||||
CUDA_EXTENSIONS
|
||||
---------------
|
||||
|
||||
Boolean specifying whether compiler specific extensions are requested.
|
||||
|
||||
This property specifies whether compiler specific extensions should be
|
||||
used. For some compilers, this results in adding a flag such
|
||||
as ``-std=gnu++11`` instead of ``-std=c++11`` to the compile line. This
|
||||
property is ``ON`` by default. The basic CUDA/C++ standard level is
|
||||
controlled by the :prop_tgt:`CUDA_STANDARD` target property.
|
||||
|
||||
See the :manual:`cmake-compile-features(7)` manual for information on
|
||||
compile features and a list of supported compilers.
|
||||
|
||||
This property is initialized by the value of
|
||||
the :variable:`CMAKE_CUDA_EXTENSIONS` variable if it is set when a target
|
||||
is created.
|
13
Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
Normal file
13
Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
Normal file
@ -0,0 +1,13 @@
|
||||
CUDA_SEPARABLE_COMPILATION
|
||||
--------------------------
|
||||
|
||||
CUDA only: Enables separate compilation of device code
|
||||
|
||||
If set this will enable separable compilation for all CUDA files for
|
||||
the given target.
|
||||
|
||||
For instance:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set_property(TARGET myexe PROPERTY CUDA_SEPARABLE_COMPILATION ON)
|
32
Help/prop_tgt/CUDA_STANDARD.rst
Normal file
32
Help/prop_tgt/CUDA_STANDARD.rst
Normal file
@ -0,0 +1,32 @@
|
||||
CUDA_STANDARD
|
||||
-------------
|
||||
|
||||
The CUDA/C++ standard whose features are requested to build this target.
|
||||
|
||||
This property specifies the CUDA/C++ standard whose features are requested
|
||||
to build this target. For some compilers, this results in adding a
|
||||
flag such as ``-std=gnu++11`` to the compile line.
|
||||
|
||||
Supported values are ``98``, ``11``.
|
||||
|
||||
If the value requested does not result in a compile flag being added for
|
||||
the compiler in use, a previous standard flag will be added instead. This
|
||||
means that using:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set_property(TARGET tgt PROPERTY CUDA_STANDARD 11)
|
||||
|
||||
with a compiler which does not support ``-std=gnu++11`` or an equivalent
|
||||
flag will not result in an error or warning, but will instead add the
|
||||
``-std=gnu++98`` flag if supported. This "decay" behavior may be controlled
|
||||
with the :prop_tgt:`CUDA_STANDARD_REQUIRED` target property.
|
||||
Additionally, the :prop_tgt:`CUDA_EXTENSIONS` target property may be used to
|
||||
control whether compiler-specific extensions are enabled on a per-target basis.
|
||||
|
||||
See the :manual:`cmake-compile-features(7)` manual for information on
|
||||
compile features and a list of supported compilers.
|
||||
|
||||
This property is initialized by the value of
|
||||
the :variable:`CMAKE_CUDA_STANDARD` variable if it is set when a target
|
||||
is created.
|
18
Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
Normal file
18
Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
Normal file
@ -0,0 +1,18 @@
|
||||
CUDA_STANDARD_REQUIRED
|
||||
----------------------
|
||||
|
||||
Boolean describing whether the value of :prop_tgt:`CUDA_STANDARD` is a requirement.
|
||||
|
||||
If this property is set to ``ON``, then the value of the
|
||||
:prop_tgt:`CUDA_STANDARD` target property is treated as a requirement. If this
|
||||
property is ``OFF`` or unset, the :prop_tgt:`CUDA_STANDARD` target property is
|
||||
treated as optional and may "decay" to a previous standard if the requested is
|
||||
not available. For compilers that have no notion of a standard level, such as
|
||||
MSVC, this has no effect.
|
||||
|
||||
See the :manual:`cmake-compile-features(7)` manual for information on
|
||||
compile features and a list of supported compilers.
|
||||
|
||||
This property is initialized by the value of
|
||||
the :variable:`CMAKE_CUDA_STANDARD_REQUIRED` variable if it is set when a
|
||||
target is created.
|
@ -8,7 +8,7 @@ to build this target. For some compilers, this results in adding a
|
||||
flag such as ``-std=gnu++11`` to the compile line. For compilers that
|
||||
have no notion of a standard level, such as MSVC, this has no effect.
|
||||
|
||||
Supported values are ``98``, ``11`` and ``14``.
|
||||
Supported values are ``98``, ``11``, ``14``, and ``17``.
|
||||
|
||||
If the value requested does not result in a compile flag being added for
|
||||
the compiler in use, a previous standard flag will be added instead. This
|
||||
|
@ -1,9 +1,9 @@
|
||||
FRAMEWORK
|
||||
---------
|
||||
|
||||
Build ``SHARED`` library as Framework Bundle on the OS X and iOS.
|
||||
Build ``SHARED`` or ``STATIC`` library as Framework Bundle on the OS X and iOS.
|
||||
|
||||
If a ``SHARED`` library target has this property set to ``TRUE`` it will be
|
||||
If such a library target has this property set to ``TRUE`` it will be
|
||||
built as a framework when built on the OS X and iOS. It will have the
|
||||
directory structure required for a framework and will be suitable to
|
||||
be used with the ``-framework`` option
|
||||
|
23
Help/prop_tgt/IMPORTED_LIBNAME.rst
Normal file
23
Help/prop_tgt/IMPORTED_LIBNAME.rst
Normal file
@ -0,0 +1,23 @@
|
||||
IMPORTED_LIBNAME
|
||||
----------------
|
||||
|
||||
Specify the link library name for an :ref:`imported <Imported Targets>`
|
||||
:ref:`Interface Library <Interface Libraries>`.
|
||||
|
||||
An interface library builds no library file itself but does specify
|
||||
usage requirements for its consumers. The ``IMPORTED_LIBNAME``
|
||||
property may be set to specify a single library name to be placed
|
||||
on the link line in place of the interface library target name as
|
||||
a requirement for using the interface.
|
||||
|
||||
This property is intended for use in naming libraries provided by
|
||||
a platform SDK for which the full path to a library file may not
|
||||
be known. The value may be a plain library name such as ``foo``
|
||||
but may *not* be a path (e.g. ``/usr/lib/libfoo.so``) or a flag
|
||||
(e.g. ``-Wl,...``). The name is never treated as a library target
|
||||
name even if it happens to name one.
|
||||
|
||||
The ``IMPORTED_LIBNAME`` property is allowed only on
|
||||
:ref:`imported <Imported Targets>` :ref:`Interface Libraries`
|
||||
and is rejected on targets of other types (for which
|
||||
the :prop_tgt:`IMPORTED_LOCATION` target property may be used).
|
7
Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
Normal file
7
Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
Normal file
@ -0,0 +1,7 @@
|
||||
IMPORTED_LIBNAME_<CONFIG>
|
||||
-------------------------
|
||||
|
||||
<CONFIG>-specific version of :prop_tgt:`IMPORTED_LIBNAME` property.
|
||||
|
||||
Configuration names correspond to those provided by the project from
|
||||
which the target is imported.
|
13
Help/prop_tgt/LANG_CPPLINT.rst
Normal file
13
Help/prop_tgt/LANG_CPPLINT.rst
Normal file
@ -0,0 +1,13 @@
|
||||
<LANG>_CPPLINT
|
||||
--------------
|
||||
|
||||
This property is supported only when ``<LANG>`` is ``C`` or ``CXX``.
|
||||
|
||||
Specify a :ref:`;-list <CMake Language Lists>` containing a command line
|
||||
for the ``cpplint`` style checker. The :ref:`Makefile Generators` and the
|
||||
:generator:`Ninja` generator will run ``cpplint`` along with the compiler
|
||||
and report any problems.
|
||||
|
||||
This property is initialized by the value of the
|
||||
:variable:`CMAKE_<LANG>_CPPLINT` variable if it is set when a target is
|
||||
created.
|
8
Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
Normal file
8
Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
Normal file
@ -0,0 +1,8 @@
|
||||
MANUALLY_ADDED_DEPENDENCIES
|
||||
---------------------------
|
||||
|
||||
Get manually added dependencies to other top-level targets.
|
||||
|
||||
This read-only property can be used to query all dependencies that
|
||||
were added for this target with the :command:`add_dependencies`
|
||||
command.
|
@ -1,19 +1,25 @@
|
||||
MAP_IMPORTED_CONFIG_<CONFIG>
|
||||
----------------------------
|
||||
|
||||
Map from project configuration to IMPORTED target's configuration.
|
||||
Map from project configuration to
|
||||
:ref:`imported target <IMPORTED targets>`'s configuration.
|
||||
|
||||
Set this to the list of configurations of an imported target that may
|
||||
be used for the current project's <CONFIG> configuration. Targets
|
||||
be used for the current project's ``<CONFIG>`` configuration. Targets
|
||||
imported from another project may not provide the same set of
|
||||
configuration names available in the current project. Setting this
|
||||
property tells CMake what imported configurations are suitable for use
|
||||
when building the <CONFIG> configuration. The first configuration in
|
||||
the list found to be provided by the imported target is selected. If
|
||||
this property is set and no matching configurations are available,
|
||||
when building the ``<CONFIG>`` configuration. The first configuration in
|
||||
the list found to be provided by the imported target (i.e. via
|
||||
:prop_tgt:`IMPORTED_LOCATION_<CONFIG>` for the mapped-to ``<CONFIG>``)
|
||||
is selected. As a special case, an empty list element refers to the
|
||||
configuration-less imported target location
|
||||
(i.e. :prop_tgt:`IMPORTED_LOCATION`).
|
||||
|
||||
If this property is set and no matching configurations are available,
|
||||
then the imported target is considered to be not found. This property
|
||||
is ignored for non-imported targets.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
CMAKE_MAP_IMPORTED_CONFIG_<CONFIG> if it is set when a target is
|
||||
created.
|
||||
This property is initialized by the value of the
|
||||
:variable:`CMAKE_MAP_IMPORTED_CONFIG_<CONFIG>` variable if it is set when a
|
||||
target is created.
|
||||
|
6
Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
Normal file
6
Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
Normal file
@ -0,0 +1,6 @@
|
||||
VS_DEBUGGER_WORKING_DIRECTORY
|
||||
-----------------------------
|
||||
|
||||
Sets the local debugger working directory for Visual Studio C++ targets.
|
||||
This is defined in ``<LocalDebuggerWorkingDirectory>`` in the Visual Studio
|
||||
project file.
|
7
Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
Normal file
7
Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
Normal file
@ -0,0 +1,7 @@
|
||||
VS_DOTNET_REFERENCES_COPY_LOCAL
|
||||
-------------------------------
|
||||
|
||||
Sets the **Copy Local** property for all .NET hint references in the target
|
||||
|
||||
Boolean property to enable/disable copying of .NET hint references to
|
||||
output directory. The default is ``ON``.
|
12
Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
Normal file
12
Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
Normal file
@ -0,0 +1,12 @@
|
||||
VS_DOTNET_REFERENCE_<refname>
|
||||
-----------------------------
|
||||
|
||||
Visual Studio managed project .NET reference with name ``<refname>``
|
||||
and hint path.
|
||||
|
||||
Adds one .NET reference to generated Visual Studio project. The
|
||||
reference will have the name ``<refname>`` and will point to the
|
||||
assembly given as value of the property.
|
||||
|
||||
See also :prop_tgt:`VS_DOTNET_REFERENCES` and
|
||||
:prop_tgt:`VS_DOTNET_REFERENCES_COPY_LOCAL`
|
12
Help/prop_tgt/VS_USER_PROPS.rst
Normal file
12
Help/prop_tgt/VS_USER_PROPS.rst
Normal file
@ -0,0 +1,12 @@
|
||||
VS_USER_PROPS
|
||||
-------------
|
||||
|
||||
Sets the user props file to be included in the visual studio
|
||||
C++ project file. The standard path is
|
||||
``$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props``, which is
|
||||
in most cases the same as
|
||||
``%LOCALAPPDATA%\\Microsoft\\MSBuild\\v4.0\\Microsoft.Cpp.Win32.user.props``
|
||||
or ``%LOCALAPPDATA%\\Microsoft\\MSBuild\\v4.0\\Microsoft.Cpp.x64.user.props``.
|
||||
|
||||
The ``*.user.props`` files can be used for Visual Studio wide
|
||||
configuration which is independent from cmake.
|
8
Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
Normal file
8
Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
Normal file
@ -0,0 +1,8 @@
|
||||
XCODE_EXPLICIT_FILE_TYPE
|
||||
------------------------
|
||||
|
||||
Set the Xcode ``explicitFileType`` attribute on its reference to a
|
||||
target. CMake computes a default based on target type but
|
||||
can be told explicitly with this property.
|
||||
|
||||
See also :prop_tgt:`XCODE_PRODUCT_TYPE`.
|
8
Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
Normal file
8
Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
Normal file
@ -0,0 +1,8 @@
|
||||
XCODE_PRODUCT_TYPE
|
||||
------------------
|
||||
|
||||
Set the Xcode ``productType`` attribute on its reference to a
|
||||
target. CMake computes a default based on target type but
|
||||
can be told explicitly with this property.
|
||||
|
||||
See also :prop_tgt:`XCODE_EXPLICIT_FILE_TYPE`.
|
417
Help/release/3.8.rst
Normal file
417
Help/release/3.8.rst
Normal file
@ -0,0 +1,417 @@
|
||||
CMake 3.8 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.7 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
C#
|
||||
^^
|
||||
|
||||
* CMake learned to support ``CSharp`` (C#) as a first-class language that
|
||||
can be enabled via the :command:`project` and :command:`enable_language`
|
||||
commands. It is currently supported by the :ref:`Visual Studio Generators`
|
||||
for VS 2010 and above.
|
||||
|
||||
C# assemblies and programs can be added just like common C++ targets using
|
||||
the :command:`add_library` and :command:`add_executable` commands.
|
||||
References between C# targets in the same source tree may be specified by
|
||||
:command:`target_link_libraries` like for C++. References to system or
|
||||
3rd-party assemblies may be specified by the target properties
|
||||
:prop_tgt:`VS_DOTNET_REFERENCE_<refname>` and
|
||||
:prop_tgt:`VS_DOTNET_REFERENCES`.
|
||||
|
||||
* More fine tuning of C# targets may be done using target and source
|
||||
file properties. Specifically the target properties related to
|
||||
Visual Studio (``VS_*``) are worth a look (for setting toolset
|
||||
versions, root namespaces, assembly icons, ...).
|
||||
|
||||
CUDA
|
||||
^^^^
|
||||
|
||||
* CMake learned to support ``CUDA`` as a first-class language that can be
|
||||
enabled via the :command:`project` and :command:`enable_language` commands.
|
||||
|
||||
* ``CUDA`` is currently supported by the :ref:`Makefile Generators`
|
||||
and the :generator:`Ninja` generator on Linux, macOS, and Windows.
|
||||
Support for the Visual Studio IDE is under development but not
|
||||
included in this release.
|
||||
|
||||
* The NVIDIA CUDA Toolkit compiler (``nvcc``) is supported.
|
||||
|
||||
C & C++
|
||||
^^^^^^^
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
now offers meta-features that request compiler modes for specific language
|
||||
standard levels (e.g. ``cxx_std_11``). See
|
||||
:prop_gbl:`CMAKE_C_KNOWN_FEATURES` and :prop_gbl:`CMAKE_CXX_KNOWN_FEATURES`.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of C++ 17. No specific features are yet enumerated besides
|
||||
the ``cxx_std_17`` meta-feature.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of the availability of C99 in gcc since version 3.4.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* A new minimal platform file for ``Fuchsia`` was added.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`CodeBlocks` extra generator may now be used to
|
||||
generate with :generator:`NMake Makefiles JOM`.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2013 and above learned to
|
||||
support a ``host=x64`` option in the :variable:`CMAKE_GENERATOR_TOOLSET`
|
||||
value (e.g. via the :manual:`cmake(1)` ``-T`` option) to request use
|
||||
of a VS 64-bit toolchain on 64-bit hosts.
|
||||
|
||||
* The :ref:`Visual Studio Generators` learned to treat files passed to
|
||||
:command:`target_link_libraries` whose names end in ``.targets``
|
||||
as MSBuild "targets" files to be imported into generated project files.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target` commands
|
||||
learned the option ``COMMAND_EXPAND_LISTS`` which causes lists in the
|
||||
``COMMAND`` argument to be expanded, including lists created by generator
|
||||
expressions.
|
||||
|
||||
* The :command:`execute_process` command gained an ``ENCODING`` option to
|
||||
specify on Windows which encoding is used for output from child process.
|
||||
|
||||
* The :command:`math(EXPR)` command gained support for unary
|
||||
``+`` and ``-`` operators.
|
||||
|
||||
* The :command:`source_group` command gained ``TREE`` and ``PREFIX``
|
||||
options to add groups following source tree directory structure.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` command learned to treat ``%%``
|
||||
as a way to encode plain ``%``.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` command will now honor the
|
||||
``SOURCE_DATE_EPOCH`` environment variable and use its value
|
||||
instead of the current time.
|
||||
|
||||
* The :command:`try_compile` command source file signature gained new options
|
||||
to specify the language standard to use in the generated test project.
|
||||
|
||||
* The :command:`try_compile` command source file signature now honors
|
||||
language standard variables like :variable:`CMAKE_CXX_STANDARD`.
|
||||
See policy :policy:`CMP0067`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_CODELITE_USE_TARGETS` variable was added to tell the
|
||||
:generator:`CodeLite` extra generator to change the generated project
|
||||
to have target-centric organization.
|
||||
The ``build``, ``rebuild``, and ``clean`` operations within ``CodeLite``
|
||||
then work on a selected target rather than the whole workspace.
|
||||
(Note that the :generator:`Ninja` clean operation on a target
|
||||
includes its dependencies, though.)
|
||||
|
||||
* The :variable:`CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS` variable was added to
|
||||
tell the :generator:`Sublime Text 2` extra generator to place specified
|
||||
environment variables in the generated ``.sublime-project``.
|
||||
|
||||
* The :variable:`CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE` variable was added
|
||||
to tell the :generator:`Sublime Text 2` extra generator whether to exclude
|
||||
the build tree from the ``.sublime-project`` when it is inside the source
|
||||
tree.
|
||||
|
||||
* A :variable:`CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD` variable was
|
||||
added to tell :ref:`Visual Studio Generators` for VS 2010 and above
|
||||
to include the ``PACKAGE`` target in the default build, similar to
|
||||
the existing :variable:`CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD`
|
||||
variable for the ``INSTALL`` target.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_tgt:`BUILD_RPATH` target property and corresponding
|
||||
:variable:`CMAKE_BUILD_RPATH` variable were added to support custom
|
||||
``RPATH`` locations to be added to binaries in the build tree.
|
||||
|
||||
* The :prop_sf:`COMPILE_FLAGS` source file property learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`FRAMEWORK` target property may now also be applied to
|
||||
static libraries on Apple targets. It will result in a proper
|
||||
Framework but with a static library inside.
|
||||
|
||||
* :ref:`Imported <Imported Targets>` :ref:`Interface Libraries` learned new
|
||||
:prop_tgt:`IMPORTED_LIBNAME` and :prop_tgt:`IMPORTED_LIBNAME_<CONFIG>`
|
||||
target properties to specify a link library name since interface libraries
|
||||
do not build their own library files.
|
||||
|
||||
* A :prop_tgt:`<LANG>_CPPLINT` target property and supporting
|
||||
:variable:`CMAKE_<LANG>_CPPLINT` variable were introduced to tell
|
||||
the :ref:`Makefile Generators` and the :generator:`Ninja` generator to
|
||||
run the ``cpplint`` style checker along with the compiler for ``C`` and
|
||||
``CXX`` languages.
|
||||
|
||||
* A :prop_tgt:`MANUALLY_ADDED_DEPENDENCIES` target property has been added.
|
||||
It provides a read-only list of dependencies that have been added with
|
||||
the :command:`add_dependencies` command.
|
||||
|
||||
* The :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` target property learned
|
||||
to interpret empty list elements as referring to the configuration-less
|
||||
imported location specified by :prop_tgt:`IMPORTED_LOCATION`.
|
||||
|
||||
* The :prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target property is now supported
|
||||
on :ref:`Imported <Imported Targets>` :ref:`Interface Libraries`.
|
||||
|
||||
* New source file properties :prop_sf:`SKIP_AUTOMOC`, :prop_sf:`SKIP_AUTOUIC`,
|
||||
:prop_sf:`SKIP_AUTORCC`, and :prop_sf:`SKIP_AUTOGEN` were added to allow
|
||||
source files to be excluded from processing by :prop_tgt:`AUTOMOC`,
|
||||
:prop_tgt:`AUTOUIC`, and :prop_tgt:`AUTORCC` target properties.
|
||||
|
||||
* A :prop_sf:`VS_COPY_TO_OUT_DIR` source file property was added to
|
||||
tell :ref:`Visual Studio Generators` for VS 2010 and above whether
|
||||
or not a file should e copied to the output directory.
|
||||
|
||||
* A :prop_tgt:`VS_DEBUGGER_WORKING_DIRECTORY` target property was added
|
||||
to tell :ref:`Visual Studio Generators` for VS 2010 and above what
|
||||
debugger working directory should be set for the target.
|
||||
|
||||
* A :prop_tgt:`VS_DOTNET_REFERENCES_COPY_LOCAL` target property was added
|
||||
to specify whether to copy referenced assemblies to the output directory.
|
||||
|
||||
* A :prop_tgt:`VS_DOTNET_REFERENCE_<refname>` target property was added
|
||||
to tell :ref:`Visual Studio Generators` for VS 2010 and above to add
|
||||
a .NET reference with a given hint path.
|
||||
|
||||
* A :prop_sf:`VS_INCLUDE_IN_VSIX` source file property was added to
|
||||
tell :ref:`Visual Studio Generators` for VS 2010 and above whether
|
||||
to include the file in a Visual Studio extension package.
|
||||
|
||||
* A :prop_sf:`VS_RESOURCE_GENERATOR` source file property was added to
|
||||
give :ref:`Visual Studio Generators` for VS 2010 and above a setting
|
||||
for the resource generator (``C#`` only).
|
||||
|
||||
* A :prop_tgt:`VS_USER_PROPS` target property was added to tell
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above to use a
|
||||
custom MSBuild user ``.props`` file.
|
||||
|
||||
* A :prop_gbl:`XCODE_EMIT_EFFECTIVE_PLATFORM_NAME` global property was
|
||||
added to tell the :generator:`Xcode` generator whether to emit the
|
||||
``EFFECTIVE_PLATFORM_NAME`` variable. This is useful when building
|
||||
with multiple SDKs like ``macosx`` and ``iphoneos`` in parallel.
|
||||
|
||||
* New :prop_tgt:`XCODE_PRODUCT_TYPE` and :prop_tgt:`XCODE_EXPLICIT_FILE_TYPE`
|
||||
target properties were created to tell the :generator:`Xcode` generator
|
||||
to use custom values of the corresponding attributes for a target in the
|
||||
generated Xcode project.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* A :module:`CSharpUtilities` module was added to aid parameterization of
|
||||
Visual Studio C# targets. It provides functions to allow automated
|
||||
setting of source file properties to support Windows Forms, WPF/XAML or
|
||||
other technologies as needed.
|
||||
|
||||
* The :module:`ExternalData` module learned to support multiple
|
||||
content links for one data file using different hashes, e.g.
|
||||
``img.png.sha256`` and ``img.png.sha1``. This allows objects
|
||||
to be fetched from sources indexed by different hash algorithms.
|
||||
|
||||
* The :module:`ExternalProject` module gained the ``GIT_PROGRESS`` option to
|
||||
force Git to show progress when cloning repositories.
|
||||
|
||||
* The :module:`ExternalProject` module gained a ``GIT_CONFIG`` option
|
||||
to pass ``--config`` options to Git when cloning repositories.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`feature_summary` command now
|
||||
accepts a new ``QUIET_ON_EMPTY`` option that suppresses the output when
|
||||
the list of packages that belong to the selected category is empty.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`add_feature_info` command
|
||||
now accepts lists of dependencies for deciding whether a feature is enabled
|
||||
or not.
|
||||
|
||||
* The package types accepted by the :module:`FeatureSummary` module can now
|
||||
be tweaked by changing the :variable:`FeatureSummary_PKG_TYPES`,
|
||||
:variable:`FeatureSummary_REQUIRED_PKG_TYPES` and
|
||||
:variable:`FeatureSummary_DEFAULT_PKG_TYPE` global properties.
|
||||
|
||||
* The :module:`FindOpenGL` module now provides imported targets
|
||||
``OpenGL::GL`` and ``OpenGL::GLU`` when the libraries are found.
|
||||
|
||||
* The :module:`UseSWIG` module gained a ``swig_add_library`` command
|
||||
to give more flexibility over the old ``swig_add_module`` command.
|
||||
|
||||
* The :module:`UseSWIG` module ``swig_add_source_to_module`` command
|
||||
learned a new ``SWIG_OUTFILE_DIR`` option to control the output
|
||||
file location (``swig -o``).
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module gained the
|
||||
``ALLOW_UNKNOWN_COMPILERS`` and ``ALLOW_UNKNOWN_COMPILER_VERSIONS`` options
|
||||
that allow creation of headers that will work also with unknown or old
|
||||
compilers by simply assuming they do not support any of the requested
|
||||
features.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_memcheck` command gained a ``DEFECT_COUNT <var>``
|
||||
option to capture the number of memory defects detected.
|
||||
|
||||
* The :command:`ctest_memcheck` command learned to read the location of
|
||||
suppressions files for sanitizers from the
|
||||
:variable:`CTEST_MEMORYCHECK_SUPPRESSIONS_FILE` variable.
|
||||
|
||||
* The :command:`ctest_memcheck` command learned to support ``LeakSanitizer``
|
||||
independently from ``AddressSanitizer``.
|
||||
|
||||
* The :command:`ctest_update` command ``CDASH_UPLOAD`` signature was taught
|
||||
to honor the ``RETRY_COUNT``, ``RETRY_DELAY``, and ``QUIET`` options.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :module:`CPackIFWConfigureFile` module was added to define a new
|
||||
:command:`cpack_ifw_configure_file` command to configure file templates
|
||||
prepared in QtIFW/SDK/Creator style.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained a new
|
||||
``DEFAULT``, ``VIRTUAL``, ``FORCED_INSTALLATION``, ``REQUIRES_ADMIN_RIGHTS``,
|
||||
``DISPLAY_NAME``, ``UPDATE_TEXT``, ``DESCRIPTION``, ``RELEASE_DATE``,
|
||||
``AUTO_DEPEND_ON`` and ``TRANSLATIONS`` options to more specific
|
||||
configuration.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component`
|
||||
command gained a new ``DEPENDENCIES`` alias for ``DEPENDS`` option.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component_group`
|
||||
command gained a new ``DEPENDS`` option. The ``DEPENDENCIES`` alias also
|
||||
added.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands ``PRIORITY``
|
||||
option now is deprecated and will be removed in a future version of CMake.
|
||||
Please use new ``SORTING_PRIORITY`` option instead.
|
||||
|
||||
* The :module:`CPackIFW` module gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_WATERMARK`,
|
||||
:variable:`CPACK_IFW_PACKAGE_BANNER`,
|
||||
:variable:`CPACK_IFW_PACKAGE_BACKGROUND`,
|
||||
:variable:`CPACK_IFW_PACKAGE_WIZARD_STYLE`,
|
||||
:variable:`CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH`,
|
||||
:variable:`CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT`, and
|
||||
:variable:`CPACK_IFW_PACKAGE_TITLE_COLOR`
|
||||
variables to customize a QtIFW installer look.
|
||||
|
||||
* The :module:`CPackProductBuild` module gained options to sign packages.
|
||||
See the variables :variable:`CPACK_PRODUCTBUILD_IDENTITY_NAME`,
|
||||
:variable:`CPACK_PRODUCTBUILD_KEYCHAIN_PATH`,
|
||||
:variable:`CPACK_PKGBUILD_IDENTITY_NAME`, and
|
||||
:variable:`CPACK_PKGBUILD_KEYCHAIN_PATH`.
|
||||
|
||||
* The :module:`CPackRPM` module learned to omit tags that are not supported by
|
||||
provided ``rpmbuild`` tool. If unsupported tags are set they are ignored
|
||||
and a developer warning is printed out.
|
||||
|
||||
* The :module:`CPackRPM` module learned to generate main component package
|
||||
which forces generation of a rpm for defined component without component
|
||||
suffix in filename and package name.
|
||||
See :variable:`CPACK_RPM_MAIN_COMPONENT` variable.
|
||||
|
||||
* The :module:`CPackRPM` module learned to generate a single ``debuginfo``
|
||||
package on demand even if components packaging is used.
|
||||
See :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` variable.
|
||||
|
||||
* The :module:`CPackRPM` module learned to support
|
||||
multiple directives per file when using
|
||||
:variable:`CPACK_RPM_USER_FILELIST` variable.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* CMake functionality using cryptographic hashes now supports SHA-3 algorithms.
|
||||
|
||||
* A new generator expression ``$<IF:cond,true-value,false-value>`` was added.
|
||||
It resolves to the true-value if the condition is ``1`` and resolves to
|
||||
the false-value if the condition is ``0``.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :module:`FeatureSummary` module commands :command:`set_package_info`,
|
||||
:command:`set_feature_info`, :command:`print_enabled_features`, and
|
||||
:command:`print_disabled_features` are now deprecated.
|
||||
|
||||
* The :module:`UseSWIG` module ``swig_add_module`` command is now
|
||||
deprecated in favor of ``swig_add_library``.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* If a command specified by the :prop_tgt:`<LANG>_CLANG_TIDY` target property
|
||||
returns non-zero at build time this is now treated as an error instead of
|
||||
silently ignored.
|
||||
|
||||
* The :command:`ctest_memcheck` command no longer automatically adds
|
||||
``leak_check=1`` to the options used by ``AddressSanitizer``. The default
|
||||
behavior of ``AddressSanitizer`` is to run `LeakSanitizer` to check leaks
|
||||
unless ``leak_check=0``.
|
||||
|
||||
* The :command:`ctest_memcheck` command was fixed to correctly append extra
|
||||
sanitizer options read from the
|
||||
:variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS` variable to the environment
|
||||
variables used internally by the sanitizers.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`set_package_properties`
|
||||
command no longer forces the package type to ``OPTIONAL`` when the type
|
||||
is not explicitly set.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by Intel C++ compilers versions 12.1
|
||||
through 17.0 on UNIX and Windows platforms.
|
||||
|
||||
* Calls to the :module:`FindPkgConfig` module :command:`pkg_check_modules`
|
||||
command following a successful call learned to re-evaluate the cached values
|
||||
for a given prefix after changes to the parameters to the command for that
|
||||
prefix.
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`, generated
|
||||
``moc_*``, ``*.moc`` and ``ui_*`` are placed in the
|
||||
``<CMAKE_CURRENT_BINARY_DIR>/<TARGETNAME>_autogen/include`` directory which
|
||||
is automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
It is therefore not necessary anymore to have
|
||||
:variable:`CMAKE_CURRENT_BINARY_DIR` in the target's
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
|
||||
* The :generator:`Sublime Text 2` generator no longer runs the native
|
||||
build command (e.g. ``ninja`` or ``make``) with verbose build output
|
||||
enabled.
|
||||
|
||||
* The :command:`try_compile` command source file signature now
|
||||
honors the :variable:`CMAKE_WARN_DEPRECATED` variable value
|
||||
in the generated test project.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2010 and above now place
|
||||
per-source file flags after target-wide flags when they are classified
|
||||
as raw flags with no project file setting (``AdditionalOptions``).
|
||||
This behavior is more consistent with the ordering of flags produced
|
||||
by other generators, and allows flags on more-specific properties
|
||||
(per-source) to override those on more general ones (per-target).
|
||||
|
||||
* The precompiled Windows binary MSI package provided on ``cmake.org`` now
|
||||
records the installation directory in the Windows Registry under the key
|
||||
``HKLM\Software\Kitware\CMake`` with a value named ``InstallDir``.
|
@ -11,6 +11,7 @@ Releases
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3.8 <3.8>
|
||||
3.7 <3.7>
|
||||
3.6 <3.6>
|
||||
3.5 <3.5>
|
||||
|
10
Help/variable/CMAKE_BUILD_RPATH.rst
Normal file
10
Help/variable/CMAKE_BUILD_RPATH.rst
Normal file
@ -0,0 +1,10 @@
|
||||
CMAKE_BUILD_RPATH
|
||||
-----------------
|
||||
|
||||
A :ref:`;-list <CMake Language Lists>` specifying runtime path (``RPATH``)
|
||||
entries to add to binaries linked in the build tree (for platforms that
|
||||
support it). The entries will *not* be used for binaries in the install
|
||||
tree. See also the :variable:`CMAKE_INSTALL_RPATH` variable.
|
||||
|
||||
This is used to initialize the :prop_tgt:`BUILD_RPATH` target property
|
||||
for all targets.
|
@ -1,6 +1,7 @@
|
||||
CMAKE_CL_64
|
||||
-----------
|
||||
|
||||
Using the 64-bit compiler from Microsoft
|
||||
Discouraged. Use :variable:`CMAKE_SIZEOF_VOID_P` instead.
|
||||
|
||||
Set to ``true`` when using the 64-bit ``cl`` compiler from Microsoft.
|
||||
Set to a true value when using a Microsoft Visual Studio ``cl`` compiler that
|
||||
*targets* a 64-bit architecture.
|
||||
|
11
Help/variable/CMAKE_CUDA_EXTENSIONS.rst
Normal file
11
Help/variable/CMAKE_CUDA_EXTENSIONS.rst
Normal file
@ -0,0 +1,11 @@
|
||||
CMAKE_CUDA_EXTENSIONS
|
||||
---------------------
|
||||
|
||||
Default value for :prop_tgt:`CUDA_EXTENSIONS` property of targets.
|
||||
|
||||
This variable is used to initialize the :prop_tgt:`CUDA_EXTENSIONS`
|
||||
property on all targets. See that target property for additional
|
||||
information.
|
||||
|
||||
See the :manual:`cmake-compile-features(7)` manual for information on
|
||||
compile features and a list of supported compilers.
|
11
Help/variable/CMAKE_CUDA_STANDARD.rst
Normal file
11
Help/variable/CMAKE_CUDA_STANDARD.rst
Normal file
@ -0,0 +1,11 @@
|
||||
CMAKE_CUDA_STANDARD
|
||||
-------------------
|
||||
|
||||
Default value for :prop_tgt:`CUDA_STANDARD` property of targets.
|
||||
|
||||
This variable is used to initialize the :prop_tgt:`CUDA_STANDARD`
|
||||
property on all targets. See that target property for additional
|
||||
information.
|
||||
|
||||
See the :manual:`cmake-compile-features(7)` manual for information on
|
||||
compile features and a list of supported compilers.
|
11
Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
Normal file
11
Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
Normal file
@ -0,0 +1,11 @@
|
||||
CMAKE_CUDA_STANDARD_REQUIRED
|
||||
----------------------------
|
||||
|
||||
Default value for :prop_tgt:`CUDA_STANDARD_REQUIRED` property of targets.
|
||||
|
||||
This variable is used to initialize the :prop_tgt:`CUDA_STANDARD_REQUIRED`
|
||||
property on all targets. See that target property for additional
|
||||
information.
|
||||
|
||||
See the :manual:`cmake-compile-features(7)` manual for information on
|
||||
compile features and a list of supported compilers.
|
7
Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
Normal file
7
Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
Normal file
@ -0,0 +1,7 @@
|
||||
CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
|
||||
--------------------------------------
|
||||
|
||||
When the ``CUDA`` language has been enabled, this provides a
|
||||
:ref:`;-list <CMake Language Lists>` of include directories provided
|
||||
by the CUDA Toolkit. The value may be useful for C++ source files
|
||||
to include CUDA headers.
|
@ -1,7 +1,7 @@
|
||||
CMAKE_DL_LIBS
|
||||
-------------
|
||||
|
||||
Name of library containing ``dlopen`` and ``dlcose``.
|
||||
Name of library containing ``dlopen`` and ``dlclose``.
|
||||
|
||||
The name of the library that has ``dlopen`` and ``dlclose`` in it, usually
|
||||
``-ldl`` on most UNIX machines.
|
||||
|
@ -23,6 +23,7 @@ include:
|
||||
Intel = Intel Compiler (intel.com)
|
||||
MIPSpro = SGI MIPSpro (sgi.com)
|
||||
MSVC = Microsoft Visual Studio (microsoft.com)
|
||||
NVIDIA = NVIDIA CUDA Compiler (nvidia.com)
|
||||
OpenWatcom = Open Watcom (openwatcom.org)
|
||||
PGI = The Portland Group (pgroup.com)
|
||||
PathScale = PathScale (pathscale.com)
|
||||
|
6
Help/variable/CMAKE_LANG_CPPLINT.rst
Normal file
6
Help/variable/CMAKE_LANG_CPPLINT.rst
Normal file
@ -0,0 +1,6 @@
|
||||
CMAKE_<LANG>_CPPLINT
|
||||
--------------------
|
||||
|
||||
Default value for :prop_tgt:`<LANG>_CPPLINT` target property. This variable
|
||||
is used to initialize the property on each target as it is created. This
|
||||
is done only when ``<LANG>`` is ``C`` or ``CXX``.
|
@ -17,6 +17,8 @@ warn by default:
|
||||
policy :policy:`CMP0065`.
|
||||
* ``CMAKE_POLICY_WARNING_CMP0066`` controls the warning for
|
||||
policy :policy:`CMP0066`.
|
||||
* ``CMAKE_POLICY_WARNING_CMP0067`` controls the warning for
|
||||
policy :policy:`CMP0067`.
|
||||
|
||||
This variable should not be set by a project in CMake code. Project
|
||||
developers running CMake may set this variable in their cache to
|
||||
|
25
Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
Normal file
25
Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
Normal file
@ -0,0 +1,25 @@
|
||||
CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
|
||||
---------------------------------
|
||||
|
||||
This variable contains a list of env vars as a list of tokens with the
|
||||
syntax ``var=value``.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
|
||||
"FOO=FOO1\;FOO2\;FOON"
|
||||
"BAR=BAR1\;BAR2\;BARN"
|
||||
"BAZ=BAZ1\;BAZ2\;BAZN"
|
||||
"FOOBAR=FOOBAR1\;FOOBAR2\;FOOBARN"
|
||||
"VALID="
|
||||
)
|
||||
|
||||
In case of malformed variables CMake will fail:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
|
||||
"THIS_IS_NOT_VALID"
|
||||
)
|
@ -0,0 +1,7 @@
|
||||
CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE
|
||||
---------------------------------------
|
||||
|
||||
If this variable evaluates to ``ON`` at the end of the top-level
|
||||
``CMakeLists.txt`` file, the :generator:`Sublime Text 2` extra generator
|
||||
excludes the build tree from the ``.sublime-project`` if it is inside the
|
||||
source tree.
|
@ -0,0 +1,8 @@
|
||||
CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD
|
||||
-----------------------------------------
|
||||
|
||||
Include ``PACKAGE`` target to default build.
|
||||
|
||||
In Visual Studio solution, by default the ``PACKAGE`` target will not be part
|
||||
of the default build. Setting this variable will enable the ``PACKAGE`` target
|
||||
to be part of the default build.
|
@ -0,0 +1,10 @@
|
||||
CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
|
||||
-------------------------------------------
|
||||
|
||||
Visual Studio preferred tool architecture.
|
||||
|
||||
The :ref:`Visual Studio Generators` for VS 2013 and above support optional
|
||||
selection of a 64-bit toolchain on 64-bit hosts by specifying a ``host=x64``
|
||||
value in the :variable:`CMAKE_GENERATOR_TOOLSET` option. CMake provides
|
||||
the selected toolchain architecture preference in this variable (either
|
||||
``x64`` or empty).
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user