Browse Source

Merge topic 'doc-3.26-relnotes'

385435cf78 Help: Organize and revise 3.26 release notes
4c63f031c1 Help: Consolidate 3.26 release notes
bc1ba6d56b Help: Document experimental feature gate affecting CXX_SCAN_FOR_MODULES
71f9c1943d FindImageMagick: Fix documentation syntax in usage example

Acked-by: Kitware Robot <[email protected]>
Merge-request: !8148
Brad King 2 years ago
parent
commit
2d5675e4fa
32 changed files with 192 additions and 175 deletions
  1. 5 0
      Help/prop_sf/CXX_SCAN_FOR_MODULES.rst
  2. 5 0
      Help/prop_tgt/CXX_SCAN_FOR_MODULES.rst
  3. 172 0
      Help/release/3.26.rst
  4. 0 6
      Help/release/dev/COMPILE_DEFINITIONS-property-cleanup.rst
  5. 0 6
      Help/release/dev/ExternalProject-INSTALL_BYPRODUCTS.rst
  6. 0 4
      Help/release/dev/FindCUDAToolkit-arm64-sbsa.rst
  7. 0 5
      Help/release/dev/FindCUDAToolkit-nvrtc.rst
  8. 0 6
      Help/release/dev/FindPython-Stable-ABI.rst
  9. 0 4
      Help/release/dev/UseSWIG-perl5.rst
  10. 0 5
      Help/release/dev/build-local-interface-genex.rst
  11. 0 8
      Help/release/dev/clang-tidy-export-fixes-dir.rst
  12. 0 4
      Help/release/dev/cmake-E-copy-directory-if-different.rst
  13. 0 4
      Help/release/dev/cmake-E-copy-t-arg.rst
  14. 0 7
      Help/release/dev/compile-commands-output-field.rst
  15. 0 19
      Help/release/dev/configure-log.rst
  16. 0 7
      Help/release/dev/ctest-no-tests-action-env-var.rst
  17. 0 6
      Help/release/dev/custom-command-comment-genex.rst
  18. 0 5
      Help/release/dev/cxx-scanning-properties.rst
  19. 0 5
      Help/release/dev/cygwin-no-legacy-win32.rst
  20. 0 9
      Help/release/dev/file-api-file-sets.rst
  21. 0 6
      Help/release/dev/frontend-variant-always.rst
  22. 0 7
      Help/release/dev/lang-std-flag-order.rst
  23. 0 4
      Help/release/dev/marmasm-language.rst
  24. 0 5
      Help/release/dev/timestamp-timezone.rst
  25. 0 6
      Help/release/dev/top-level-command-order.rst
  26. 0 5
      Help/release/dev/trace-try_compile.rst
  27. 0 5
      Help/release/dev/use-folder-on-by-default.rst
  28. 0 6
      Help/release/dev/vs-version-var.rst
  29. 0 11
      Help/release/dev/xcode-ios-extensionkit.rst
  30. 1 0
      Help/release/index.rst
  31. 5 0
      Help/variable/CMAKE_CXX_SCAN_FOR_MODULES.rst
  32. 4 10
      Modules/FindImageMagick.cmake

+ 5 - 0
Help/prop_sf/CXX_SCAN_FOR_MODULES.rst

@@ -17,3 +17,8 @@ Note that scanning is only performed if C++20 or higher is enabled for the
 target and the source uses the ``CXX`` language.  Scanning for modules in
 target and the source uses the ``CXX`` language.  Scanning for modules in
 sources belonging to file sets of type ``CXX_MODULES`` and
 sources belonging to file sets of type ``CXX_MODULES`` and
 ``CXX_MODULES_HEADER_UNITS`` is always performed.
 ``CXX_MODULES_HEADER_UNITS`` is always performed.
+
+.. note ::
+
+  This setting is meaningful only when experimental support for C++ modules
+  has been enabled by the ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`` gate.

+ 5 - 0
Help/prop_tgt/CXX_SCAN_FOR_MODULES.rst

@@ -20,3 +20,8 @@ scan the target's ``CXX`` sources at build time.
 Note that scanning is only performed if C++20 or higher is enabled for the
 Note that scanning is only performed if C++20 or higher is enabled for the
 target.  Scanning for modules in the target's sources belonging to file sets
 target.  Scanning for modules in the target's sources belonging to file sets
 of type ``CXX_MODULES`` and ``CXX_MODULES_HEADER_UNITS`` is always performed.
 of type ``CXX_MODULES`` and ``CXX_MODULES_HEADER_UNITS`` is always performed.
+
+.. note ::
+
+  This setting is meaningful only when experimental support for C++ modules
+  has been enabled by the ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`` gate.

+ 172 - 0
Help/release/3.26.rst

@@ -0,0 +1,172 @@
+CMake 3.26 Release Notes
+************************
+
+.. only:: html
+
+  .. contents::
+
+Changes made since CMake 3.25 include the following.
+
+New Features
+============
+
+Languages
+---------
+
+* The ``ASM_MARMASM`` language was added to support the
+  Microsoft ARM assembler language.
+
+Command-Line
+------------
+
+* The :option:`cmake -E copy <cmake-E copy>` command-line tool now
+  supports a ``-t`` argument.
+
+* The :option:`cmake -E copy_directory_if_different
+  <cmake-E copy_directory_if_different>` command-line tool was added.
+
+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)`.
+
+* The :command:`try_compile` and :command:`try_run` commands gained a
+  ``NO_LOG`` option to skip recording a :manual:`cmake-configure-log(7)`
+  entry.
+
+Variables
+---------
+
+* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now
+  set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only
+  one frontend variant.
+
+* 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.
+
+* The :module:`FindCUDAToolkit` module:
+
+  * gained support for the ``sbsa-linux`` cross compilation target, and
+
+  * now provides an imported target for ``nvrtc_static``, if found.
+
+* The :module:`FindImageMagick` module now provides imported targets.
+
+* The :module:`FindPython3` and :module:`FindPython` modules gained
+  support for the `Stable Application Binary Interface`_.
+
+* 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.
+
+* For all ``COMPILE_DEFINITIONS`` properties, any leading ``-D`` on an item
+  is removed whether or not it was specified by a generator expression.
+
+* 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
+  not respected.
+
+* The :option:`cmake --trace` option now follows :command:`try_compile` and
+  :command:`try_run` invocations.

+ 0 - 6
Help/release/dev/COMPILE_DEFINITIONS-property-cleanup.rst

@@ -1,6 +0,0 @@
-COMPILE_DEFINITIONS-property-cleanup
-------------------------------------
-
-* 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.

+ 0 - 6
Help/release/dev/ExternalProject-INSTALL_BYPRODUCTS.rst

@@ -1,6 +0,0 @@
-ExternalProject-INSTALL_BYPRODUCTS
-----------------------------------
-
-* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
-  gained an ``INSTALL_BYPRODUCTS`` option to specify files generated by the
-  "install" step.

+ 0 - 4
Help/release/dev/FindCUDAToolkit-arm64-sbsa.rst

@@ -1,4 +0,0 @@
-FindCUDAToolkit-arm64-sbsa
---------------------------
-
-* The :module:`FindCUDAToolkit` gained support for the `sbsa-linux` cross compilation target

+ 0 - 5
Help/release/dev/FindCUDAToolkit-nvrtc.rst

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

+ 0 - 6
Help/release/dev/FindPython-Stable-ABI.rst

@@ -1,6 +0,0 @@
-FindPython-Stable-ABI
----------------------
-
-* 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>`_.

+ 0 - 4
Help/release/dev/UseSWIG-perl5.rst

@@ -1,4 +0,0 @@
-UseSWIG-perl5
--------------
-
-* The :module:`UseSWIG` module gained the support of ``perl5`` language.

+ 0 - 5
Help/release/dev/build-local-interface-genex.rst

@@ -1,5 +0,0 @@
-build-local-interface-genex
----------------------------
-
-* The :genex:`BUILD_LOCAL_INTERFACE` generator expression was added to
-  prevent usage requirements from being exported to dependent projects.

+ 0 - 8
Help/release/dev/clang-tidy-export-fixes-dir.rst

@@ -1,8 +0,0 @@
-clang-tidy-export-fixes-dir
----------------------------
-
-* 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.

+ 0 - 4
Help/release/dev/cmake-E-copy-directory-if-different.rst

@@ -1,4 +0,0 @@
-cmake-E-copy-directory-if-different
------------------------------------
-
-* The :manual:`cmake(1)` ``-E`` option learned a new ``copy_directory_if_different`` command.

+ 0 - 4
Help/release/dev/cmake-E-copy-t-arg.rst

@@ -1,4 +0,0 @@
-cmake-E-copy-t-arg
-------------------
-
-* The :option:`cmake -E copy <cmake-E copy>` argument now supports a ``-t`` argument.

+ 0 - 7
Help/release/dev/compile-commands-output-field.rst

@@ -1,7 +0,0 @@
-compile-commands-output-field
------------------------------
-
-* 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.

+ 0 - 19
Help/release/dev/configure-log.rst

@@ -1,19 +0,0 @@
-Configure Log
--------------
-
-* CMake now writes a YAML log of configure-time checks.
-  See the :manual:`cmake-configure-log(7)` manual.
-
-* The :manual:`cmake-file-api(7)` gained a new "configureLog" object kind
-  that enables stable access to the :manual:`cmake-configure-log(7)`.
-
-* The :command:`message` command gained a ``CONFIGURE_LOG`` mode to
-  record an entry in the :manual:`cmake-configure-log(7)`.
-
-* 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)`.
-
-* The :command:`try_compile` and :command:`try_run` commands gained a
-  ``NO_LOG`` option to skip recording a :manual:`cmake-configure-log(7)`
-  entry.

+ 0 - 7
Help/release/dev/ctest-no-tests-action-env-var.rst

@@ -1,7 +0,0 @@
-ctest-no-tests-action-env-var
------------------------------
-
-* 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)`.

+ 0 - 6
Help/release/dev/custom-command-comment-genex.rst

@@ -1,6 +0,0 @@
-custom-command-comment-genex
-----------------------------
-
-* :command:`add_custom_command` and :command:`add_custom_target` now
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`
-  in their ``COMMENT`` option.

+ 0 - 5
Help/release/dev/cxx-scanning-properties.rst

@@ -1,5 +0,0 @@
-cxx-scanning-properties
------------------------
-
-* The :prop_tgt:`CXX_SCAN_FOR_MODULES` target and source file properties may
-  be used to enable or disable scanning for C++ module dependencies.

+ 0 - 5
Help/release/dev/cygwin-no-legacy-win32.rst

@@ -1,5 +0,0 @@
-cygwin-no-legacy-win32
-----------------------
-
-* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for
-  compatibility with CMake versions older than 2.8.4 has been removed.

+ 0 - 9
Help/release/dev/file-api-file-sets.rst

@@ -1,9 +0,0 @@
-file-api-file-sets
-------------------
-
-* 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.

+ 0 - 6
Help/release/dev/frontend-variant-always.rst

@@ -1,6 +0,0 @@
-frontend-variant-always
------------------------
-
-* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now
-  set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only
-  one frontend variant.

+ 0 - 7
Help/release/dev/lang-std-flag-order.rst

@@ -1,7 +0,0 @@
-lang-std-flag-order
--------------------
-
-* :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.

+ 0 - 4
Help/release/dev/marmasm-language.rst

@@ -1,4 +0,0 @@
-marmasm-language
-----------------
-
-* The ``ASM_MARMASM`` language was added to support the Microsoft ARM assembler language.

+ 0 - 5
Help/release/dev/timestamp-timezone.rst

@@ -1,5 +0,0 @@
-timestamp-timezone
-------------------
-
-* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands
-  now support the ``%z`` and ``%Z`` specifiers for the time zone.

+ 0 - 6
Help/release/dev/top-level-command-order.rst

@@ -1,6 +0,0 @@
-top-level-command-order
------------------------
-
-* 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
-  not respected.

+ 0 - 5
Help/release/dev/trace-try_compile.rst

@@ -1,5 +0,0 @@
-trace-try_compile
------------------
-
-* The :option:`cmake --trace` option now follows :command:`try_compile` and
-  :command:`try_run` invocations.

+ 0 - 5
Help/release/dev/use-folder-on-by-default.rst

@@ -1,5 +0,0 @@
-use-folder-on-by-default
-------------------------
-
-* Global property :prop_gbl:`USE_FOLDERS` is treated as ``ON`` by default.
-  See policy :policy:`CMP0143`.

+ 0 - 6
Help/release/dev/vs-version-var.rst

@@ -1,6 +0,0 @@
-vs-version-var
---------------
-
-* 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.

+ 0 - 11
Help/release/dev/xcode-ios-extensionkit.rst

@@ -1,11 +0,0 @@
-xcode-ios-extensionkit
-----------------------
-
-* 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.

+ 1 - 0
Help/release/index.rst

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

+ 5 - 0
Help/variable/CMAKE_CXX_SCAN_FOR_MODULES.rst

@@ -8,3 +8,8 @@ Whether to scan C++ source files for module dependencies.
 This variable is used to initialize the :prop_tgt:`CXX_SCAN_FOR_MODULES`
 This variable is used to initialize the :prop_tgt:`CXX_SCAN_FOR_MODULES`
 property on all the targets.  See that target property for additional
 property on all the targets.  See that target property for additional
 information.
 information.
+
+.. note ::
+
+  This setting is meaningful only when experimental support for C++ modules
+  has been enabled by the ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`` gate.

+ 4 - 10
Modules/FindImageMagick.cmake

@@ -96,19 +96,13 @@ Result Variables
   Full path to <component> libraries.
   Full path to <component> libraries.
 
 
 
 
-Example Usages:
-^^^^^^^^^^^^^^^
+Example Usage
+^^^^^^^^^^^^^
 
 
-  find_package(ImageMagick)
-  find_package(ImageMagick COMPONENTS convert)
-  find_package(ImageMagick COMPONENTS convert mogrify display)
-  find_package(ImageMagick COMPONENTS Magick++)
-  find_package(ImageMagick COMPONENTS Magick++ convert)
+.. code-block:: cmake
 
 
+  find_package(ImageMagick COMPONENTS Magick++)
   target_link_libraries(example PRIVATE ImageMagick::Magick++)
   target_link_libraries(example PRIVATE ImageMagick::Magick++)
-
-Note that the standard :command:`find_package` features are supported (i.e.,
-``QUIET``, ``REQUIRED``, etc.).
 #]=======================================================================]
 #]=======================================================================]
 
 
 find_package(PkgConfig QUIET)
 find_package(PkgConfig QUIET)