Help: Consolidate 3.23 release notes

Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.23.rst`.
This commit is contained in:
Brad King
2022-02-02 08:58:52 -05:00
parent ef23e81544
commit f5bdea75a0
41 changed files with 202 additions and 271 deletions

201
Help/release/3.23.rst Normal file
View File

@@ -0,0 +1,201 @@
CMake 3.23 Release Notes
************************
.. only:: html
.. contents::
Changes made since CMake 3.22 include the following.
* :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.
* The :module:`CheckPIESupported` module now takes care of any ``SYSROOT``
settings and gains the support of ``OBJC``, ``OBJCXX``, ``CUDA``, and ``HIP``
languages.
* :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.
* :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.
* 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.
* The :manual:`cpack(1)` undocumented ``OSXX11`` generator has been removed.
* 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
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.
* 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 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.
* An option to the WiX Generator was added to be able to skip
the inclusion of the WixUIExtensions
* :manual:`ctest(1)` gained a new :variable:`CTEST_SUBMIT_INACTIVITY_TIMEOUT`
variable, which can be used to specify a timeout for submission inactivity.
* Policy :policy:`CMP0105` and the ``$<DEVICE_LINK:...>`` and
``$<HOST_LINK:...>``
:manual:`generator expressions <cmake-generator-expressions(7)>`
are now supported for Clang.
* 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.
* CUDA compiler detection now tries to detect invalid architectures and issue
an error.
* 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+.
* ``CUDA`` targets can now enable both :prop_tgt:`CUDA_SEPARABLE_COMPILATION` and
:prop_tgt:`CUDA_PTX_COMPILATION`.
* The :command:`define_property` ``BRIEF_DOCS`` and ``FULL_DOCS`` arguments are
now optional.
* 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.
* 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 gained a ``Vulkan_VERSION`` result
variable reporting the version number.
* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
compiler id ``IBMClang``.
* 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 MCST LCC compiler is now supported with compiler id ``LCC``.
See policy :policy:`CMP0129`.
* 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 :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.
* The :command:`define_property` command gained a new
``INITIALIZE_FROM_VARIABLE`` argument.
* 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``.
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands now
support the ``%f`` specifier for microseconds.
* 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.
* 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.
* 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.
* 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 Xcode project generation learned the variable `XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE` to enable specifying the Xcode scheme option property `GPU Frame Capture`.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
FindCUDAToolkit-target-for-cufft_static_nocallback
--------------------------------------------------
* The :module:`FindCUDAToolkit` module now provides a target for
``libcufft_static_nocallback``, if found.

View File

@@ -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.

View File

@@ -1,4 +0,0 @@
FindGTest-target-for-gmock
--------------------------
* The :module:`FindGTest` module now provides a target for GMock, if found.

View File

@@ -1,5 +0,0 @@
FindVulkan-version
------------------
* The :module:`FindVulkan` module gained a ``Vulkan_VERSION`` result
variable reporting the version number.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,4 +0,0 @@
cpack-drop-osxx11
-----------------
* The :manual:`cpack(1)` undocumented ``OSXX11`` generator has been removed.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -1,8 +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.

View File

@@ -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.

View File

@@ -1,7 +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.

View File

@@ -1,9 +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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
cuda-invalid-architectures
--------------------------
* CUDA compiler detection now tries to detect invalid architectures and issue
an error.

View File

@@ -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+.

View File

@@ -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`.

View File

@@ -1,5 +0,0 @@
define-property-optional-args
-----------------------------
* The :command:`define_property` ``BRIEF_DOCS`` and ``FULL_DOCS`` arguments are
now optional.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
ibmclang-compiler
-----------------
* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
compiler id ``IBMClang``.

View File

@@ -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``).

View File

@@ -1,5 +0,0 @@
lcc-compiler
------------
* The MCST LCC compiler is now supported with compiler id ``LCC``.
See policy :policy:`CMP0129`.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,5 +0,0 @@
target-properties-from-variables
--------------------------------
* The :command:`define_property` command gained a new
``INITIALIZE_FROM_VARIABLE`` argument.

View File

@@ -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``.

View File

@@ -1,5 +0,0 @@
timestamp-microseconds
----------------------
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands now
support the ``%f`` specifier for microseconds.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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`.

View File

@@ -15,6 +15,7 @@ Releases
.. toctree::
:maxdepth: 1
3.23 <3.23>
3.22 <3.22>
3.21 <3.21>
3.20 <3.20>