Help: Consolidate 3.27 release notes

Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.27.rst`.
This commit is contained in:
Brad King
2023-06-05 11:13:54 -04:00
parent 3760ac9845
commit e6bcda8c39
45 changed files with 203 additions and 280 deletions

202
Help/release/3.27.rst Normal file
View File

@@ -0,0 +1,202 @@
CMake 3.27 Release Notes
************************
.. only:: html
.. contents::
Changes made since CMake 3.26 include the following.
* Support for text-based stubs (i.e. ``.tbd`` files) was added on macOS
platform. This capability is managed through the :prop_tgt:`ENABLE_EXPORTS`
property.
* The :variable:`CMAKE_AUTOMOC_EXECUTABLE`,
:variable:`CMAKE_AUTORCC_EXECUTABLE`, and
:variable:`CMAKE_AUTOUIC_EXECUTABLE` variables were added to initialize the
corresponding target properties as targets are created.
* The :prop_tgt:`AUTOGEN_USE_SYSTEM_INCLUDE` target property and
corresponding :variable:`CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE` were
added to explicitly control whether autogen headers are
considered system headers.
* The :prop_tgt:`INTERFACE_AUTOMOC_MACRO_NAMES` target property was added to
specify macro names for ``moc`` as a transitive usage requirement.
* :manual:`cmake(1)` now supports interactive debugging of the CMake language.
See the :option:`--debugger <cmake --debugger>` option.
* ``cmake --build $dir --verbose`` will now print the working directory and
command line used to perform the build.
* The :cpack_gen:`CPack Inno Setup Generator` was added to package using
Inno Setup.
The new generator adds:
* A lot of options to customize the Inno Setup installer (e.g. custom
installation rules)
* Start menu and desktop shortcuts
* Components (and also downloaded components)
* The :prop_test:`TIMEOUT_SIGNAL_NAME` and
:prop_test:`TIMEOUT_SIGNAL_GRACE_PERIOD` test properties were added
to specify a POSIX signal to send to a test process when its timeout
is reached.
* A :prop_tgt:`CUDA_CUBIN_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.cubin`` files
instead of host object files. Currently only supported with NVIDIA.
* A :prop_tgt:`CUDA_FATBIN_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.fatbin`` files
instead of host object files. Currently only supported with NVIDIA.
* A :prop_tgt:`CUDA_OPTIX_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.optixir`` files
instead of host object files. Currently only supported with NVIDIA.
* Source file extensions ``.ccm``, ``.cxxm``, or ``.c++m`` are now
treated as C++.
* The :ref:`Extra Generators` have been deprecated. IDEs may use the
:manual:`cmake-file-api(7)` to view CMake-generated project build trees.
* Compatibility with versions of CMake older than 3.5 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 :variable:`CMAKE_DLL_NAME_WITH_SOVERSION` variable and associated
:prop_tgt:`DLL_NAME_WITH_SOVERSION` target property were added to
optionally append the :prop_tgt:`SOVERSION` to the filename of the
``.dll`` part of a shared library on Windows.
* The ``update`` and ``patch`` steps of an :module:`ExternalProject` will now
always re-execute if any of their details change, even if
``UPDATE_DISCONNECTED`` was set to true in the call to
:command:`ExternalProject_Add`. If using the GIT download method and the
``GIT_TAG`` is changed and the new ``GIT_TAG`` isn't already known locally,
this is now a fatal error instead of silently using the previous ``GIT_TAG``.
* When ``UPDATE_DISCONNECTED`` is set to true in a call to
:command:`ExternalProject_Add`, the ``configure`` step will no longer
re-run on every build. It will only re-run if details of the ``download``,
``update`` or ``patch`` step change.
* The :module:`ExternalProject` and :module:`FetchContent` modules
now resolve relative `GIT_REPOSITORY` paths as relative to the
parent project's remote, not as a relative local file system path.
See :policy:`CMP0150`.
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
been updated to 2.6.
* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
a new "frameworks" field in the "compileGroups" objects.
* The :command:`cmake_file_api` command was added, enabling projects to
add :manual:`CMake file API <cmake-file-api(7)>` queries for the current
CMake run.
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command now case-preserves
DLL names reported on Windows. They are still converted to lowercase
for filter matching.
* The :module:`FindCUDA` module has been fully deprecated via policy
:policy:`CMP0146`. Port projects to CMake's first-class ``CUDA``
language support.
* The :module:`FindCUDAToolkit` module now provides an imported target for ``cudla``, if found.
* The :module:`FindDoxygen` module's ``doxygen_add_docs`` command gained
a ``CONFIG_FILE`` option to specify a custom doxygen configuration file.
* The :module:`FindOpenGL` module gained support for components
``GLES2`` and ``GLES3``.
* The :command:`find_package` command now searches prefixes specified by
upper-case :variable:`<PACKAGENAME>_ROOT` CMake variables and upper-case
:envvar:`<PACKAGENAME>_ROOT` environment variables.
See policy :policy:`CMP0144`.
* :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3` modules
learn to manage ``Windows/ARM`` platform.
* The :module:`FindwxWidgets` module now provides an imported target.
* The :genex:`COMPILE_ONLY` generator expression has been added which provides
compilation usage requirements without any linking requirements.
* The :genex:`LIST` generator expression was added to manage lists.
* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands
now support the :genex:`$<INSTALL_PREFIX>` generator expression.
* The :prop_tgt:`<LANG>_LINKER_LAUNCHER` target property now supports
:manual:`generator expressions <cmake-generator-expressions(7)>`.
* The :prop_tgt:`<LANG>_CLANG_TIDY`, :prop_tgt:`<LANG>_CPPCHECK`,
:prop_tgt:`<LANG>_CPPLINT`, and :prop_tgt:`<LANG>_INCLUDE_WHAT_YOU_USE`,
target properties now support
:manual:`generator expressions <cmake-generator-expressions(7)>`.
* The :command:`add_custom_command` command gained a new
``DEPENDS_EXPLICIT_ONLY`` option to tell the :ref:`Ninja Generators`
not to add any dependencies implied by the target to which it is
attached.
* The :variable:`CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY` variable can
be set to enable ``DEPENDS_EXPLICIT_ONLY`` in all uses of
:command:`add_custom_command` command.
* The :genex:`$<PATH>` generator expression learned to process list of paths
for decomposition and transformation operations.
* :manual:`cmake-presets(7)` files now support schema version ``7``.
* :manual:`cmake-presets(7)` now supports ``$penv{}`` macro expansion
in ``include`` fields.
* The :module:`Dart` and :module:`FindDart` modules have been deprecated via
policy :policy:`CMP0145`. Port projects to the :module:`CTest` module.
* The :module:`FindPythonInterp` and :module:`FindPythonLibs` modules have
been fully deprecated via policy :policy:`CMP0148`. Port projects to
:module:`FindPython3`, :module:`FindPython2`, or :module:`FindPython`.
* The :prop_sf:`SKIP_LINTING` source file property was added to suppress
target-wide code checks on specific sources.
* The :prop_tgt:`SYSTEM` target property is now honored for Apple Frameworks.
* GNU (and GNU-compatible) linkers gained support for a ``--dependency-file``
flag in GNU Binutils 2.35 and LLVM's LLD 12.0.0. The
:ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>`
generators will now add these flags so that files read by the linker will
cause a relink if they change (typically modified timestamps).
This feature can be controlled by the variable
:variable:`CMAKE_LINK_DEPENDS_USE_LINKER`.
* The :generator:`Visual Studio 9 2008` generator is now deprecated
and will be removed in a future version of CMake.
* :ref:`Visual Studio Generators`, for VS 15.8 (2017) and newer, now
build custom commands in parallel. See policy :policy:`CMP0147`.
* Variables :variable:`CMAKE_VS_DEBUGGER_COMMAND`,
:variable:`CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS`,
:variable:`CMAKE_VS_DEBUGGER_ENVIRONMENT`, and
:variable:`CMAKE_VS_DEBUGGER_WORKING_DIRECTORY` were added to initialize
corresponding target properties.
* The :ref:`Visual Studio Generators` for VS 2015 and above learned to
select the Windows SDK version explicitly using a ``version=`` field
in the :variable:`CMAKE_GENERATOR_PLATFORM` variable.
See :ref:`Visual Studio Platform Selection`.
* The :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION` variable
was added to initialize the :prop_tgt:`VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION`
target property on all targets when they are created.

View File

@@ -1,6 +0,0 @@
Apple-tbd-files-management
--------------------------
* Support for text-based stubs (i.e. ``.tbd`` files) was added on macOS
platform. This capability is managed through the :prop_tgt:`ENABLE_EXPORTS`
property.

View File

@@ -1,7 +0,0 @@
ExternalProject-FetchContent-Relative-git-remotes
-------------------------------------------------
* The :module:`ExternalProject` and :module:`FetchContent` modules
now resolve relative `GIT_REPOSITORY` paths as relative to the
parent project's remote, not as a relative local file system path.
See :policy:`CMP0150`.

View File

@@ -1,7 +0,0 @@
FileAPI-Frameworks
------------------
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
been updated to 2.6.
* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
a new "frameworks" field in the "compileGroups" objects.

View File

@@ -1,6 +0,0 @@
FindCUDA-remove
---------------
* The :module:`FindCUDA` module has been fully deprecated via policy
:policy:`CMP0146`. Port projects to CMake's first-class ``CUDA``
language support.

View File

@@ -1,4 +0,0 @@
FindCUDAToolkit-target-for-cudla
--------------------------------
* The :module:`FindCUDAToolkit` module now provides an imported target for ``cudla``, if found.

View File

@@ -1,5 +0,0 @@
FindDoxygen-custom-config-file
------------------------------
* The :module:`FindDoxygen` module's ``doxygen_add_docs`` command gained
a ``CONFIG_FILE`` option to specify a custom doxygen configuration file.

View File

@@ -1,5 +0,0 @@
FindOpenGL-gles
---------------
* The :module:`FindOpenGL` module gained support for components
``GLES2`` and ``GLES3``.

View File

@@ -1,5 +0,0 @@
FindPython-Windows-ARM
----------------------
* :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3` modules
learn to manage ``Windows/ARM`` platform.

View File

@@ -1,4 +0,0 @@
FindwxWidgets-imported-target
-----------------------------
* The :module:`FindwxWidgets` module now provides an imported target.

View File

@@ -1,4 +0,0 @@
GenEx-LIST
----------
* The :genex:`LIST` generator expression was added to manage lists.

View File

@@ -1,5 +0,0 @@
PATH-genex-supports-list
------------------------
* The :genex:`$<PATH>` generator expression learned to process list of paths
for decomposition and transformation operations.

View File

@@ -1,4 +0,0 @@
System-Framework
----------------
* The :prop_tgt:`SYSTEM` target property is now honored for Apple Frameworks.

View File

@@ -1,7 +0,0 @@
autogen-exe-vars
----------------
* The :variable:`CMAKE_AUTOMOC_EXECUTABLE`,
:variable:`CMAKE_AUTORCC_EXECUTABLE`, and
:variable:`CMAKE_AUTOUIC_EXECUTABLE` variables were added to initialize the
corresponding target properties as targets are created.

View File

@@ -1,7 +0,0 @@
autogen-system-include
----------------------
* The :prop_tgt:`AUTOGEN_USE_SYSTEM_INCLUDE` target property and
corresponding :variable:`CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE` were
added to explicitly control whether autogen headers are
considered system headers.

View File

@@ -1,5 +0,0 @@
automoc-macro-names
-------------------
* The :prop_tgt:`INTERFACE_AUTOMOC_MACRO_NAMES` target property was added to
specify macro names for ``moc`` as a transitive usage requirement.

View File

@@ -1,5 +0,0 @@
cmake-debugger
--------------
* :manual:`cmake(1)` now supports interactive debugging of the CMake language.
See the :option:`--debugger <cmake --debugger>` option.

View File

@@ -1,5 +0,0 @@
cmake-verbose-print-build-tool-command
--------------------------------------
* ``cmake --build $dir --verbose`` will now print the working directory and
command line used to perform the build.

View File

@@ -1,12 +0,0 @@
cpack-innosetup
---------------
* The :cpack_gen:`CPack Inno Setup Generator` was added to package using
Inno Setup.
The new generator adds:
* A lot of options to customize the Inno Setup installer (e.g. custom
installation rules)
* Start menu and desktop shortcuts
* Components (and also downloaded components)

View File

@@ -1,7 +0,0 @@
ctest-timeout-signal
--------------------
* The :prop_test:`TIMEOUT_SIGNAL_NAME` and
:prop_test:`TIMEOUT_SIGNAL_GRACE_PERIOD` test properties were added
to specify a POSIX signal to send to a test process when its timeout
is reached.

View File

@@ -1,14 +0,0 @@
cuda-support-new-compile-modes
------------------------------
* A :prop_tgt:`CUDA_CUBIN_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.cubin`` files
instead of host object files. Currently only supported with NVIDIA.
* A :prop_tgt:`CUDA_FATBIN_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.fatbin`` files
instead of host object files. Currently only supported with NVIDIA.
* A :prop_tgt:`CUDA_OPTIX_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.optixir`` files
instead of host object files. Currently only supported with NVIDIA.

View File

@@ -1,5 +0,0 @@
cxx-module-extensions
---------------------
* Source file extensions ``.ccm``, ``.cxxm``, or ``.c++m`` are now
treated as C++.

View File

@@ -1,5 +0,0 @@
deprecate-extra-generators
--------------------------
* The :ref:`Extra Generators` have been deprecated. IDEs may use the
:manual:`cmake-file-api(7)` to view CMake-generated project build trees.

View File

@@ -1,7 +0,0 @@
deprecate-policy-old
--------------------
* Compatibility with versions of CMake older than 3.5 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,7 +0,0 @@
dll-name-soversion
------------------
* The :variable:`CMAKE_DLL_NAME_WITH_SOVERSION` variable and associated
:prop_tgt:`DLL_NAME_WITH_SOVERSION` target property were added to
optionally append the :prop_tgt:`SOVERSION` to the filename of the
``.dll`` part of a shared library on Windows.

View File

@@ -1,14 +0,0 @@
ep-update-disconnected
----------------------
* The ``update`` and ``patch`` steps of an :module:`ExternalProject` will now
always re-execute if any of their details change, even if
``UPDATE_DISCONNECTED`` was set to true in the call to
:command:`ExternalProject_Add`. If using the GIT download method and the
``GIT_TAG`` is changed and the new ``GIT_TAG`` isn't already known locally,
this is now a fatal error instead of silently using the previous ``GIT_TAG``.
* When ``UPDATE_DISCONNECTED`` is set to true in a call to
:command:`ExternalProject_Add`, the ``configure`` step will no longer
re-run on every build. It will only re-run if details of the ``download``,
``update`` or ``patch`` step change.

View File

@@ -1,7 +0,0 @@
file-GET_RUNTIME_DEPENDENCIES-windows-casing
--------------------------------------------
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command now case-preserves
DLL names reported on Windows. They are still converted to lowercase
for filter matching.

View File

@@ -1,6 +0,0 @@
file-api-query-command
----------------------
* The :command:`cmake_file_api` command was added, enabling projects to
add :manual:`CMake file API <cmake-file-api(7)>` queries for the current
CMake run.

View File

@@ -1,7 +0,0 @@
find_package-PACKAGENAME_ROOT
-----------------------------
* The :command:`find_package` command now searches prefixes specified by
upper-case :variable:`<PACKAGENAME>_ROOT` CMake variables and upper-case
:envvar:`<PACKAGENAME>_ROOT` environment variables.
See policy :policy:`CMP0144`.

View File

@@ -1,5 +0,0 @@
genex-compile-only
------------------
* The :genex:`COMPILE_ONLY` generator expression has been added which provides
compilation usage requirements without any linking requirements.

View File

@@ -1,5 +0,0 @@
install-prefix-genex-install-code-script
----------------------------------------
* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands
now support the :genex:`$<INSTALL_PREFIX>` generator expression.

View File

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

View File

@@ -1,7 +0,0 @@
lint-genex
----------
* The :prop_tgt:`<LANG>_CLANG_TIDY`, :prop_tgt:`<LANG>_CPPCHECK`,
:prop_tgt:`<LANG>_CPPLINT`, and :prop_tgt:`<LANG>_INCLUDE_WHAT_YOU_USE`,
target properties now support
:manual:`generator expressions <cmake-generator-expressions(7)>`.

View File

@@ -1,11 +0,0 @@
ninja-custom-command-depends
----------------------------
* The :command:`add_custom_command` command gained a new
``DEPENDS_EXPLICIT_ONLY`` option to tell the :ref:`Ninja Generators`
not to add any dependencies implied by the target to which it is
attached.
* The :variable:`CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY` variable can
be set to enable ``DEPENDS_EXPLICIT_ONLY`` in all uses of
:command:`add_custom_command` command.

View File

@@ -1,7 +0,0 @@
preset-includes-macro-expansion
-------------------------------
* :manual:`cmake-presets(7)` files now support schema version ``7``.
* :manual:`cmake-presets(7)` now supports ``$penv{}`` macro expansion
in ``include`` fields.

View File

@@ -1,6 +0,0 @@
remove-FindPythonInterp-FindPythonLibs
--------------------------------------
* The :module:`FindPythonInterp` and :module:`FindPythonLibs` modules have
been fully deprecated via policy :policy:`CMP0148`. Port projects to
:module:`FindPython3`, :module:`FindPython2`, or :module:`FindPython`.

View File

@@ -1,5 +0,0 @@
remove-dart-modules
-------------------
* The :module:`Dart` and :module:`FindDart` modules have been deprecated via
policy :policy:`CMP0145`. Port projects to the :module:`CTest` module.

View File

@@ -1,5 +0,0 @@
skip-linting
------------
* The :prop_sf:`SKIP_LINTING` source file property was added to suppress
target-wide code checks on specific sources.

View File

@@ -1,11 +0,0 @@
use-linker-depfile
------------------
* GNU (and GNU-compatible) linkers gained support for a ``--dependency-file``
flag in GNU Binutils 2.35 and LLVM's LLD 12.0.0. The
:ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>`
generators will now add these flags so that files read by the linker will
cause a relink if they change (typically modified timestamps).
This feature can be controlled by the variable
:variable:`CMAKE_LINK_DEPENDS_USE_LINKER`.

View File

@@ -1,5 +0,0 @@
vs-BuildInParallel
------------------
* :ref:`Visual Studio Generators`, for VS 15.8 (2017) and newer, now
build custom commands in parallel. See policy :policy:`CMP0147`.

View File

@@ -1,8 +0,0 @@
vs-debugger-init
----------------
* Variables :variable:`CMAKE_VS_DEBUGGER_COMMAND`,
:variable:`CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS`,
:variable:`CMAKE_VS_DEBUGGER_ENVIRONMENT`, and
:variable:`CMAKE_VS_DEBUGGER_WORKING_DIRECTORY` were added to initialize
corresponding target properties.

View File

@@ -1,7 +0,0 @@
vs-sdk-selection
----------------
* The :ref:`Visual Studio Generators` for VS 2015 and above learned to
select the Windows SDK version explicitly using a ``version=`` field
in the :variable:`CMAKE_GENERATOR_PLATFORM` variable.
See :ref:`Visual Studio Platform Selection`.

View File

@@ -1,6 +0,0 @@
vs-windows-min-version
----------------------
* The :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION` variable
was added to initialize the :prop_tgt:`VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION`
target property on all targets when they are created.

View File

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

View File

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