瀏覽代碼

Help: Consolidate 3.28 release notes

Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.28.rst`.
Brad King 2 年之前
父節點
當前提交
32f3966521
共有 34 個文件被更改,包括 161 次插入216 次删除
  1. 160 0
      Help/release/3.28.rst
  2. 0 6
      Help/release/dev/CMAKE_CROSSCOMPILING_EMULATOR-env-variable.rst
  3. 0 5
      Help/release/dev/CrayClang-compiler.rst
  4. 0 10
      Help/release/dev/ExternalProject-build-jobserver.rst
  5. 0 8
      Help/release/dev/ExternalProject-declare-download-byproducts.rst
  6. 0 7
      Help/release/dev/FetchContent-exclude-from-all.rst
  7. 0 5
      Help/release/dev/FindCURL-static.rst
  8. 0 5
      Help/release/dev/FindEXPAT-static.rst
  9. 0 5
      Help/release/dev/FindPkgConfig-override.rst
  10. 0 7
      Help/release/dev/apple-visionos.rst
  11. 0 5
      Help/release/dev/command-job-server-aware.rst
  12. 0 8
      Help/release/dev/cxxmodules-no-longer-experimental.rst
  13. 0 6
      Help/release/dev/deprecate-install-combined.rst
  14. 0 6
      Help/release/dev/dynamically-generated-resource-spec-file.rst
  15. 0 6
      Help/release/dev/exec_program-policy.rst
  16. 0 7
      Help/release/dev/fileset-private-dep.rst
  17. 0 17
      Help/release/dev/find-windows-no-PATH-prefixes.rst
  18. 0 5
      Help/release/dev/genexp-no-eval.rst
  19. 0 9
      Help/release/dev/hip-nvidia.rst
  20. 0 6
      Help/release/dev/host-msystem-prefix.rst
  21. 0 7
      Help/release/dev/imported-implib-only.rst
  22. 0 5
      Help/release/dev/imported-target-framework-path.rst
  23. 0 6
      Help/release/dev/mingw-search-prefixes.rst
  24. 0 5
      Help/release/dev/orangec-compiler.rst
  25. 0 5
      Help/release/dev/presets-schema.rst
  26. 0 5
      Help/release/dev/rel-linux-x86_64.rst
  27. 0 4
      Help/release/dev/remove-vs11-generator.rst
  28. 0 15
      Help/release/dev/test-properties-directory.rst
  29. 0 5
      Help/release/dev/vs12-deprecate.rst
  30. 0 5
      Help/release/dev/xcframework-find-library.rst
  31. 0 7
      Help/release/dev/xcframework-target-link-libraries.rst
  32. 0 6
      Help/release/dev/xcode-embed-resources.rst
  33. 0 8
      Help/release/dev/xcode-no-legacy-buildsystem.rst
  34. 1 0
      Help/release/index.rst

+ 160 - 0
Help/release/3.28.rst

@@ -0,0 +1,160 @@
+CMake 3.28 Release Notes
+************************
+
+.. only:: html
+
+  .. contents::
+
+Changes made since CMake 3.27 include the following.
+
+* CMake learned about Apple visionOS and its `xros` and `xrsimulator` SDKs.
+  Compiling for Apple visionOS can be requested by setting
+  :variable:`CMAKE_SYSTEM_NAME` to ``visionOS``. For more
+  information see :manual:`cmake-toolchains(7)`.
+
+* The :envvar:`CMAKE_CROSSCOMPILING_EMULATOR` environment variable
+  was added to initialize the :variable:`CMAKE_CROSSCOMPILING_EMULATOR`
+  cache variable.
+
+* The :command:`add_custom_command` and :command:`add_custom_target`
+  commands gained a ``JOB_SERVER_AWARE`` option.
+
+* Cray Clang-based compilers are now supported with
+  :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``CrayClang``.
+
+* C++ 20 named modules are now supported by :ref:`Ninja Generators`
+  and :ref:`Visual Studio Generators` for VS 2022 and newer, in combination
+  with the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
+  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and newer.
+  See :manual:`cmake-cxxmodules(7)` for details.
+
+* The :prop_tgt:`IOS_INSTALL_COMBINED` target property and corresponding
+  :variable:`CMAKE_IOS_INSTALL_COMBINED` variable have been deprecated.
+  Their functionality does not make sense on Apple Silicon hosts.
+
+* CTest may now take a :ref:`dynamically-generated resource spec file
+  <ctest-resource-dynamically-generated-spec-file>`, which can be specified by the
+  :prop_test:`GENERATED_RESOURCE_SPEC_FILE` test property.
+
+* The :command:`exec_program` command, which has been deprecated since CMake
+  3.0, has been removed by policy :policy:`CMP0153`. Use the
+  :command:`execute_process` command instead.
+
+* The :module:`ExternalProject` module now includes the
+  ``BUILD_JOB_SERVER_AWARE`` option for the
+  :command:`ExternalProject_Add` command. This option enables
+  the integration of the GNU Make job server when using an
+  explicit ``BUILD_COMMAND`` with certain :ref:`Makefile Generators`.
+  Additionally, the :command:`ExternalProject_Add_Step` command
+  has been updated to support the new ``JOB_SERVER_AWARE`` option.
+
+* The :module:`ExternalProject` module now declares ``BYPRODUCTS`` for the
+  downloaded file for generated ``download`` steps. Previously, if multiple
+  external projects downloaded to the same file, hash verification could fail.
+  Now, when using the :ref:`Ninja Generators`, this scenario is detected and
+  Ninja will raise an error stating that multiple rules generate the same file.
+
+* The :module:`FetchContent` module's :command:`FetchContent_Declare` command
+  gained an ``EXCLUDE_FROM_ALL`` option, which propagates through to the
+  :command:`add_subdirectory` call made by
+  :command:`FetchContent_MakeAvailable` for the dependency.
+
+* Generated files, in targets using :ref:`file sets`, are now considered
+  private by default.  Generated public headers must be specified using
+  file sets.  This allows :ref:`Ninja Generators` to produce more
+  efficient build graphs.  See policy :policy:`CMP0154`.
+
+* The :module:`FindCURL` module gained a ``CURL_USE_STATIC_LIBS`` hint
+  to select static libraries.
+
+* The :module:`FindEXPAT` module gained a ``EXPAT_USE_STATIC_LIBS`` hint
+  to select static libraries.
+
+* The :module:`FindPkgConfig` module :command:`pkg_get_variable` function
+  gained a ``DEFINE_VARIABLES`` option to pass variables to ``pkg-config``.
+
+* The :command:`find_library`, :command:`find_path`, and :command:`find_file`
+  commands no longer search in installation prefixes derived from the ``PATH``
+  environment variable.  This behavior was added in CMake 3.3 to support
+  MSYS and MinGW (``MSYSTEM``) development environments on Windows, but
+  it can search undesired prefixes that happen to be in the ``PATH`` for
+  unrelated reasons.  Users that keep some ``<prefix>/bin`` directories in
+  the ``PATH`` just for their tools do not necessarily want any corresponding
+  ``<prefix>/lib`` or ``<prefix>/include`` directories searched.
+  The behavior was reverted for non-Windows platforms by CMake 3.6.
+  Now it has been reverted on Windows platforms too.
+
+  One may set the ``CMAKE_PREFIX_PATH`` environment variable with a
+  :ref:`semicolon-separated list <CMake Language Lists>` of prefixes
+  that are to be searched.
+
+* :manual:`generator expressions <cmake-generator-expressions(7)>`
+  short-circuit to avoid unnecessary evaluation of parameters.
+
+* ``HIP`` language code may now be compiled for NVIDIA GPUs
+  using the NVIDIA CUDA Compiler (NVCC).
+
+* The :variable:`CMAKE_HIP_PLATFORM` variable was added to specify
+  the GPU platform for which HIP language sources are to be compiled
+  (``amd`` or ``nvidia``).
+
+* The :command:`cmake_host_system_information` command gained a
+  ``MSYSTEM_PREFIX`` query for the installation prefix of a MSYS
+  or MinGW development environment on Windows hosts.
+
+* On imported shared libraries, the :prop_tgt:`IMPORTED_IMPLIB` target
+  property may now be used without :prop_tgt:`IMPORTED_LOCATION`.
+  This can be used to represent a stub library whose location should not
+  be added as a runtime search path to dependents that link it.
+
+* The :prop_tgt:`IMPORTED_LOCATION` property of a macOS framework may now be
+  the location of the framework folder itself.
+
+* When using MinGW tools in a ``MSYSTEM`` environment on Windows,
+  the ``$MSYSTEM_PREFIX/local`` and ``$MSYSTEM_PREFIX`` prefixes are
+  now added to :variable:`CMAKE_SYSTEM_PREFIX_PATH`.
+
+* The OrangeC compiler is now supported with
+  :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``OrangeC``.
+
+* :manual:`cmake-presets(7)` files now support schema version ``8``.
+  It adds support for a ``$schema`` field.
+
+* The precompiled Linux ``x86_64`` binaries provided on
+  `cmake.org <https://cmake.org/download/>`_ now require GLIBC 2.17 or higher.
+
+* The :generator:`Visual Studio 11 2012` generator has been removed.
+
+* The ``TEST`` mode of the :command:`set_property` command gained a
+  ``DIRECTORY`` sub-option, which allows you to set properties on tests in
+  other directories.
+* The :command:`set_tests_properties` command gained a ``DIRECTORY``
+  sub-option, which allows you to set properties on tests in other
+  directories.
+* The ``TEST`` mode of the :command:`get_property` command gained a
+  ``DIRECTORY`` sub-option, which allows you to get properties on tests in
+  other directories.
+* The :command:`get_test_property` command gained a ``DIRECTORY``
+  sub-option, which allows you to get properties on tests in other
+  directories.
+
+* The :generator:`Visual Studio 12 2013` generator is now deprecated
+  and will be removed in a future version of CMake.
+
+* The :command:`find_library` command can now find ``.xcframework`` folders on
+  Apple platforms.
+
+* Targets may now link against an ``.xcframework`` folder in
+  :command:`target_link_libraries`.
+* The :prop_tgt:`IMPORTED_LOCATION` property of a target may now be an
+  ``.xcframework`` folder.
+
+* The :prop_tgt:`XCODE_EMBED_RESOURCES <XCODE_EMBED_<type>>` target property
+  was added to tell the :generator:`Xcode` generator what targets to put in
+  the ``Embed Resources`` build phase.
+
+* The :generator:`Xcode` generator will now issue a fatal error if
+  the Legacy Build System has been selected for Xcode 14 and
+  newer. Those Xcode versions dropped support for the Legacy Build
+  System and expect the project being set-up for their current
+  Build System.

+ 0 - 6
Help/release/dev/CMAKE_CROSSCOMPILING_EMULATOR-env-variable.rst

@@ -1,6 +0,0 @@
-CMAKE_CROSSCOMPILING_EMULATOR-env-variable
-------------------------------------------
-
-* The :envvar:`CMAKE_CROSSCOMPILING_EMULATOR` environment variable
-  was added to initialize the :variable:`CMAKE_CROSSCOMPILING_EMULATOR`
-  cache variable.

+ 0 - 5
Help/release/dev/CrayClang-compiler.rst

@@ -1,5 +0,0 @@
-CrayClang-compiler
-------------------
-
-* Cray Clang-based compilers are now supported with
-  :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``CrayClang``.

+ 0 - 10
Help/release/dev/ExternalProject-build-jobserver.rst

@@ -1,10 +0,0 @@
-ExternalProject-build-jobserver
--------------------------------
-
-* The :module:`ExternalProject` module now includes the
-  ``BUILD_JOB_SERVER_AWARE`` option for the
-  :command:`ExternalProject_Add` command. This option enables
-  the integration of the GNU Make job server when using an
-  explicit ``BUILD_COMMAND`` with certain :ref:`Makefile Generators`.
-  Additionally, the :command:`ExternalProject_Add_Step` command
-  has been updated to support the new ``JOB_SERVER_AWARE`` option.

+ 0 - 8
Help/release/dev/ExternalProject-declare-download-byproducts.rst

@@ -1,8 +0,0 @@
-ExternalProject-declare-download-byproducts
--------------------------------------------
-
-* The :module:`ExternalProject` module now declares ``BYPRODUCTS`` for the
-  downloaded file for generated ``download`` steps. Previously, if multiple
-  external projects downloaded to the same file, hash verification could fail.
-  Now, when using the :ref:`Ninja Generators`, this scenario is detected and
-  Ninja will raise an error stating that multiple rules generate the same file.

+ 0 - 7
Help/release/dev/FetchContent-exclude-from-all.rst

@@ -1,7 +0,0 @@
-FetchContent-exclude-from-all
------------------------------
-
-* The :module:`FetchContent` module's :command:`FetchContent_Declare` command
-  gained an ``EXCLUDE_FROM_ALL`` option, which propagates through to the
-  :command:`add_subdirectory` call made by
-  :command:`FetchContent_MakeAvailable` for the dependency.

+ 0 - 5
Help/release/dev/FindCURL-static.rst

@@ -1,5 +0,0 @@
-FindCURL-static
----------------
-
-* The :module:`FindCURL` module gained a ``CURL_USE_STATIC_LIBS`` hint
-  to select static libraries.

+ 0 - 5
Help/release/dev/FindEXPAT-static.rst

@@ -1,5 +0,0 @@
-FindEXPAT-static
-----------------
-
-* The :module:`FindEXPAT` module gained a ``EXPAT_USE_STATIC_LIBS`` hint
-  to select static libraries.

+ 0 - 5
Help/release/dev/FindPkgConfig-override.rst

@@ -1,5 +0,0 @@
-FindPkgConfig-override
-----------------------
-
-* The :module:`FindPkgConfig` module :command:`pkg_get_variable` function
-  gained a ``DEFINE_VARIABLES`` option to pass variables to ``pkg-config``.

+ 0 - 7
Help/release/dev/apple-visionos.rst

@@ -1,7 +0,0 @@
-apple-visionos
---------------
-
-* CMake learned about Apple visionOS and its `xros` and `xrsimulator` SDKs.
-  Compiling for Apple visionOS can be requested by setting
-  :variable:`CMAKE_SYSTEM_NAME` to ``visionOS``. For more
-  information see :manual:`cmake-toolchains(7)`.

+ 0 - 5
Help/release/dev/command-job-server-aware.rst

@@ -1,5 +0,0 @@
-command-job-server-aware
-------------------------
-
-* The :command:`add_custom_command` and :command:`add_custom_target`
-  commands gained a ``JOB_SERVER_AWARE`` option.

+ 0 - 8
Help/release/dev/cxxmodules-no-longer-experimental.rst

@@ -1,8 +0,0 @@
-cxxmodules-no-longer-experimental
----------------------------------
-
-* C++ 20 named modules are now supported by :ref:`Ninja Generators`
-  and :ref:`Visual Studio Generators` for VS 2022 and newer, in combination
-  with the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
-  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and newer.
-  See :manual:`cmake-cxxmodules(7)` for details.

+ 0 - 6
Help/release/dev/deprecate-install-combined.rst

@@ -1,6 +0,0 @@
-deprecate-install-combined
---------------------------
-
-* The :prop_tgt:`IOS_INSTALL_COMBINED` target property and corresponding
-  :variable:`CMAKE_IOS_INSTALL_COMBINED` variable have been deprecated.
-  Their functionality does not make sense on Apple Silicon hosts.

+ 0 - 6
Help/release/dev/dynamically-generated-resource-spec-file.rst

@@ -1,6 +0,0 @@
-dynamically-generated-resource-spec-file
-----------------------------------------
-
-* CTest may now take a :ref:`dynamically-generated resource spec file
-  <ctest-resource-dynamically-generated-spec-file>`, which can be specified by the
-  :prop_test:`GENERATED_RESOURCE_SPEC_FILE` test property.

+ 0 - 6
Help/release/dev/exec_program-policy.rst

@@ -1,6 +0,0 @@
-exec_program-policy
--------------------
-
-* The :command:`exec_program` command, which has been deprecated since CMake
-  3.0, has been removed by policy :policy:`CMP0153`. Use the
-  :command:`execute_process` command instead.

+ 0 - 7
Help/release/dev/fileset-private-dep.rst

@@ -1,7 +0,0 @@
-fileset-private-dep
--------------------
-
-* Generated files, in targets using :ref:`file sets`, are now considered
-  private by default.  Generated public headers must be specified using
-  file sets.  This allows :ref:`Ninja Generators` to produce more
-  efficient build graphs.  See policy :policy:`CMP0154`.

+ 0 - 17
Help/release/dev/find-windows-no-PATH-prefixes.rst

@@ -1,17 +0,0 @@
-find-windows-no-PATH-prefixes
------------------------------
-
-* The :command:`find_library`, :command:`find_path`, and :command:`find_file`
-  commands no longer search in installation prefixes derived from the ``PATH``
-  environment variable.  This behavior was added in CMake 3.3 to support
-  MSYS and MinGW (``MSYSTEM``) development environments on Windows, but
-  it can search undesired prefixes that happen to be in the ``PATH`` for
-  unrelated reasons.  Users that keep some ``<prefix>/bin`` directories in
-  the ``PATH`` just for their tools do not necessarily want any corresponding
-  ``<prefix>/lib`` or ``<prefix>/include`` directories searched.
-  The behavior was reverted for non-Windows platforms by CMake 3.6.
-  Now it has been reverted on Windows platforms too.
-
-  One may set the ``CMAKE_PREFIX_PATH`` environment variable with a
-  :ref:`semicolon-separated list <CMake Language Lists>` of prefixes
-  that are to be searched.

+ 0 - 5
Help/release/dev/genexp-no-eval.rst

@@ -1,5 +0,0 @@
-genexp-no-eval
---------------
-
-* :manual:`generator expressions <cmake-generator-expressions(7)>`
-  short-circuit to avoid unnecessary evaluation of parameters.

+ 0 - 9
Help/release/dev/hip-nvidia.rst

@@ -1,9 +0,0 @@
-hip-nvidia
-----------
-
-* ``HIP`` language code may now be compiled for NVIDIA GPUs
-  using the NVIDIA CUDA Compiler (NVCC).
-
-* The :variable:`CMAKE_HIP_PLATFORM` variable was added to specify
-  the GPU platform for which HIP language sources are to be compiled
-  (``amd`` or ``nvidia``).

+ 0 - 6
Help/release/dev/host-msystem-prefix.rst

@@ -1,6 +0,0 @@
-host-msystem-prefix
--------------------
-
-* The :command:`cmake_host_system_information` command gained a
-  ``MSYSTEM_PREFIX`` query for the installation prefix of a MSYS
-  or MinGW development environment on Windows hosts.

+ 0 - 7
Help/release/dev/imported-implib-only.rst

@@ -1,7 +0,0 @@
-imported-implib-only
---------------------
-
-* On imported shared libraries, the :prop_tgt:`IMPORTED_IMPLIB` target
-  property may now be used without :prop_tgt:`IMPORTED_LOCATION`.
-  This can be used to represent a stub library whose location should not
-  be added as a runtime search path to dependents that link it.

+ 0 - 5
Help/release/dev/imported-target-framework-path.rst

@@ -1,5 +0,0 @@
-imported-target-framework-path
-------------------------------
-
-* The :prop_tgt:`IMPORTED_LOCATION` property of a macOS framework may now be
-  the location of the framework folder itself.

+ 0 - 6
Help/release/dev/mingw-search-prefixes.rst

@@ -1,6 +0,0 @@
-mingw-search-prefixes
----------------------
-
-* When using MinGW tools in a ``MSYSTEM`` environment on Windows,
-  the ``$MSYSTEM_PREFIX/local`` and ``$MSYSTEM_PREFIX`` prefixes are
-  now added to :variable:`CMAKE_SYSTEM_PREFIX_PATH`.

+ 0 - 5
Help/release/dev/orangec-compiler.rst

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

+ 0 - 5
Help/release/dev/presets-schema.rst

@@ -1,5 +0,0 @@
-presets-schema
---------------
-
-* :manual:`cmake-presets(7)` files now support schema version ``8``.
-  It adds support for a ``$schema`` field.

+ 0 - 5
Help/release/dev/rel-linux-x86_64.rst

@@ -1,5 +0,0 @@
-rel-linux-x86_64
-----------------
-
-* The precompiled Linux ``x86_64`` binaries provided on
-  `cmake.org <https://cmake.org/download/>`_ now require GLIBC 2.17 or higher.

+ 0 - 4
Help/release/dev/remove-vs11-generator.rst

@@ -1,4 +0,0 @@
-remove-vs11-generator
----------------------
-
-* The :generator:`Visual Studio 11 2012` generator has been removed.

+ 0 - 15
Help/release/dev/test-properties-directory.rst

@@ -1,15 +0,0 @@
-test-properties-directory
--------------------------
-
-* The ``TEST`` mode of the :command:`set_property` command gained a
-  ``DIRECTORY`` sub-option, which allows you to set properties on tests in
-  other directories.
-* The :command:`set_tests_properties` command gained a ``DIRECTORY``
-  sub-option, which allows you to set properties on tests in other
-  directories.
-* The ``TEST`` mode of the :command:`get_property` command gained a
-  ``DIRECTORY`` sub-option, which allows you to get properties on tests in
-  other directories.
-* The :command:`get_test_property` command gained a ``DIRECTORY``
-  sub-option, which allows you to get properties on tests in other
-  directories.

+ 0 - 5
Help/release/dev/vs12-deprecate.rst

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

+ 0 - 5
Help/release/dev/xcframework-find-library.rst

@@ -1,5 +0,0 @@
-xcframework-find-library
-------------------------
-
-* The :command:`find_library` command can now find ``.xcframework`` folders on
-  Apple platforms.

+ 0 - 7
Help/release/dev/xcframework-target-link-libraries.rst

@@ -1,7 +0,0 @@
-xcframework-target-link-libraries
----------------------------------
-
-* Targets may now link against an ``.xcframework`` folder in
-  :command:`target_link_libraries`.
-* The :prop_tgt:`IMPORTED_LOCATION` property of a target may now be an
-  ``.xcframework`` folder.

+ 0 - 6
Help/release/dev/xcode-embed-resources.rst

@@ -1,6 +0,0 @@
-xcode-embed-resources
----------------------
-
-* The :prop_tgt:`XCODE_EMBED_RESOURCES <XCODE_EMBED_<type>>` target property
-  was added to tell the :generator:`Xcode` generator what targets to put in
-  the ``Embed Resources`` build phase.

+ 0 - 8
Help/release/dev/xcode-no-legacy-buildsystem.rst

@@ -1,8 +0,0 @@
-xcode-no-legacy-buildsystem
----------------------------
-
-* The :generator:`Xcode` generator will now issue a fatal error if
-  the Legacy Build System has been selected for Xcode 14 and
-  newer. Those Xcode versions dropped support for the Legacy Build
-  System and expect the project being set-up for their current
-  Build System.

+ 1 - 0
Help/release/index.rst

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