mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
Merge topic 'doc-3.23-relnotes'
9334b5bd7bHelp: Update Sphinx versionadded directives for 3.23 releasee61969c59eHelp: Organize and revise 3.23 release notesf5bdea75a0Help: Consolidate 3.23 release notesef23e81544Help: Remove stray leading blank lines from release notes51aaea34d6Help: Polish CMAKE{,_SYSTEM}_IGNORE_PREFIX_PATH documentation23b1d8f03cCheckPIESupported: Document version adding support for more languages Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6936
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
IMPORTED_NO_SYSTEM
|
||||
------------------
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
Specifies that an :ref:`Imported Target <Imported Targets>` is not
|
||||
a ``SYSTEM`` library. This has the following effects:
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
INTERFACE_LINK_LIBRARIES_DIRECT
|
||||
-------------------------------
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
List of libraries that consumers of this library should treat
|
||||
as direct link dependencies.
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE
|
||||
---------------------------------------
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
List of libraries that consumers of this library should *not* treat
|
||||
as direct link dependencies.
|
||||
|
||||
|
||||
253
Help/release/3.23.rst
Normal file
253
Help/release/3.23.rst
Normal file
@@ -0,0 +1,253 @@
|
||||
CMake 3.23 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.22 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support schema version ``4``.
|
||||
|
||||
* :manual:`cmake-presets(7)` files now have an optional ``include`` field,
|
||||
which allows the files to include other files.
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for specifying the
|
||||
``resolvePackageReferences`` command line option in a build preset.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2019 and above learned to
|
||||
support .NET SDK-style project files (``.csproj``) for C# projects.
|
||||
See the :prop_tgt:`DOTNET_SDK` target property and corresponding
|
||||
:variable:`CMAKE_DOTNET_SDK` variable. :command:`add_custom_command`
|
||||
is not yet supported in .NET SDK-style projects.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2017 and above learned to
|
||||
use portable instances of Visual Studio not known to the VS installer.
|
||||
See the :variable:`CMAKE_GENERATOR_INSTANCE` variable.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :manual:`cmake(1)` ``--build`` command, when used with
|
||||
:ref:`Visual Studio Generators` on projects that set the
|
||||
:prop_tgt:`VS_PACKAGE_REFERENCES` target property, now automatically
|
||||
restores package references from NuGet. The cache variable
|
||||
:variable:`CMAKE_VS_NUGET_PACKAGE_RESTORE` may be set to toggle this behavior
|
||||
in a build tree. Use the ``--resolve-package-references=<on|off|only>``
|
||||
command-line option to control the behavior on one invocation.
|
||||
|
||||
* The :manual:`cmake(1)` command line tool gained a ``--debug-find-pkg=``
|
||||
option to enable debug messages under specific :command:`find_package`
|
||||
calls.
|
||||
|
||||
* The :manual:`cmake(1)` command line tool gained a ``--debug-find-var=``
|
||||
option to enable debug messages for ``find_*`` calls that use specific
|
||||
result variables.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
|
||||
compiler id ``IBMClang``.
|
||||
|
||||
* The MCST LCC compiler is now supported with compiler id ``LCC``.
|
||||
See policy :policy:`CMP0129`.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field
|
||||
has been updated to ``2.4``.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``directory``
|
||||
object ``installers`` field gained a new ``fileSet`` installer type.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`define_property` command gained a new
|
||||
``INITIALIZE_FROM_VARIABLE`` option to cause a target property to be
|
||||
initialized from a variable when a target is created.
|
||||
|
||||
* The :command:`install(TARGETS)` command gained a new ``FILE_SET`` argument,
|
||||
which can be used to install header file sets associated with a target.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands now
|
||||
support the ``%f`` specifier for microseconds.
|
||||
|
||||
* The :command:`target_sources` command gained a new ``FILE_SET`` mode, which
|
||||
can be used to add headers as header-only source files of a target.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_CUDA_ARCHITECTURES` variable and associated
|
||||
:prop_tgt:`CUDA_ARCHITECTURES` target property now support the
|
||||
``all``, and ``all-major`` values for CUDA toolkit 7.0+.
|
||||
|
||||
* The :variable:`CMAKE_IGNORE_PREFIX_PATH` and
|
||||
:variable:`CMAKE_SYSTEM_IGNORE_PREFIX_PATH` variables were added
|
||||
to tell the :command:`find_package`, :command:`find_program`,
|
||||
:command:`find_library`, :command:`find_path`, and :command:`find_file`
|
||||
commands to ignore specified prefixes.
|
||||
|
||||
* The :variable:`CMAKE_LINK_LIBRARIES_ONLY_TARGETS` variable and
|
||||
corresponding :prop_tgt:`LINK_LIBRARIES_ONLY_TARGETS` target
|
||||
property were added to optionally require that all link items
|
||||
that can be target names are actually names of existing targets.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`HEADER_SETS` and :prop_tgt:`INTERFACE_HEADER_SETS` target
|
||||
properties were added to list header sets associated with a target.
|
||||
|
||||
* The :prop_tgt:`HEADER_SET` and :prop_tgt:`HEADER_SET_<NAME>` target
|
||||
properties were added to list files in the default header set
|
||||
and named header sets, respectively.
|
||||
|
||||
* The :prop_tgt:`HEADER_DIRS` and :prop_tgt:`HEADER_DIRS_<NAME>` target
|
||||
properties were added to specify the base directories of the default
|
||||
header set and named header sets, respectively.
|
||||
|
||||
* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property was added to
|
||||
specify that an :ref:`Imported Target <Imported Targets>` should
|
||||
not be treated as a system library (i.e. its include directories
|
||||
are not automatically ``SYSTEM``).
|
||||
|
||||
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` and
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE` target properties
|
||||
were added to express usage requirements affecting a consumer's
|
||||
direct link dependencies.
|
||||
|
||||
* The :prop_tgt:`XCODE_EMBED_PLUGINS <XCODE_EMBED_<type>>` target property
|
||||
was added to tell the :generator:`Xcode` generator what targets to put in
|
||||
the ``Embed PlugIns`` build phase.
|
||||
|
||||
* The :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE` target property
|
||||
and supporting :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE`
|
||||
variable were added to tell the :generator:`Xcode` generator to enable
|
||||
specifying the Xcode scheme option property ``GPU Frame Capture``.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckPIESupported` module now supports the ``OBJC``,
|
||||
``OBJCXX``, ``CUDA``, and ``HIP`` languages. It also now honors
|
||||
:variable:`CMAKE_SYSROOT` and :variable:`CMAKE_OSX_SYSROOT`.
|
||||
|
||||
* The :module:`FindCUDAToolkit` module now provides a target for
|
||||
``libcufft_static_nocallback``, if found.
|
||||
|
||||
* The :module:`FindGLUT` module now provides the ``GLUT_INCLUDE_DIRS``
|
||||
result variable to conform with naming conventions documented in the
|
||||
:manual:`cmake-developer(7)` manual. This supersedes the legacy
|
||||
``GLUT_INCLUDE_DIR`` variable.
|
||||
|
||||
* The :module:`FindGTest` module now provides a target for GMock, if found.
|
||||
|
||||
* The :module:`FindVulkan` module now provides a ``Vulkan_VERSION`` result
|
||||
variable reporting the version number.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a new :variable:`CTEST_SUBMIT_INACTIVITY_TIMEOUT`
|
||||
variable, which can be used to specify a timeout for submission inactivity.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained the new
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS`,
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE`,
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_USER`, and
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_ROOT` variables for
|
||||
adding the domains element to the Distribution XML.
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained a new variable,
|
||||
:variable:`CPACK_PRODUCTBUILD_IDENTIFIER`, used to customize the unique
|
||||
product identifier associated with the product.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_ARCHIVE_FORMAT` and
|
||||
:variable:`CPACK_IFW_ARCHIVE_COMPRESSION` variables for setting the
|
||||
format used when packaging new component data archives, and choosing
|
||||
the compression level used.
|
||||
These features are available for QtIFW 4.2 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE` variable to
|
||||
prevent the user from passing any consumer command to the installer, like
|
||||
``install``, ``update``, and ``remove``.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGES` variable for adding a
|
||||
list of images to be shown on the ``PerformInstallationPage``.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM`,
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS`, and
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION` variables for
|
||||
executing a command after the installer is done if the user accepts
|
||||
the action. This feature is available for QtIFW 4.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_SIGNING_IDENTITY` variable for specifying a
|
||||
code signing identity to be used for signing the generated app bundle.
|
||||
This feature is available on macOS only, and for QtIFW 3.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` gained a new variable,
|
||||
:variable:`CPACK_WIX_SKIP_WIX_UI_EXTENSION`, to skip the inclusion
|
||||
of WixUIExtensions.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :manual:`cpack(1)` undocumented ``OSXX11`` generator has been removed.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` no longer attaches
|
||||
:variable:`CPACK_RESOURCE_FILE_LICENSE` as the license agreement in
|
||||
the generated ``.dmg`` unless explicitly activated by a
|
||||
:variable:`CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE` option.
|
||||
In CMake projects, the :module:`CPack` module enables the option
|
||||
by default for compatibility.
|
||||
|
||||
* ``CUDA`` targets may now enable both :prop_tgt:`CUDA_SEPARABLE_COMPILATION`
|
||||
and :prop_tgt:`CUDA_PTX_COMPILATION`.
|
||||
|
||||
* ``CUDA`` compiler detection now:
|
||||
|
||||
* issues an error in all cases when it's unable to compute the default
|
||||
architecture(s) if required (see :policy:`CMP0104`),
|
||||
|
||||
* handles ``OFF`` for :variable:`CMAKE_CUDA_ARCHITECTURES` on Clang,
|
||||
|
||||
* supports the theoretical case of multiple default architectures, and
|
||||
|
||||
* tries to detect invalid architectures and issue an error.
|
||||
|
||||
* ``CUDA`` with Clang now implements policy :policy:`CMP0105` and
|
||||
the ``$<DEVICE_LINK:...>`` and ``$<HOST_LINK:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :command:`define_property` command's ``BRIEF_DOCS`` and ``FULL_DOCS``
|
||||
arguments are now optional.
|
||||
|
||||
* :manual:`ccmake(1)` may now be enabled on Windows when building
|
||||
CMake from source. This is experimental, and so is not included
|
||||
in official distributions.
|
||||
@@ -1,6 +0,0 @@
|
||||
CheckPIESupported-supports-SYSROOT
|
||||
----------------------------------
|
||||
|
||||
* The :module:`CheckPIESupported` module now takes care of any ``SYSROOT``
|
||||
settings and gains the support of ``OBJC``, ``OBJCXX``, ``CUDA``, and ``HIP``
|
||||
languages.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindCUDAToolkit-target-for-cufft_static_nocallback
|
||||
--------------------------------------------------
|
||||
|
||||
* The :module:`FindCUDAToolkit` module now provides a target for
|
||||
``libcufft_static_nocallback``, if found.
|
||||
@@ -1,7 +0,0 @@
|
||||
FindGLUT-include-dirs
|
||||
---------------------
|
||||
|
||||
* The :module:`FindGLUT` module now provides the ``GLUT_INCLUDE_DIRS``
|
||||
result variable to conform with naming conventions documented in the
|
||||
:manual:`cmake-developer(7)` manual. This supersedes the legacy
|
||||
``GLUT_INCLUDE_DIR`` variable.
|
||||
@@ -1,4 +0,0 @@
|
||||
FindGTest-target-for-gmock
|
||||
--------------------------
|
||||
|
||||
* The :module:`FindGTest` module now provides a target for GMock, if found.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindVulkan-version
|
||||
------------------
|
||||
|
||||
* The :module:`FindVulkan` module gained a ``Vulkan_VERSION`` result
|
||||
variable reporting the version number.
|
||||
@@ -1,6 +0,0 @@
|
||||
ccmake-windows
|
||||
--------------
|
||||
|
||||
* :manual:`ccmake(1)` may now be enabled on Windows when building
|
||||
CMake from source. This is experimental, and so is not included
|
||||
in official distributions.
|
||||
@@ -1,7 +0,0 @@
|
||||
cmake-ignore-prefix-path
|
||||
------------------------
|
||||
|
||||
* :command:`find_package`, :command:`find_program`, :command:`find_library`,
|
||||
:command:`find_path`, and :command:`find_file` now recognize the
|
||||
:variable:`CMAKE_IGNORE_PREFIX_PATH` and
|
||||
:variable:`CMAKE_SYSTEM_IGNORE_PREFIX_PATH` variables.
|
||||
@@ -1,6 +0,0 @@
|
||||
cmake-presets-include
|
||||
---------------------
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support schema version ``4``.
|
||||
* :manual:`cmake-presets(7)` files now have an optional ``include`` field,
|
||||
which allows the files to include other files.
|
||||
@@ -1,9 +0,0 @@
|
||||
cpack-dmg-sla
|
||||
-------------
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` no longer attaches
|
||||
:variable:`CPACK_RESOURCE_FILE_LICENSE` as the license agreement in
|
||||
the generated ``.dmg`` unless explicitly activated by a
|
||||
:variable:`CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE` option.
|
||||
In CMake projects, the :module:`CPack` module enables the option
|
||||
by default for compatibility.
|
||||
@@ -1,4 +0,0 @@
|
||||
cpack-drop-osxx11
|
||||
-----------------
|
||||
|
||||
* The :manual:`cpack(1)` undocumented ``OSXX11`` generator has been removed.
|
||||
@@ -1,9 +0,0 @@
|
||||
cpack-productbuild-domains
|
||||
-----------------------------
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained the new
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS`,
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE`,
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_USER`, and
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_ROOT` variables for
|
||||
adding the domains element to the Distribution XML.
|
||||
@@ -1,6 +0,0 @@
|
||||
cpack-productbuild-identifier
|
||||
-----------------------------
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained a new variable,
|
||||
:variable:`CPACK_PRODUCTBUILD_IDENTIFIER`, used to customize the unique
|
||||
product identifier associated with the product.
|
||||
@@ -1,5 +0,0 @@
|
||||
cpack-wix-skip-ui-ext
|
||||
---------------------
|
||||
|
||||
* An option to the WiX Generator was added to be able to skip
|
||||
the inclusion of the WixUIExtensions
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
cpackifw-archive-format
|
||||
-----------------------
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_ARCHIVE_FORMAT` and
|
||||
:variable:`CPACK_IFW_ARCHIVE_COMPRESSION` variables for setting the format
|
||||
used when packaging new component data archives, and choosing the compression
|
||||
level used. These features are available for QtIFW 4.2 and newer.
|
||||
@@ -1,8 +0,0 @@
|
||||
cpackifw-package-disable-command-line-interface
|
||||
-----------------------------------------------
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE` variable to
|
||||
prevents the user from passing any consumer command to installer, like
|
||||
``install``, ``update``, and ``remove``.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
@@ -1,8 +0,0 @@
|
||||
|
||||
cpackifw-package-product-images
|
||||
-------------------------------
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGES` variable for adding a list of
|
||||
images to be shown on the ``PerformInstallationPage``.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
cpackifw-package-run-program
|
||||
----------------------------
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM`,
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS`, and
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION` variables for executing
|
||||
a command after the installer is done if the user accepts the action.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
@@ -1,7 +0,0 @@
|
||||
cpackifw-signing-identity
|
||||
-------------------------
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_SIGNING_IDENTITY` variable for specifying a code
|
||||
signing identity to be used for signing the generated app bundle.
|
||||
This feature is available on macOS only, and for QtIFW 3.0 and newer.
|
||||
@@ -1,5 +0,0 @@
|
||||
ctest_submit-inactivity-timeout
|
||||
-------------------------------
|
||||
|
||||
* :manual:`ctest(1)` gained a new :variable:`CTEST_SUBMIT_INACTIVITY_TIMEOUT`
|
||||
variable, which can be used to specify a timeout for submission inactivity.
|
||||
@@ -1,7 +0,0 @@
|
||||
cuda-clang-device-link-flags
|
||||
----------------------------
|
||||
|
||||
* Policy :policy:`CMP0105` and the ``$<DEVICE_LINK:...>`` and
|
||||
``$<HOST_LINK:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
are now supported for Clang.
|
||||
@@ -1,11 +0,0 @@
|
||||
cuda-compiler-detection-robustness
|
||||
----------------------------------
|
||||
|
||||
* CUDA compiler detection now issues an error in all cases when it's unable to
|
||||
compute the default architecture(s) if required (see :policy:`CMP0104`).
|
||||
|
||||
* CUDA compiler detection now correctly handles ``OFF`` for
|
||||
:variable:`CMAKE_CUDA_ARCHITECTURES` on Clang.
|
||||
|
||||
* CUDA compiler detection now supports the theoretical case of multiple default
|
||||
architectures.
|
||||
@@ -1,5 +0,0 @@
|
||||
cuda-invalid-architectures
|
||||
--------------------------
|
||||
|
||||
* CUDA compiler detection now tries to detect invalid architectures and issue
|
||||
an error.
|
||||
@@ -1,8 +0,0 @@
|
||||
cuda-new-arch-modes
|
||||
-------------------
|
||||
|
||||
* The :prop_tgt:`CUDA_ARCHITECTURES` target property now supports the
|
||||
`all`, and `all-major` values for CUDA toolkit 7.0+.
|
||||
|
||||
* The :variable:`CMAKE_CUDA_ARCHITECTURES` variable now supports the
|
||||
`all`, and `all-major` values for CUDA toolkit 7.0+.
|
||||
@@ -1,5 +0,0 @@
|
||||
cuda-ptx-separable-compilation
|
||||
------------------------------
|
||||
|
||||
* ``CUDA`` targets can now enable both :prop_tgt:`CUDA_SEPARABLE_COMPILATION` and
|
||||
:prop_tgt:`CUDA_PTX_COMPILATION`.
|
||||
@@ -1,5 +0,0 @@
|
||||
define-property-optional-args
|
||||
-----------------------------
|
||||
|
||||
* The :command:`define_property` ``BRIEF_DOCS`` and ``FULL_DOCS`` arguments are
|
||||
now optional.
|
||||
@@ -1,10 +0,0 @@
|
||||
filter-debug-find
|
||||
-----------------
|
||||
|
||||
* The :manual:`cmake(1)` command line tool's gained a
|
||||
``--debug-find-pkg=`` option to enable debug messages under specific
|
||||
:command:`find_package` calls.
|
||||
|
||||
* The :manual:`cmake(1)` command line tool gained a ``--debug-find-var=``
|
||||
option to enable debug messages for ``find_*`` calls that use specific
|
||||
result variables.
|
||||
@@ -1,5 +0,0 @@
|
||||
ibmclang-compiler
|
||||
-----------------
|
||||
|
||||
* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
|
||||
compiler id ``IBMClang``.
|
||||
@@ -1,7 +0,0 @@
|
||||
imported-no-system
|
||||
------------------
|
||||
|
||||
* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property was added to
|
||||
specify that an :ref:`Imported Target <Imported Targets>` should
|
||||
not be treated as a system library (i.e. its include directories
|
||||
are not automatically ``SYSTEM``).
|
||||
@@ -1,5 +0,0 @@
|
||||
lcc-compiler
|
||||
------------
|
||||
|
||||
* The MCST LCC compiler is now supported with compiler id ``LCC``.
|
||||
See policy :policy:`CMP0129`.
|
||||
@@ -1,7 +0,0 @@
|
||||
link-interface-direct
|
||||
---------------------
|
||||
|
||||
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` and
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE` target properties
|
||||
were added to express usage requirements affecting a consumer's
|
||||
direct link dependencies.
|
||||
@@ -1,7 +0,0 @@
|
||||
link-only-targets
|
||||
-----------------
|
||||
|
||||
* The :variable:`CMAKE_LINK_LIBRARIES_ONLY_TARGETS` variable and
|
||||
corresponding :prop_tgt:`LINK_LIBRARIES_ONLY_TARGETS` target
|
||||
property were added to optionally require that all link items
|
||||
that can be target names are actually names of existing targets.
|
||||
@@ -1,5 +0,0 @@
|
||||
target-properties-from-variables
|
||||
--------------------------------
|
||||
|
||||
* The :command:`define_property` command gained a new
|
||||
``INITIALIZE_FROM_VARIABLE`` argument.
|
||||
@@ -1,18 +0,0 @@
|
||||
target-headers
|
||||
--------------
|
||||
|
||||
* The :command:`target_sources` command gained a new ``FILE_SET`` mode, which
|
||||
can be used to add headers as header-only source files of a target.
|
||||
* New :prop_tgt:`HEADER_SETS` and :prop_tgt:`INTERFACE_HEADER_SETS` properties
|
||||
were added, which list the header file sets associated with a target.
|
||||
* New :prop_tgt:`HEADER_SET` and :prop_tgt:`HEADER_SET_<NAME>` properties were
|
||||
added, which list the files in the associated header file set.
|
||||
* New :prop_tgt:`HEADER_DIRS` and :prop_tgt:`HEADER_DIRS_<NAME>` properties
|
||||
were added, which specify the base directories of the associated header file
|
||||
set.
|
||||
* The :command:`install(TARGETS)` command gained a new ``FILE_SET`` argument,
|
||||
which can be used to install header file sets associated with a target.
|
||||
* The :manual:`File API <cmake-file-api(7)>` ``codemodel-v2`` minor version has
|
||||
been bumped to ``4``.
|
||||
* The :manual:`File API <cmake-file-api(7)>` ``codemodel-v2`` ``directory``
|
||||
object gained a new installer type of ``fileSet``.
|
||||
@@ -1,5 +0,0 @@
|
||||
timestamp-microseconds
|
||||
----------------------
|
||||
|
||||
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands now
|
||||
support the ``%f`` specifier for microseconds.
|
||||
@@ -1,9 +0,0 @@
|
||||
vs-csharp-dotnet-sdk
|
||||
--------------------
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2019 and above learned to
|
||||
support .NET SDK-style project files (``.csproj``) for C# projects.
|
||||
See the :prop_tgt:`DOTNET_SDK` target property and corresponding
|
||||
:variable:`CMAKE_DOTNET_SDK` variable.
|
||||
However, this version of CMake does not yet support using
|
||||
:command:`add_custom_command` in .NET SDK-style projects.
|
||||
@@ -1,6 +0,0 @@
|
||||
vs-instance
|
||||
-----------
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2017 and above learned to
|
||||
use portable instances of Visual Studio not known to the VS installer.
|
||||
See the :variable:`CMAKE_GENERATOR_INSTANCE` variable.
|
||||
@@ -1,13 +0,0 @@
|
||||
vs-package-restore
|
||||
------------------
|
||||
|
||||
* Targets with :prop_tgt:`VS_PACKAGE_REFERENCES` will now automatically attempt
|
||||
to restore the package references from NuGet. The cache variable
|
||||
:variable:`CMAKE_VS_NUGET_PACKAGE_RESTORE` was added to toggle automatic
|
||||
package restore off.
|
||||
|
||||
* :manual:`cmake(1)` gained the ``--resolve-package-references=<on|off|only>``
|
||||
command-line option to control automatic package restoration.
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for specifying the
|
||||
``resolvePackageReferences`` command line option in a build preset.
|
||||
@@ -1,6 +0,0 @@
|
||||
xcode-embed-plugins
|
||||
-------------------
|
||||
|
||||
* The :prop_tgt:`XCODE_EMBED_PLUGINS <XCODE_EMBED_<type>>` target property
|
||||
was added to tell the :generator:`Xcode` generator what targets to put in
|
||||
the ``Embed PlugIns`` build phase.
|
||||
@@ -1,4 +0,0 @@
|
||||
xcode-scheme-enable-gpu-frame-capture-mode
|
||||
------------------------------------------
|
||||
|
||||
* The Xcode project generation learned the variable `XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE` to enable specifying the Xcode scheme option property `GPU Frame Capture`.
|
||||
@@ -15,6 +15,7 @@ Releases
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3.23 <3.23>
|
||||
3.22 <3.22>
|
||||
3.21 <3.21>
|
||||
3.20 <3.20>
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
CMAKE_IGNORE_PREFIX_PATH
|
||||
------------------------
|
||||
|
||||
:ref:`Semicolon-separated list <CMake Language Lists>` of prefix to be *ignored* by
|
||||
the :command:`find_program`, :command:`find_library`, :command:`find_file`,
|
||||
:command:`find_path`, and :command:`find_package` commands. This is useful in cross-compiling
|
||||
environments where some system directories contain incompatible but
|
||||
possibly linkable libraries. For example, on cross-compiled cluster
|
||||
environments, this allows a user to ignore directories containing
|
||||
libraries meant for the front-end machine.
|
||||
.. versionadded:: 3.23
|
||||
|
||||
By default this is empty; it is intended to be set by the project.
|
||||
Note that ``CMAKE_IGNORE_PREFIX_PATH`` takes a list of prefixes, *not*
|
||||
a list of directory names.
|
||||
:ref:`Semicolon-separated list <CMake Language Lists>` of prefixes to be
|
||||
*ignored* by the :command:`find_program`, :command:`find_library`,
|
||||
:command:`find_file`, :command:`find_path`, and :command:`find_package`
|
||||
commands. This is useful in cross-compiling environments where some
|
||||
system directories contain incompatible but possibly linkable libraries.
|
||||
For example, on cross-compiled cluster environments, this allows a user
|
||||
to ignore directories containing libraries meant for the front-end machine.
|
||||
|
||||
By default this is empty; it is intended to be set by the project and/or
|
||||
the end user. Note that ``CMAKE_IGNORE_PREFIX_PATH`` takes a list of
|
||||
prefixes, *not* a list of directory names.
|
||||
|
||||
See also the :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_LIBRARY_PATH`,
|
||||
:variable:`CMAKE_INCLUDE_PATH`, and :variable:`CMAKE_PROGRAM_PATH` variables.
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
CMAKE_SYSTEM_IGNORE_PREFIX_PATH
|
||||
-------------------------------
|
||||
|
||||
:ref:`Semicolon-separated list <CMake Language Lists>` of prefixes to be *ignored* by
|
||||
the :command:`find_program`, :command:`find_library`, :command:`find_file`,
|
||||
:command:`find_path`, and :command:`find_package` commands. This is useful in cross-compiling
|
||||
environments where some system directories contain incompatible but
|
||||
possibly linkable libraries. For example, on cross-compiled cluster
|
||||
environments, this allows a user to ignore directories containing
|
||||
libraries meant for the front-end machine.
|
||||
.. versionadded:: 3.23
|
||||
|
||||
:ref:`Semicolon-separated list <CMake Language Lists>` of prefixes to be
|
||||
*ignored* by the :command:`find_program`, :command:`find_library`,
|
||||
:command:`find_file`, :command:`find_path`, and :command:`find_package`
|
||||
commands. This is useful in cross-compiling environments where some
|
||||
system directories contain incompatible but possibly linkable libraries.
|
||||
For example, on cross-compiled cluster environments, this allows a user
|
||||
to ignore directories containing libraries meant for the front-end machine.
|
||||
|
||||
By default this contains a list of directories containing incompatible
|
||||
binaries for the host system. See the :variable:`CMAKE_IGNORE_PREFIX_PATH` variable
|
||||
that is intended to be set by the project.
|
||||
binaries for the host system. See the :variable:`CMAKE_IGNORE_PREFIX_PATH`
|
||||
variable that is intended to be set by the project and/or the end user.
|
||||
|
||||
See also the :variable:`CMAKE_SYSTEM_PREFIX_PATH`,
|
||||
:variable:`CMAKE_SYSTEM_LIBRARY_PATH`, :variable:`CMAKE_SYSTEM_INCLUDE_PATH`,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
CTEST_SUBMIT_INACTIVITY_TIMEOUT
|
||||
-------------------------------
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
Specify the CTest ``SubmitInactivityTimeout`` setting
|
||||
in a :manual:`ctest(1)` dashboard client script.
|
||||
|
||||
@@ -23,10 +23,15 @@ property for executables will be honored at link time.
|
||||
|
||||
``OUTPUT_VARIABLE <output>``
|
||||
Set ``<output>`` variable with details about any error.
|
||||
|
||||
``LANGUAGES <lang>...``
|
||||
Check the linkers used for each of the specified languages.
|
||||
Supported languages are ``C``, ``CXX``, ``OBJC``, ``OBJCXX``, ``Fortran``,
|
||||
``CUDA``, and ``HIP``.
|
||||
|
||||
``C``, ``CXX``, ``Fortran`` are supported.
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
``OBJC``, ``OBJCXX``, ``CUDA``, and ``HIP`` are supported.
|
||||
|
||||
It makes no sense to use this module when :policy:`CMP0083` is set to ``OLD``,
|
||||
so the command will return an error in this case. See policy :policy:`CMP0083`
|
||||
|
||||
Reference in New Issue
Block a user