Browse Source

Help: Organize and revise 3.26 release notes

Add section headers similar to the 3.25 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.

Add a bullet for `FindImageMagick` that was accidentally left out
when its changes were made.
Brad King 2 years ago
parent
commit
385435cf78
1 changed files with 116 additions and 62 deletions
  1. 116 62
      Help/release/3.26.rst

+ 116 - 62
Help/release/3.26.rst

@@ -7,37 +7,57 @@ CMake 3.26 Release Notes
 
 Changes made since CMake 3.25 include the following.
 
-* The :genex:`BUILD_LOCAL_INTERFACE` generator expression was added to
-  prevent usage requirements from being exported to dependent projects.
+New Features
+============
 
-* A new :prop_tgt:`<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` target property was
-  created to allow the ``clang-tidy`` tool to export its suggested fixes to a
-  set of ``.yaml`` files. A new
-  :variable:`CMAKE_<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` variable was created to
-  initialize this property.
+Languages
+---------
 
-* The :manual:`cmake(1)` ``-E`` option learned a new ``copy_directory_if_different`` command.
+* The ``ASM_MARMASM`` language was added to support the
+  Microsoft ARM assembler language.
 
-* The :option:`cmake -E copy <cmake-E copy>` argument now supports a ``-t`` argument.
+Command-Line
+------------
 
-* The :prop_tgt:`EXPORT_COMPILE_COMMANDS` target property will now have the
-  ``output`` field in the compile commands objects. This allows multi-config
-  generators (namely :generator:`Ninja Multi-Config` generator) to contain the
-  compile commands for all configurations.
+* The :option:`cmake -E copy <cmake-E copy>` command-line tool now
+  supports a ``-t`` argument.
 
-* For all ``COMPILE_DEFINITIONS`` properties, any leading ``-D`` on an item
-  will be removed regardless how to was defined: as is or inside a generator
-  expression.
+* The :option:`cmake -E copy_directory_if_different
+  <cmake-E copy_directory_if_different>` command-line tool was added.
 
-* CMake now writes a YAML log of configure-time checks.
+Configure Log
+-------------
+
+* CMake now writes a YAML log of configure-time checks to
+  ``CMakeFiles/CMakeConfigureLog.yaml`` under the top of the build tree.
   See the :manual:`cmake-configure-log(7)` manual.
 
+File-Based API
+--------------
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
+  been updated to 2.5.
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object
+  gained a new ``fileSets`` field and associated ``fileSetIndex``
+  field to ``sources`` objects.
+
 * The :manual:`cmake-file-api(7)` gained a new "configureLog" object kind
   that enables stable access to the :manual:`cmake-configure-log(7)`.
 
+Commands
+--------
+
+* The :command:`add_custom_command` and :command:`add_custom_target` commands
+  now support :manual:`generator expressions <cmake-generator-expressions(7)>`
+  in their ``COMMENT`` option.
+
 * The :command:`message` command gained a ``CONFIGURE_LOG`` mode to
   record an entry in the :manual:`cmake-configure-log(7)`.
 
+* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands
+  now support the ``%z`` and ``%Z`` specifiers for the time zone.
+
 * The :command:`try_compile` and :command:`try_run` commands gained
   a ``LOG_DESCRIPTION`` option specifying text to be recorded in the
   :manual:`cmake-configure-log(7)`.
@@ -46,51 +66,103 @@ Changes made since CMake 3.25 include the following.
   ``NO_LOG`` option to skip recording a :manual:`cmake-configure-log(7)`
   entry.
 
-* The :envvar:`CTEST_NO_TESTS_ACTION` environment variable was added to
-  provide a default value for the
-  :option:`--no-tests=\<action\> <ctest --no-tests>` command line
-  argument of :manual:`ctest(1)`.
+Variables
+---------
 
-* :command:`add_custom_command` and :command:`add_custom_target` now
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`
-  in their ``COMMENT`` option.
+* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now
+  set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only
+  one frontend variant.
 
-* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for
-  compatibility with CMake versions older than 2.8.4 has been removed.
+* A :variable:`CMAKE_VS_VERSION_BUILD_NUMBER` variable is now set by
+  :ref:`Visual Studio Generators` for VS 2017 and above to report the
+  four-component Visual Studio version number.
+
+Properties
+----------
+
+* The :prop_tgt:`<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` target property was
+  added to allow the ``clang-tidy`` tool to export its suggested fixes to a
+  set of ``.yaml`` files. A new
+  :variable:`CMAKE_<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` variable was created to
+  initialize this property.
+
+* The :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS <XCODE_EMBED_<type>>`
+  target property was added to tell the :generator:`Xcode` generator to
+  ExtensionKit-based extensions such as extensions using the Background
+  Assets framework.  Aspects of the embedding can be customized with:
+
+  * :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH <XCODE_EMBED_<type>>`
+  * :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY <XCODE_EMBED_<type>_CODE_SIGN_ON_COPY>`
+  * :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY <XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY>`
+
+Modules
+-------
 
 * The :module:`ExternalProject` module :command:`ExternalProject_Add` command
   gained an ``INSTALL_BYPRODUCTS`` option to specify files generated by the
-  "install" step.
+  ``install`` step.
 
-* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
-  been updated to 2.5.
+* The :module:`FindCUDAToolkit` module:
 
-* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object
-  gained a new ``fileSets`` field and associated ``fileSetIndex``
-  field to ``sources`` objects.
+  * gained support for the ``sbsa-linux`` cross compilation target, and
 
-* The :module:`FindCUDAToolkit` gained support for the `sbsa-linux` cross compilation target
+  * now provides an imported target for ``nvrtc_static``, if found.
 
-* The :module:`FindCUDAToolkit` module now provides a target for
-  ``libnvrtc_static``, if found.
+* The :module:`FindImageMagick` module now provides imported targets.
 
-* The :module:`FindPython3` and :module:`FindPython` modules gain the support
-  of the
-  `Stable Application Binary Interface <https://docs.python.org/3/c-api/stable.html>`_.
+* The :module:`FindPython3` and :module:`FindPython` modules gained
+  support for the `Stable Application Binary Interface`_.
 
-* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now
-  set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only
-  one frontend variant.
+* The :module:`UseSWIG` module gained the support for the ``perl5`` language.
+
+.. _`Stable Application Binary Interface`: https://docs.python.org/3/c-api/stable.html
+
+Generator Expressions
+---------------------
+
+* The :genex:`$<BUILD_LOCAL_INTERFACE:...>` generator expression was added to
+  prevent usage requirements from being exported to dependent projects.
+
+CTest
+-----
+
+* The :envvar:`CTEST_NO_TESTS_ACTION` environment variable was added to
+  provide a default value for the
+  :option:`--no-tests=\<action\> <ctest --no-tests>` command line
+  argument of :manual:`ctest(1)`.
+
+Deprecated and Removed Features
+===============================
+
+* The ``CMakeFiles/CMakeOutput.log`` and ``CMakeFiles/CMakeError.log``
+  files are no longer populated by CMake's builtin modules, and
+  :manual:`cmake(1)` no longer suggests looking at them after a
+  ``CMake Error`` occurs.  Information previously logged to those
+  files is instead logged to ``CMakeFiles/CMakeConfigureLog.yaml``,
+  the :manual:`cmake-configure-log(7)`.
+
+* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for
+  compatibility with CMake versions older than 2.8.4 has been removed.
+
+Other Changes
+=============
 
 * :ref:`Language Standard Flags`, such as ``-std=c++11``, when generated due
   to :command:`target_compile_features` or :variable:`CMAKE_<LANG>_STANDARD`,
   are now placed before flags added by :command:`target_compile_options`,
   rather than after them.
 
-* The ``ASM_MARMASM`` language was added to support the Microsoft ARM assembler language.
+* For all ``COMPILE_DEFINITIONS`` properties, any leading ``-D`` on an item
+  is removed whether or not it was specified by a generator expression.
 
-* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands
-  now support the ``%z`` and ``%Z`` specifiers for the time zone.
+* The ``compile_commands.json`` database enabled by
+  :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` now provides the ``output``
+  field in the compile commands objects.  This allows multi-config
+  generators, such as the :generator:`Ninja Multi-Config` generator,
+  to provide the compile commands for all configurations.
+
+* The :prop_gbl:`USE_FOLDERS` global property is treated as ``ON`` by default.
+  See policy :policy:`CMP0143`.
 
 * The top-level :command:`project` call will now emit an author warning if the
   documented command order in relation to :command:`cmake_minimum_required` is
@@ -98,21 +170,3 @@ Changes made since CMake 3.25 include the following.
 
 * The :option:`cmake --trace` option now follows :command:`try_compile` and
   :command:`try_run` invocations.
-
-* Global property :prop_gbl:`USE_FOLDERS` is treated as ``ON`` by default.
-  See policy :policy:`CMP0143`.
-
-* The :module:`UseSWIG` module gained the support of ``perl5`` language.
-
-* A :variable:`CMAKE_VS_VERSION_BUILD_NUMBER` variable is now set by
-  :ref:`Visual Studio Generators` for VS 2017 and above to report the
-  four-component Visual Studio version number.
-
-* The :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS <XCODE_EMBED_<type>>` target property
-  was added to tell the :generator:`Xcode` generator to ExtensionKit-based extensions
-  such as extensions using the Background Assets framework.
-  Aspects of the embedding can be customized with the
-  :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH <XCODE_EMBED_<type>>`,
-  :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY <XCODE_EMBED_<type>_CODE_SIGN_ON_COPY>` and
-  :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY <XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY>`
-  properties.