Help: Consolidate 3.25 release notes

Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.25.rst`.
This commit is contained in:
Brad King
2022-10-07 11:23:58 -04:00
parent a07be2ffd1
commit c174ef23f4
42 changed files with 202 additions and 273 deletions

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

@@ -0,0 +1,201 @@
CMake 3.25 Release Notes
************************
.. only:: html
.. contents::
Changes made since CMake 3.24 include the following.
* Support for the `Tasking compiler toolsets`_ (SmartCode, TriCore,
Standalone: ARM, MCS, 8051) was added with compiler id ``Tasking``.
See the :variable:`CMAKE_TASKING_TOOLSET` variable.
.. _`Tasking compiler toolsets`: https://tasking.com
* CMake language gains the commands :command:`block` and :command:`endblock` to
manage specific scopes (policy or variable) for group of commands.
* The :variable:`BSD` variable is set to a string value when the target system is BSD.
This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.
* The :variable:`CMAKE_HOST_BSD` variable is set to a string value when the host system is BSD.
This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.
* If :prop_tgt:`<LANG>_CLANG_TIDY` includes a ``-p`` argument, the
full compiler command line is no longer appended after ``--``.
* A new ``--modify`` flag was added to :option:`cmake -E env <cmake-E env>` to
support :prop_test:`ENVIRONMENT_MODIFICATION` operations.
* The :command:`cmake_language` command gained a new
``GET_MESSAGE_LOG_LEVEL`` sub-command. It can be used to
query the current message logging level.
* The :manual:`cmake-presets(7)` schema version has been bumped to ``6``.
* The :manual:`cmake-presets(7)` format now supports a ``packagePresets`` field.
* The :manual:`cmake-presets(7)` format now supports a ``workflowPresets`` field.
* The :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property now supports
:manual:`generator expressions <cmake-generator-expressions(7)>`.
* The :cpack_gen:`CPack Archive Generator` gained a new
:variable:`CPACK_ARCHIVE_FILE_EXTENSION` variable to control
the package file name extension.
* The :cpack_gen:`CPack NSIS Generator` gained two new variables
:variable:`CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS` and
:variable:`CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS`
to provide arguments to the nsis executable invocation.
* The :module:`CPack` module gained the :variable:`CPACK_READELF_EXECUTABLE`,
:variable:`CPACK_OBJCOPY_EXECUTABLE`, and
:variable:`CPACK_OBJDUMP_EXECUTABLE` variables to control the locations
of binutils used by :manual:`cpack(1)`.
* ``CUDA`` language now supports device link time optimization when using
``nvcc``. The :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable and
the associated :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property will
activate device LTO.
* C++26 compiler modes may now be specified via the :prop_tgt:`CXX_STANDARD`,
:prop_tgt:`CUDA_STANDARD`, :prop_tgt:`HIP_STANDARD`, or
:prop_tgt:`OBJCXX_STANDARD` target properties,
or via the :manual:`Compile Features <cmake-compile-features(7)>`
functionality's ``cxx_std_26`` meta-feature.
* On Windows, when targeting the MSVC ABI, the :command:`find_library` command
now accepts ``.a`` file names after first considering ``.lib``. This is
symmetric with existing behavior when targeting the GNU ABI, in which the
command accepts ``.lib`` file names after first considering ``.a``.
* The :manual:`cmake -E capabilities <cmake(1)>` command gained a new ``tls``
field that tells whether or not TLS is enabled.
* The :envvar:`SSL_CERT_FILE` and :envvar:`SSL_CERT_DIR` environment
variables are now used to find certificate authorities for TLS/SSL
operations.
* The :module:`FindCUDAToolkit` module now provides a target for
:ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
:ref:`nvToolsExt <cuda_toolkit_nvToolsExt>`. A deprecation warning is emitted
when using ``nvToolsExt`` if the project requires CMake 3.25 and CUDA 10.0+
is used.
* The :module:`FindDoxygen` module now evaluates as many candidate
Doxygen installs as are necessary to satisfy version constraints,
with the package considered to be not found if none are available.
* The :module:`FindDoxygen` module now handles version ranges.
* The :module:`FindDoxygen` module now ignores non-semantic portions
of the output from Doxygen's `--version` option.
* :command:`find_file`, :command:`find_path`, :command:`find_library`, and
:command:`find_program` commands gain the capability to specify a function
which will be called for each found item to validate it.
* The :module:`FindOpenAL` module now provides an imported target.
* The :module:`FindOpenSP` module was added to find the OpenSP library.
* The :command:`find_package` command now considers paths of
the form ``<prefix>/<name>*/(cmake|CMake)/<name>*/`` when
searching for package configuration files.
* The :module:`FindVulkan` module gained support for a DirectX Shader Compiler
component, ``dxc``.
* The :module:`FindVulkan` module now includes a ``volk`` component
for the Volk open source vulkan meta-loader.
The :genex:`$<LINK_LIBRARY>` generator expression gains the capability, for the
``FRAMEWORK`` features, to handle the suffix of the framework library name.
* The :variable:`LINUX` variable is set to true when the target system is Linux.
* The :variable:`CMAKE_HOST_LINUX` variable is set to true when the host system is Linux.
* The :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable and
:prop_tgt:`MSVC_DEBUG_INFORMATION_FORMAT` target property were introduced
to select the debug information format for compilers targeting the MSVC ABI.
See policy :policy:`CMP0141`.
* C++ module scanning now supports the latest revision, `P1689R5`_.
.. _`P1689r5`: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html
* The :generator:`Visual Studio 10 2010` generator has been removed.
* The :command:`return` command gains the capability to propagate variables to
the include directory of function caller scope. See policy :policy:`CMP0140`.
* The :prop_tgt:`SYSTEM` target property was added to specify
that a target should be treated as a system library (i.e.
its include directories are automatically ``SYSTEM`` when
compiling consumers).
* The :prop_dir:`SYSTEM` directory property was added to initialize the
:prop_tgt:`SYSTEM` target property for targets created in that directory.
* The :command:`add_subdirectory` command gained a ``SYSTEM`` option
to enable the :prop_dir:`SYSTEM` directory property in the subdirectory.
* The :module:`FetchContent` module :command:`FetchContent_Declare`
command gained a ``SYSTEM`` option to enable the :prop_dir:`SYSTEM`
directory property in the subdirectory.
* The :prop_tgt:`EXPORT_NO_SYSTEM` target property was added to
specify that :command:`install(EXPORT)` and :command:`export`
commands will generate a imported target with
:prop_tgt:`SYSTEM` property `OFF`.
* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property was deprecated
in favor of :prop_tgt:`SYSTEM` and :prop_tgt:`EXPORT_NO_SYSTEM`.
* The :command:`try_compile` and :command:`try_run` commands gained the option
``NO_CACHE`` to store results in normal variables.
* The :command:`try_compile` and :command:`try_run` commands gained new
signatures that more consistently use keyword dispatch and do not require a
binary directory to be specified. Additionally, these signatures use a
unique directory for each invocation, which allows multiple outputs to be
preserved when using :option:`--debug-trycompile <cmake --debug-trycompile>`.
* The :option:`cmake --debug-trycompile` option now prints log messages
reporting the directory in which each try-compile check is done.
* The :command:`try_run` command gained ``RUN_OUTPUT_STDOUT_VARIABLE``
and ``RUN_OUTPUT_STDERR_VARIABLE`` options to capture stdout and stderr
separately from the output of the compiled program.
* The :module:`UseSWIG` module gained knowledge about generated Perl module
files (extension ``.pm``).
* The :generator:`Visual Studio 11 2012` generator is now deprecated
and will be removed in a future version of CMake.
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` target
property were added to tell the :generator:`Xcode` generator what to put
in the scheme's ``Metal: API Validation`` setting.
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` target
property were added to tell the :generator:`Xcode` generator what to put
in the scheme's ``Metal: Shader Validation`` setting.
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_MODE` variable and corresponding
:prop_tgt:`XCODE_SCHEME_LAUNCH_MODE` target property were added to tell
the :generator:`Xcode` generator what to put in the scheme's "Launch"
mode setting.
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION` target
property were added to tell the :generator:`Xcode` generator what
configuration to put in the scheme's Launch action.
* The :generator:`Xcode` generator no longer adds the per-config suffix
``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths.
See policy :policy:`CMP0142`.

View File

@@ -1,8 +0,0 @@
Variables
---------
* The :variable:`BSD` variable is set to a string value when the target system is BSD.
This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.
* The :variable:`CMAKE_HOST_BSD` variable is set to a string value when the host system is BSD.
This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.

View File

@@ -1,5 +0,0 @@
E-capabilities-tls
------------------
* The :manual:`cmake -E capabilities <cmake(1)>` command gained a new ``tls``
field that tells whether or not TLS is enabled.

View File

@@ -1,4 +0,0 @@
FindOpenSP-module
-----------------
* The :module:`FindOpenSP` module was added to find the OpenSP library.

View File

@@ -1,5 +0,0 @@
FindVulkan-dxc
--------------
* The :module:`FindVulkan` module gained support for a DirectX Shader Compiler
component, ``dxc``.

View File

@@ -1,6 +0,0 @@
Variables
---------
* The :variable:`LINUX` variable is set to true when the target system is Linux.
* The :variable:`CMAKE_HOST_LINUX` variable is set to true when the host system is Linux.

View File

@@ -1,7 +0,0 @@
MsvcDebugInformationFormatAbstraction
-------------------------------------
* The :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable and
:prop_tgt:`MSVC_DEBUG_INFORMATION_FORMAT` target property were introduced
to select the debug information format for compilers targeting the MSVC ABI.
See policy :policy:`CMP0141`.

View File

@@ -1,5 +0,0 @@
UseSWIG-perl-extra-files
------------------------
* The :module:`UseSWIG` module gained knowledge about generated Perl module
files (extension ``.pm``).

View File

@@ -1,8 +0,0 @@
add_tasking_compiler
--------------------
* Support for the `Tasking compiler toolsets`_ (SmartCode, TriCore,
Standalone: ARM, MCS, 8051) was added with compiler id ``Tasking``.
See the :variable:`CMAKE_TASKING_TOOLSET` variable.
.. _`Tasking compiler toolsets`: https://tasking.com

View File

@@ -1,5 +0,0 @@
block-command
-------------
* CMake language gains the commands :command:`block` and :command:`endblock` to
manage specific scopes (policy or variable) for group of commands.

View File

@@ -1,5 +0,0 @@
clang-tidy-prefer-p-option
--------------------------
* If :prop_tgt:`<LANG>_CLANG_TIDY` includes a ``-p`` argument, the
full compiler command line is no longer appended after ``--``.

View File

@@ -1,5 +0,0 @@
cmake-E-env-modify
------------------
* A new ``--modify`` flag was added to :option:`cmake -E env <cmake-E env>` to
support :prop_test:`ENVIRONMENT_MODIFICATION` operations.

View File

@@ -1,5 +0,0 @@
cmake-presets-package
---------------------
* The :manual:`cmake-presets(7)` schema version has been bumped to ``6``.
* The :manual:`cmake-presets(7)` format now supports a ``packagePresets`` field.

View File

@@ -1,4 +0,0 @@
cmake-presets-workflow
----------------------
* The :manual:`cmake-presets(7)` format now supports a ``workflowPresets`` field.

View File

@@ -1,6 +0,0 @@
cmake-language_GET_MESSAGE_LOG_LEVEL
------------------------------------
* The :command:`cmake_language` command gained a new
``GET_MESSAGE_LOG_LEVEL`` sub-command. It can be used to
query the current message logging level.

View File

@@ -1,5 +0,0 @@
compiler-launcher-genexp
------------------------
* The :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property now supports
:manual:`generator expressions <cmake-generator-expressions(7)>`.

View File

@@ -1,6 +0,0 @@
cpack-archive-custom-extension
------------------------------
* The :cpack_gen:`CPack Archive Generator` gained a new
:variable:`CPACK_ARCHIVE_FILE_EXTENSION` variable to control
the package file name extension.

View File

@@ -1,7 +0,0 @@
cpack-nsis-arguments-command-line
---------------------------------
* The :cpack_gen:`CPack NSIS Generator` gained two new variables
:variable:`CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS` and
:variable:`CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS`
to provide arguments to the nsis executable invocation.

View File

@@ -1,7 +0,0 @@
cpack-reuse-cmake-tools
-----------------------
* The :module:`CPack` module gained the :variable:`CPACK_READELF_EXECUTABLE`,
:variable:`CPACK_OBJCOPY_EXECUTABLE`, and
:variable:`CPACK_OBJDUMP_EXECUTABLE` variables to control the locations
of binutils used by :manual:`cpack(1)`.

View File

@@ -1,7 +0,0 @@
cuda-device-lto
---------------
* ``CUDA`` language now supports device link time optimization when using
``nvcc``. The :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable and
the associated :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property will
activate device LTO.

View File

@@ -1,8 +0,0 @@
cxx_std_26
----------
* C++26 compiler modes may now be specified via the :prop_tgt:`CXX_STANDARD`,
:prop_tgt:`CUDA_STANDARD`, :prop_tgt:`HIP_STANDARD`, or
:prop_tgt:`OBJCXX_STANDARD` target properties,
or via the :manual:`Compile Features <cmake-compile-features(7)>`
functionality's ``cxx_std_26`` meta-feature.

View File

@@ -1,7 +0,0 @@
detect-lib_foo.a-msvc
---------------------
* On Windows, when targeting the MSVC ABI, the :command:`find_library` command
now accepts ``.a`` file names after first considering ``.lib``. This is
symmetric with existing behavior when targeting the GNU ABI, in which the
command accepts ``.lib`` file names after first considering ``.a``.

View File

@@ -1,6 +0,0 @@
env-tls-certs
-------------
* The :envvar:`SSL_CERT_FILE` and :envvar:`SSL_CERT_DIR` environment
variables are now used to find certificate authorities for TLS/SSL
operations.

View File

@@ -1,8 +0,0 @@
find-cuda-toolkit-nvtx3
-----------------------
* The :module:`FindCUDAToolkit` module now provides a target for
:ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
:ref:`nvToolsExt <cuda_toolkit_nvToolsExt>`. A deprecation warning is emitted
when using ``nvToolsExt`` if the project requires CMake 3.25 and CUDA 10.0+
is used.

View File

@@ -1,6 +0,0 @@
find_item-VALIDATOR
-------------------
* :command:`find_file`, :command:`find_path`, :command:`find_library`, and
:command:`find_program` commands gain the capability to specify a function
which will be called for each found item to validate it.

View File

@@ -1,6 +0,0 @@
find_package-one-more-path
--------------------------
* The :command:`find_package` command now considers paths of
the form ``<prefix>/<name>*/(cmake|CMake)/<name>*/`` when
searching for package configuration files.

View File

@@ -1,11 +0,0 @@
finddoxygen-better-version-checking
-----------------------------------
* The :module:`FindDoxygen` module now evaluates as many candidate
Doxygen installs as are necessary to satisfy version constraints,
with the package considered to be not found if none are available.
* The :module:`FindDoxygen` module now handles version ranges.
* The :module:`FindDoxygen` module now ignores non-semantic portions
of the output from Doxygen's `--version` option.

View File

@@ -1,4 +0,0 @@
findopenal-add-import-library
-----------------------------
* The :module:`FindOpenAL` module now provides an imported target.

View File

@@ -1,5 +0,0 @@
findvulkan-volk
---------------
* The :module:`FindVulkan` module now includes a ``volk`` component
for the Volk open source vulkan meta-loader.

View File

@@ -1,5 +0,0 @@
genex-LINK_LIBRARY-FRAMEWORK-supports-suffix
--------------------------------------------
The :genex:`$<LINK_LIBRARY>` generator expression gains the capability, for the
``FRAMEWORK`` features, to handle the suffix of the framework library name.

View File

@@ -1,6 +0,0 @@
p1689r5
-------
* C++ module scanning now supports the latest revision, `P1689R5`_.
.. _`P1689r5`: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html

View File

@@ -1,4 +0,0 @@
remove-vs10-generator
---------------------
* The :generator:`Visual Studio 10 2010` generator has been removed.

View File

@@ -1,5 +0,0 @@
return-PROPAGATE
----------------
* The :command:`return` command gains the capability to propagate variables to
the include directory of function caller scope. See policy :policy:`CMP0140`.

View File

@@ -1,25 +0,0 @@
system
------
* The :prop_tgt:`SYSTEM` target property was added to specify
that a target should be treated as a system library (i.e.
its include directories are automatically ``SYSTEM`` when
compiling consumers).
* The :prop_dir:`SYSTEM` directory property was added to initialize the
:prop_tgt:`SYSTEM` target property for targets created in that directory.
* The :command:`add_subdirectory` command gained a ``SYSTEM`` option
to enable the :prop_dir:`SYSTEM` directory property in the subdirectory.
* The :module:`FetchContent` module :command:`FetchContent_Declare`
command gained a ``SYSTEM`` option to enable the :prop_dir:`SYSTEM`
directory property in the subdirectory.
* The :prop_tgt:`EXPORT_NO_SYSTEM` target property was added to
specify that :command:`install(EXPORT)` and :command:`export`
commands will generate a imported target with
:prop_tgt:`SYSTEM` property `OFF`.
* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property was deprecated
in favor of :prop_tgt:`SYSTEM` and :prop_tgt:`EXPORT_NO_SYSTEM`.

View File

@@ -1,5 +0,0 @@
try_compile-no_cache
--------------------
* The :command:`try_compile` and :command:`try_run` commands gained the option
``NO_CACHE`` to store results in normal variables.

View File

@@ -1,11 +0,0 @@
try_compile-signatures
----------------------
* The :command:`try_compile` and :command:`try_run` commands gained new
signatures that more consistently use keyword dispatch and do not require a
binary directory to be specified. Additionally, these signatures use a
unique directory for each invocation, which allows multiple outputs to be
preserved when using :option:`--debug-trycompile <cmake --debug-trycompile>`.
* The :option:`cmake --debug-trycompile` option now prints log messages
reporting the directory in which each try-compile check is done.

View File

@@ -1,6 +0,0 @@
try_run_split_output
--------------------
* The :command:`try_run` command gained ``RUN_OUTPUT_STDOUT_VARIABLE``
and ``RUN_OUTPUT_STDERR_VARIABLE`` options to capture stdout and stderr
separately from the output of the compiled program.

View File

@@ -1,5 +0,0 @@
vs11-deprecate
--------------
* The :generator:`Visual Studio 11 2012` generator is now deprecated
and will be removed in a future version of CMake.

View File

@@ -1,12 +0,0 @@
xcode-gpu-validation
--------------------
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` target
property were added to tell the :generator:`Xcode` generator what to put
in the scheme's ``Metal: API Validation`` setting.
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` target
property were added to tell the :generator:`Xcode` generator what to put
in the scheme's ``Metal: Shader Validation`` setting.

View File

@@ -1,12 +0,0 @@
xcode-launch-mode
-----------------
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_MODE` variable and corresponding
:prop_tgt:`XCODE_SCHEME_LAUNCH_MODE` target property were added to tell
the :generator:`Xcode` generator what to put in the scheme's "Launch"
mode setting.
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION` target
property were added to tell the :generator:`Xcode` generator what
configuration to put in the scheme's Launch action.

View File

@@ -1,6 +0,0 @@
xcode-lib-dirs
--------------
* The :generator:`Xcode` generator no longer adds the per-config suffix
``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths.
See policy :policy:`CMP0142`.

View File

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