Help: Consolidate 3.31 release notes

Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.31.rst`.
This commit is contained in:
Brad King 2024-10-09 09:23:02 -04:00
parent eed2b2d2cb
commit fae66f4751
40 changed files with 277 additions and 344 deletions

276
Help/release/3.31.rst Normal file
View File

@ -0,0 +1,276 @@
CMake 3.31 Release Notes
************************
.. only:: html
.. contents::
Changes made since CMake 3.30 include the following.
* On AIX, shared libraries may now be created as shared library archives.
See the :variable:`CMAKE_AIX_SHARED_LIBRARY_ARCHIVE` variable
and :prop_tgt:`AIX_SHARED_LIBRARY_ARCHIVE` target property.
* The :prop_tgt:`MACOSX_FRAMEWORK_BUNDLE_NAME <MACOSX_FRAMEWORK_INFO_PLIST>`
target property was added to set the ``CFBundleName`` key in an Apple
:prop_tgt:`FRAMEWORK`'s ``Info.plist`` file.
* The :variable:`CMAKE_HOST_EXECUTABLE_SUFFIX` variable was added to
provide suffix for executable names on the host platform.
* The :option:`cmake -LR[A][H]` option was added to list cache entries
whose names match a regular expression.
* The :command:`cmake_pkg_config` command was added as an endpoint for using
CMake's native pkg-config format parser. The only supported option in this
release is ``EXTRACT``, which provides low-level access to the values
produced by parsing a pkg-config file. For most users, this is not yet a
suitable replacement for the :module:`FindPkgConfig` module.
* When executing a CMake workflow preset, the ``--preset`` option can now be
omitted, allowing the simpler command line
:option:`cmake --workflow \<preset\> <cmake--workflow --preset>`.
* The :ref:`Ninja Generators` and :ref:`Makefile Generators` now produce
a ``codegen`` build target. See policy :policy:`CMP0171`. It drives a
subset of the build graph sufficient to run custom commands created with
:command:`add_custom_command`'s new ``CODEGEN`` option.
* The :command:`add_custom_command` command gained a ``CODEGEN`` option
to mark a custom commands outputs as dependencies of a ``codegen`` target.
* The :cpack_gen:`CPack DEB Generator` gained a
:variable:`CPACK_DEBIAN_PACKAGE_MULTIARCH` option
to support multi-arch packages.
* The :cpack_gen:`CPack IFW Generator` gained the new
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS` variable to
specify images associated with entries of
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGES`.
This feature is available for QtIFW 4.0 and newer.
* The :cpack_gen:`CPack RPM Generator` gained support for ``zstd`` as a
:variable:`CPACK_RPM_COMPRESSION_TYPE` value.
* The :module:`CPack` module enables per-machine installation by default
in the :cpack_gen:`CPack WIX Generator`. See policy :policy:`CMP0172`
and the :variable:`CPACK_WIX_INSTALL_SCOPE` variable.
* The :variable:`CMAKE_<LANG>_HOST_COMPILER_ID` and
:variable:`CMAKE_<LANG>_HOST_COMPILER_VERSION` variables were added,
where ``<LANG>`` is either ``CUDA`` or ``HIP``. They are populated
when :variable:`CMAKE_<LANG>_COMPILER_ID` is ``NVIDIA`` to identify
NVCC's host compiler.
* The :module:`FindCUDAToolkit` module now provides a ``CUDA::nvml_static``
target.
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands now
verify TLS server certificates for connections to ``https://`` URLs by
default. See the :variable:`CMAKE_TLS_VERIFY` variable for details.
This change was made without a policy so that users are protected
even when building projects that have not been updated.
Users may set the :envvar:`CMAKE_TLS_VERIFY` environment
variable to ``0`` to restore the old default.
* The :command:`ctest_submit` command and :option:`ctest -T Submit <ctest -T>`
step now verify TLS server certificates for connections to ``https://`` URLs
by default. See the :variable:`CTEST_TLS_VERIFY` variable for details.
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands now
require TLS 1.2 or higher for connections to ``https://`` URLs by default.
See the :variable:`CMAKE_TLS_VERSION` variable for details.
* The :command:`ctest_submit` command and :option:`ctest -T Submit <ctest -T>`
step now require TLS 1.2 or higher for connections to ``https://`` URLs by
default. See the :variable:`CTEST_TLS_VERSION` variable for details.
* The :module:`CMakeFindFrameworks` module has been deprecated via
:policy:`CMP0173`. Projects should use :command:`find_library` instead.
* Compatibility with versions of CMake older than 3.10 is now deprecated
and will be removed from a future version. Calls to
:command:`cmake_minimum_required` or :command:`cmake_policy` that set
the policy version to an older value now issue a deprecation diagnostic.
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command was updated
to more closely match the dynamic loader's behavior on Linux.
* The :command:`execute_process` command's ``ENCODING`` option,
meaningful on Windows, now defaults to ``UTF-8``.
See policy :policy:`CMP0176`.
* The :command:`file(ARCHIVE_CREATE)` command gained a ``WORKING_DIRECTORY``
option to specify a working directory for the archiving process.
* The :module:`FindOpenMP` module gained support for the ``CUDA`` language.
* The :command:`gtest_discover_tests` command gained a new
``DISCOVERY_EXTRA_ARGS`` keyword. It allows extra arguments to be
appended to the command line when querying for the list of tests.
* The :command:`install(FILES)` and :command:`install(DIRECTORY)` commands'
``TYPE`` argument gained support for a ``LIBEXEC`` type.
* The :module:`CMakePackageConfigHelpers` module's
:command:`generate_apple_platform_selection_file` function
gained support iOS Mac Catalyst.
* The LFortran compiler is now supported with
:variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``LFortran``.
* The :variable:`CMAKE_LINK_LIBRARIES_STRATEGY` variable and
corresponding :prop_tgt:`LINK_LIBRARIES_STRATEGY` target
property were added to optionally specify the strategy
CMake uses to generate link lines.
* The :module:`CMakePushCheckState` module ``cmake_push_check_state``,
``cmake_pop_check_state`` and ``cmake_reset_check_state`` macros
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCCompilerFlag` module ``check_c_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCSourceCompiles` module ``check_c_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCSourceRuns` module ``check_c_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXCompilerFlag` module ``check_cxx_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXSourceCompiles` module ``check_cxx_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXSourceRuns` module ``check_cxx_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXSymbolExists` module ``check_cxx_symbol_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCompilerFlag` module ``check_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranCompilerFlag` module ``check_fortran_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranFunctionExists` module ``check_fortran_function_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranSourceCompiles` module ``check_fortran_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranSourceRuns` module ``check_fortran_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFunctionExists` module ``check_function_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckIncludeFile` module ``check_include_file`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckIncludeFileCXX` module ``check_include_file_cxx`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckIncludeFiles` module ``check_include_files`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCCompilerFlag` module ``check_objc_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckLibraryExists` module ``check_library_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCCompilerFlag` module ``check_objc_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCSourceCompiles` module ``check_objc_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCSourceRuns` module ``check_objc_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCXXCompilerFlag` module ``check_objcxx_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCXXSourceCompiles` module ``check_objcxx_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCXXSourceRuns` module ``check_objcxx_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckPrototypeDefinition` module ``check_prototype_definition`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckSourceCompiles` module ``check_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckSourceRuns` module ``check_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckStructHasMember` module ``check_struct_has_member`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckSymbolExists` module ``check_symbol_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckTypeSize` module ``check_type_size`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckVariableExists` module ``check_variable_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* Targets with C++ modules may now export their module compile commands using
the :prop_tgt:`EXPORT_BUILD_DATABASE` target property. This is initialized
with the :variable:`CMAKE_EXPORT_BUILD_DATABASE` variable which is itself
initialized using the :envvar:`CMAKE_EXPORT_BUILD_DATABASE` environment
variable. Only supported with the :ref:`Ninja Generators`.
* All ``DESTINATION`` arguments in :command:`install` commands
are now :ref:`normalized <Normalization>`, with the exception
of ``INCLUDES DESTINATION`` arguments in the ``TARGETS`` form.
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
when the executable for a command given to :command:`add_test` is a CMake
target. See policy :policy:`CMP0178`.
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
for the test created by :command:`ExternalData_Add_Test` from the
:module:`ExternalData` module. See policy :policy:`CMP0178`.
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
for tests created by :command:`gtest_add_tests` and
:command:`gtest_discover_tests` from the :module:`GoogleTest` module.
Empty list elements after the ``EXTRA_ARGS`` keyword of these two commands
are also now preserved. See policy :policy:`CMP0178`.
* Preset files may now include comments using the key ``$comment``
at any level within the JSON object to provide documentation.
* Preset files may now request graphviz output using the ``graphviz`` key
in a configure preset.
* The :command:`project` command now always sets
:variable:`<PROJECT-NAME>_SOURCE_DIR`, :variable:`<PROJECT-NAME>_BINARY_DIR`,
and :variable:`<PROJECT-NAME>_IS_TOP_LEVEL` as both normal variables and
cache entries. See policy :policy:`CMP0180`.
* The :generator:`Visual Studio 12 2013` generator has been removed.
* The :variable:`CMAKE_<LANG>_STANDARD_LINK_DIRECTORIES` variable was added.
Toolchain files can set this variable to control which link library directory
paths are always passed to the compiler for the specified language.
* When static libraries on link lines are de-duplicated (by policy
:policy:`CMP0156`), the first occurrence is now kept on all platforms.
See policy :policy:`CMP0179`.
* The :prop_tgt:`UNITY_BUILD` target property now supports the
CUDA (``CUDA``) language.
* The :prop_tgt:`VS_FRAMEWORK_REFERENCES` target property was added
to tell :ref:`Visual Studio Generators` to add framework references.

View File

@ -1,4 +0,0 @@
FindOpenMP-CUDA
---------------
* The :module:`FindOpenMP` module gained support for the ``CUDA`` language.

View File

@ -1,6 +0,0 @@
GoogleTest-DISCOVERY_EXTRA_ARGS
-------------------------------
* The :command:`gtest_discover_tests` command gained a new
``DISCOVERY_EXTRA_ARGS`` keyword. It allows extra arguments to be
appended to the command line when querying for the list of tests.

View File

@ -1,6 +0,0 @@
aix-archive-shared-libraries
----------------------------
* On AIX, shared libraries may now be created as shared library archives.
See the :variable:`CMAKE_AIX_SHARED_LIBRARY_ARCHIVE` variable
and :prop_tgt:`AIX_SHARED_LIBRARY_ARCHIVE` target property.

View File

@ -1,6 +0,0 @@
apple-framework-bundle-name
---------------------------
* The :prop_tgt:`MACOSX_FRAMEWORK_BUNDLE_NAME <MACOSX_FRAMEWORK_INFO_PLIST>`
target property was added to set the ``CFBundleName`` key in an Apple
:prop_tgt:`FRAMEWORK`'s ``Info.plist`` file.

View File

@ -1,6 +0,0 @@
cmake--workflow-preset
----------------------
* When executing a CMake workflow preset, the ``--preset`` option can now be
omitted, allowing the simpler command line
:option:`cmake --workflow \<preset\> <cmake--workflow --preset>`.

View File

@ -1,5 +0,0 @@
cmake-list-cached-variables
---------------------------
* The :option:`cmake -LR[A][H]` option was added to list cache entries
whose names match a regular expression.

View File

@ -1,8 +0,0 @@
cmake-pkg-config
----------------
* The :command:`cmake_pkg_config` command was added as an endpoint for using
CMake's native pkg-config format parser. The only supported option in this
release is ``EXTRACT``, which provides low-level access to the values
produced by parsing a pkg-config file. For most users, this is not yet a
suitable replacement for the :module:`FindPkgConfig` module.

View File

@ -1,5 +0,0 @@
cmake-host-executable-suffix
----------------------------
* The :variable:`CMAKE_HOST_EXECUTABLE_SUFFIX` variable was added to
provide suffix for executable names on the host platform.

View File

@ -1,10 +0,0 @@
codegen
-------
* The :ref:`Ninja Generators` and :ref:`Makefile Generators` now produce
a ``codegen`` build target. See policy :policy:`CMP0171`. It drives a
subset of the build graph sufficient to run custom commands created with
:command:`add_custom_command`'s new ``CODEGEN`` option.
* The :command:`add_custom_command` command gained a ``CODEGEN`` option
to mark a custom commands outputs as dependencies of a ``codegen`` target.

View File

@ -1,6 +0,0 @@
cpack-debian-multiarch
----------------------
* The :cpack_gen:`CPack DEB Generator` gained a
:variable:`CPACK_DEBIAN_PACKAGE_MULTIARCH` option
to support multi-arch packages.

View File

@ -1,8 +0,0 @@
cpack-ifw-product-images
------------------------
* The :cpack_gen:`CPack IFW Generator` gained the new
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS` variable to
specify images associated with entries of
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGES`.
This feature is available for QtIFW 4.0 and newer.

View File

@ -1,5 +0,0 @@
cpack-rpm-zstd
--------------
* The :cpack_gen:`CPack RPM Generator` gained support for ``zstd`` as a
:variable:`CPACK_RPM_COMPRESSION_TYPE` value.

View File

@ -1,6 +0,0 @@
cpack-wix-per-machine
---------------------
* The :module:`CPack` module enables per-machine installation by default
in the :cpack_gen:`CPack WIX Generator`. See policy :policy:`CMP0172`
and the :variable:`CPACK_WIX_INSTALL_SCOPE` variable.

View File

@ -1,8 +0,0 @@
cuda-host-compiler-id
---------------------
* The :variable:`CMAKE_<LANG>_HOST_COMPILER_ID` and
:variable:`CMAKE_<LANG>_HOST_COMPILER_VERSION` variables were added,
where ``<LANG>`` is either ``CUDA`` or ``HIP``. They are populated
when :variable:`CMAKE_<LANG>_COMPILER_ID` is ``NVIDIA`` to identify
NVCC's host compiler.

View File

@ -1,5 +0,0 @@
cuda-static-nvml
----------------
* The :module:`FindCUDAToolkit` module now provides a ``CUDA::nvml_static``
target.

View File

@ -1,14 +0,0 @@
curl-tls-verify
---------------
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands now
verify TLS server certificates for connections to ``https://`` URLs by
default. See the :variable:`CMAKE_TLS_VERIFY` variable for details.
This change was made without a policy so that users are protected
even when building projects that have not been updated.
Users may set the :envvar:`CMAKE_TLS_VERIFY` environment
variable to ``0`` to restore the old default.
* The :command:`ctest_submit` command and :option:`ctest -T Submit <ctest -T>`
step now verify TLS server certificates for connections to ``https://`` URLs
by default. See the :variable:`CTEST_TLS_VERIFY` variable for details.

View File

@ -1,10 +0,0 @@
curl-tls-version
----------------
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands now
require TLS 1.2 or higher for connections to ``https://`` URLs by default.
See the :variable:`CMAKE_TLS_VERSION` variable for details.
* The :command:`ctest_submit` command and :option:`ctest -T Submit <ctest -T>`
step now require TLS 1.2 or higher for connections to ``https://`` URLs by
default. See the :variable:`CTEST_TLS_VERSION` variable for details.

View File

@ -1,5 +0,0 @@
deprecate-CMakeFindFrameworks
-----------------------------
* The :module:`CMakeFindFrameworks` module has been deprecated via
:policy:`CMP0173`. Projects should use :command:`find_library` instead.

View File

@ -1,7 +0,0 @@
deprecate-pre-3.10
------------------
* Compatibility with versions of CMake older than 3.10 is now deprecated
and will be removed from a future version. Calls to
:command:`cmake_minimum_required` or :command:`cmake_policy` that set
the policy version to an older value now issue a deprecation diagnostic.

View File

@ -1,5 +0,0 @@
elf-lib-deps-resolve
--------------------
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command was updated
to more closely match the dynamic loader's behavior on Linux.

View File

@ -1,6 +0,0 @@
execute_process-encoding
------------------------
* The :command:`execute_process` command's ``ENCODING`` option,
meaningful on Windows, now defaults to ``UTF-8``.
See policy :policy:`CMP0176`.

View File

@ -1,5 +0,0 @@
file-archive-workdir
--------------------
* The :command:`file(ARCHIVE_CREATE)` command gained a ``WORKING_DIRECTORY``
option to specify a working directory for the archiving process.

View File

@ -1,5 +0,0 @@
install-type-libexec
--------------------
* The :command:`install(FILES)` and :command:`install(DIRECTORY)` commands'
``TYPE`` argument gained support for a ``LIBEXEC`` type.

View File

@ -1,6 +0,0 @@
ios-mac-catalyst
----------------
* The :module:`CMakePackageConfigHelpers` module's
:command:`generate_apple_platform_selection_file` function
gained support iOS Mac Catalyst.

View File

@ -1,5 +0,0 @@
lfortran
--------
* The LFortran compiler is now supported with
:variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``LFortran``.

View File

@ -1,7 +0,0 @@
link-strategy
-------------
* The :variable:`CMAKE_LINK_LIBRARIES_STRATEGY` variable and
corresponding :prop_tgt:`LINK_LIBRARIES_STRATEGY` target
property were added to optionally specify the strategy
CMake uses to generate link lines.

View File

@ -1,99 +0,0 @@
macro-required-link-directories
-------------------------------
* The :module:`CMakePushCheckState` module ``cmake_push_check_state``,
``cmake_pop_check_state`` and ``cmake_reset_check_state`` macros
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCCompilerFlag` module ``check_c_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCSourceCompiles` module ``check_c_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCSourceRuns` module ``check_c_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXCompilerFlag` module ``check_cxx_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXSourceCompiles` module ``check_cxx_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXSourceRuns` module ``check_cxx_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCXXSymbolExists` module ``check_cxx_symbol_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckCompilerFlag` module ``check_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranCompilerFlag` module ``check_fortran_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranFunctionExists` module ``check_fortran_function_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranSourceCompiles` module ``check_fortran_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFortranSourceRuns` module ``check_fortran_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckFunctionExists` module ``check_function_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckIncludeFile` module ``check_include_file`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckIncludeFileCXX` module ``check_include_file_cxx`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckIncludeFiles` module ``check_include_files`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCCompilerFlag` module ``check_objc_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckLibraryExists` module ``check_library_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCCompilerFlag` module ``check_objc_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCSourceCompiles` module ``check_objc_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCSourceRuns` module ``check_objc_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCXXCompilerFlag` module ``check_objcxx_compiler_flag`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCXXSourceCompiles` module ``check_objcxx_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckOBJCXXSourceRuns` module ``check_objcxx_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckPrototypeDefinition` module ``check_prototype_definition`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckSourceCompiles` module ``check_source_compiles`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckSourceRuns` module ``check_source_runs`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckStructHasMember` module ``check_struct_has_member`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckSymbolExists` module ``check_symbol_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckTypeSize` module ``check_type_size`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
* The :module:`CheckVariableExists` module ``check_variable_exists`` macro
learned to honor the ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.

View File

@ -1,8 +0,0 @@
module-cdb
==========
* Targets with C++ modules may now export their module compile commands using
the :prop_tgt:`EXPORT_BUILD_DATABASE` target property. This is initialized
with the :variable:`CMAKE_EXPORT_BUILD_DATABASE` variable which is itself
initialized using the :envvar:`CMAKE_EXPORT_BUILD_DATABASE` environment
variable. Only supported with the :ref:`Ninja Generators`.

View File

@ -1,6 +0,0 @@
normalize-install-destination-paths
-----------------------------------
* All ``DESTINATION`` arguments in :command:`install` commands
are now :ref:`normalized <Normalization>`, with the exception
of ``INCLUDES DESTINATION`` arguments in the ``TARGETS`` form.

View File

@ -1,19 +0,0 @@
preserve-empty-args-test-command-lines
--------------------------------------
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
when the executable for a command given to :command:`add_test` is a CMake
target. See policy :policy:`CMP0178`.
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
for the test created by :command:`ExternalData_Add_Test` from the
:module:`ExternalData` module. See policy :policy:`CMP0178`.
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
for tests created by :command:`gtest_add_tests` and
:command:`gtest_discover_tests` from the :module:`GoogleTest` module.
Empty list elements after the ``EXTRA_ARGS`` keyword of these two commands
are also now preserved. See policy :policy:`CMP0178`.

View File

@ -1,5 +0,0 @@
preset-comments
---------------
* Preset files may now include comments using the key ``$comment``
at any level within the JSON object to provide documentation.

View File

@ -1,5 +0,0 @@
presets-graphviz
----------------
* Preset files may now request graphviz output using the ``graphviz`` key
in a configure preset.

View File

@ -1,7 +0,0 @@
project-vars-policy
-------------------
* The :command:`project` command now always sets
:variable:`<PROJECT-NAME>_SOURCE_DIR`, :variable:`<PROJECT-NAME>_BINARY_DIR`,
and :variable:`<PROJECT-NAME>_IS_TOP_LEVEL` as both normal variables and
cache entries. See policy :policy:`CMP0180`.

View File

@ -1,4 +0,0 @@
remove-vs12-generator
---------------------
* The :generator:`Visual Studio 12 2013` generator has been removed.

View File

@ -1,6 +0,0 @@
standard-link-directories
-------------------------
* The :variable:`CMAKE_<LANG>_STANDARD_LINK_DIRECTORIES` variable was added.
Toolchain files can set this variable to control which link library directory
paths are always passed to the compiler for the specified language.

View File

@ -1,6 +0,0 @@
static-libraries-deduplication
------------------------------
* When static libraries on link lines are de-duplicated (by policy
:policy:`CMP0156`), the first occurrence is now kept on all platforms.
See policy :policy:`CMP0179`.

View File

@ -1,5 +0,0 @@
unity-build-supports-cuda
-------------------------
* The :prop_tgt:`UNITY_BUILD` target property now supports the
CUDA (``CUDA``) language.

View File

@ -1,5 +0,0 @@
vs-framework-references
-----------------------
* The :prop_tgt:`VS_FRAMEWORK_REFERENCES` target property was added
to tell :ref:`Visual Studio Generators` to add framework references.

View File

@ -15,6 +15,7 @@ Releases
.. toctree::
:maxdepth: 1
3.31 <3.31>
3.30 <3.30>
3.29 <3.29>
3.28 <3.28>