1
0
Эх сурвалжийг харах

Merge topic 'doc-3.20-relnotes'

a30d096c85 Help: Update Sphinx versionadded directives for 3.20 release
704878e3ad Help: Organize and revise 3.20 release notes
4911636728 Help: Consolidate 3.20 release notes

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5790
Brad King 4 жил өмнө
parent
commit
9a68b49358
60 өөрчлөгдсөн 335 нэмэгдсэн , 379 устгасан
  1. 2 0
      Help/policy/CMP0118.rst
  2. 2 0
      Help/prop_tgt/UNITY_BUILD_UNIQUE_ID.rst
  3. 328 0
      Help/release/3.20.rst
  4. 0 5
      Help/release/dev/AddFileDependencies-deprecate.rst
  5. 0 6
      Help/release/dev/ExternalData-suppress-progress.rst
  6. 0 6
      Help/release/dev/FindBoost-no-warn.rst
  7. 0 4
      Help/release/dev/FindIntl-imported-target.rst
  8. 0 4
      Help/release/dev/FindOpenSSL-version-range.rst
  9. 0 6
      Help/release/dev/FindPython-FIND_UNVERSIONED_NAMES.rst
  10. 0 6
      Help/release/dev/Java-export-native_headers-target.rst
  11. 0 7
      Help/release/dev/OUTPUT_DIRECTORY.rst
  12. 0 5
      Help/release/dev/TestBigEndian-use-abi-result.rst
  13. 0 6
      Help/release/dev/UseSWIG-dependencies.rst
  14. 0 5
      Help/release/dev/abi-byte-order.rst
  15. 0 5
      Help/release/dev/after-option-in-target_include-directories.rst
  16. 0 8
      Help/release/dev/aix-xcoff-edit.rst
  17. 0 12
      Help/release/dev/android-ndk.rst
  18. 0 4
      Help/release/dev/build-test-presets.rst
  19. 0 5
      Help/release/dev/clang-tidy-objc.rst
  20. 0 4
      Help/release/dev/clang-win32-subsystem.rst
  21. 0 5
      Help/release/dev/cmake_path.rst
  22. 0 6
      Help/release/dev/configure_file-user-permissions.rst
  23. 0 6
      Help/release/dev/cpack-compression-threads.rst
  24. 0 8
      Help/release/dev/cpack-deb-shlibdeps-private-search-dirs.rst
  25. 0 7
      Help/release/dev/cpack-nsis-branding-text.rst
  26. 0 6
      Help/release/dev/cpack-nsis-utf-8-bom.rst
  27. 0 31
      Help/release/dev/cpack-nuget.rst
  28. 0 7
      Help/release/dev/cpackifw-package-wizard-show-page-list.rst
  29. 0 7
      Help/release/dev/cpp-cuda-23.rst
  30. 0 5
      Help/release/dev/ctest-test-dir.rst
  31. 0 6
      Help/release/dev/cuda-archs-env.rst
  32. 0 9
      Help/release/dev/cuda-nvcc-ccache-symlink.rst
  33. 0 11
      Help/release/dev/custom-command-output-genex.rst
  34. 0 5
      Help/release/dev/explicit-LANGUAGE-flag.rst
  35. 0 5
      Help/release/dev/explicit-source-extensions.rst
  36. 0 6
      Help/release/dev/export-compile-commands-per-target.rst
  37. 0 8
      Help/release/dev/external-project-configure-handled-by-build.rst
  38. 0 13
      Help/release/dev/fetchcontent-performance.rst
  39. 0 5
      Help/release/dev/file-generate-new-line-style.rst
  40. 0 6
      Help/release/dev/file-generate-permissions.rst
  41. 0 5
      Help/release/dev/fileapi-toolchains.rst
  42. 0 5
      Help/release/dev/install-files-rename-genex.rst
  43. 0 19
      Help/release/dev/intel-llvm-compilers.rst
  44. 0 7
      Help/release/dev/make-GENERATED-visible-from-any-scope.rst
  45. 0 5
      Help/release/dev/makefile-depfile.rst
  46. 0 5
      Help/release/dev/makefiles-dependencies-use-compiler.rst
  47. 0 7
      Help/release/dev/msvc-no-GR.rst
  48. 0 5
      Help/release/dev/ninja-depfile-transformation.rst
  49. 0 4
      Help/release/dev/nvhpc-compiler.rst
  50. 0 8
      Help/release/dev/object-lib-multiarch.rst
  51. 0 4
      Help/release/dev/qt-autogen-per-config.rst
  52. 0 10
      Help/release/dev/rel-package-names.rst
  53. 0 5
      Help/release/dev/remove-WCDH-module.rst
  54. 0 5
      Help/release/dev/remove-server-mode.rst
  55. 0 4
      Help/release/dev/target-sources-supports-custom-target.rst
  56. 0 5
      Help/release/dev/try_run-allow-to-set-working-directory.rst
  57. 0 7
      Help/release/dev/unity-build-anonymous-macros.rst
  58. 0 9
      Help/release/dev/xcode-embed-frameworks.rst
  59. 1 0
      Help/release/index.rst
  60. 2 0
      Help/variable/CMAKE_UNITY_BUILD_UNIQUE_ID.rst

+ 2 - 0
Help/policy/CMP0118.rst

@@ -1,6 +1,8 @@
 CMP0118
 CMP0118
 -------
 -------
 
 
+.. versionadded:: 3.20
+
 The :prop_sf:`GENERATED` source file property is now visible in all directories.
 The :prop_sf:`GENERATED` source file property is now visible in all directories.
 
 
 Whether or not a source file is generated is an all-or-nothing global
 Whether or not a source file is generated is an all-or-nothing global

+ 2 - 0
Help/prop_tgt/UNITY_BUILD_UNIQUE_ID.rst

@@ -1,6 +1,8 @@
 UNITY_BUILD_UNIQUE_ID
 UNITY_BUILD_UNIQUE_ID
 ---------------------
 ---------------------
 
 
+.. versionadded:: 3.20
+
 The name of a valid C-identifier which is set to a unique per-file
 The name of a valid C-identifier which is set to a unique per-file
 value during unity builds.
 value during unity builds.
 
 

+ 328 - 0
Help/release/3.20.rst

@@ -0,0 +1,328 @@
+CMake 3.20 Release Notes
+************************
+
+.. only:: html
+
+  .. contents::
+
+Changes made since CMake 3.19 include the following.
+
+New Features
+============
+
+Presets
+-------
+
+* :manual:`cmake-presets(7)` gained support for build and test presets.
+
+Generators
+----------
+
+* :ref:`Makefile Generators`, for some toolchains, now use the compiler
+  to extract implicit dependencies while compiling source files.
+
+Languages
+---------
+
+* C++23 compiler modes may now be specified via the :prop_tgt:`CXX_STANDARD`,
+  :prop_tgt:`CUDA_STANDARD`, or :prop_tgt:`OBJCXX_STANDARD` target properties,
+  or via the :manual:`Compile Features <cmake-compile-features(7)>`
+  functionality's ``cxx_std_23`` meta-feature.
+
+* ``CUDA`` language support now works when ``nvcc`` is a symbolic link,
+  for example due to a ``ccache`` or ``colornvcc`` wrapper script.
+
+* The :envvar:`CUDAARCHS` environment variable was added for initializing
+  :variable:`CMAKE_CUDA_ARCHITECTURES`. Useful in cases where the compiler
+  default is unsuitable for the machine's GPU.
+
+Compilers
+---------
+
+* The NVIDIA HPC SDK compilers are now supported with compiler id ``NVHPC``.
+
+* The Intel oneAPI NextGen LLVM compilers are now supported with
+  compiler id ``IntelLLVM``:
+
+  * The ``icx``/``icpx`` C/C++ compilers on Linux, and the ``icx``
+    C/C++ compiler on Windows, are fully supported as of oneAPI 2021.1.
+
+  * The ``ifx`` Fortran compiler on Linux is partially supported.
+    As of oneAPI 2021.1, ``ifx`` does not define several identification
+    macros, so CMake identifies it as the classic ``Intel`` compiler.
+    This works in many cases because ``ifx`` accepts the same command line
+    parameters as ``ifort``.  A future version of oneAPI may fix this.
+
+  * The ``ifx`` Fortran compiler on Windows is not yet supported.
+
+  The Intel oneAPI Classic compilers (``icc``, ``icpc``, and ``ifort``)
+  continue to be supported with compiler id ``Intel``.
+
+Platforms
+---------
+
+* CMake's support for :ref:`Cross Compiling for Android`
+  is now merged with the Android NDK's toolchain file.
+  They now have similar behavior, though some variable names differ.
+  User-facing changes include:
+
+  - ``find_*`` functions will search NDK ABI / API specific paths by default.
+
+  - The default :variable:`CMAKE_BUILD_TYPE` for Android is
+    now ``RelWithDebInfo``.
+
+File-Based API
+--------------
+
+* The :manual:`cmake-file-api(7)` gained a new "toolchains" object
+  kind that describes the compiler used for each enabled language.
+
+Commands
+--------
+
+* :command:`add_custom_command` and :command:`add_custom_target` now
+  support :manual:`generator expressions <cmake-generator-expressions(7)>`
+  in their ``OUTPUT`` and ``BYPRODUCTS`` options.
+
+  Their ``COMMAND``, ``WORKING_DIRECTORY``, and ``DEPENDS`` options gained
+  support for new generator expressions ``$<COMMAND_CONFIG:...>`` and
+  ``$<OUTPUT_CONFIG:...>`` that control cross-config handling when using
+  the :generator:`Ninja Multi-Config` generator.
+
+* The :command:`add_custom_command` command gained ``DEPFILE`` support on
+  :ref:`Makefile Generators`.
+
+* The :command:`add_library` command previously prohibited imported object
+  libraries when using potentially multi-architecture configurations.
+  This mostly affected the :generator:`Xcode` generator, e.g. when targeting
+  iOS or one of the other device platforms.  This restriction has now been
+  removed.
+
+* The :command:`cmake_path` command was added for operations on
+  filesystem paths.
+
+* The :command:`configure_file` command gained a ``USE_SOURCE_PERMISSIONS``
+  and ``FILE_PERMISSIONS`` option to support copying of permissions of source
+  file and specifying user defined permissions.
+
+* The :command:`file(GENERATE)` command gained ``NEWLINE_STYLE`` option to
+  support newline style of the generated file.
+
+* The :command:`file(GENERATE)` command gained ``NO_SOURCE_PERMISSIONS``,
+  ``USE_SOURCE_PERMISSIONS``, and ``FILE_PERMISSIONS`` options to support
+  permissions of the generated file.
+
+* The :command:`install(FILES)` command ``RENAME`` option learned to
+  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :command:`target_include_directories` command gained a new option
+  ``AFTER``.
+
+* The :command:`target_sources` command now supports targets created
+  by the :command:`add_custom_target` command.
+
+* The :command:`try_run` command gained a ``WORKING_DIRECTORY`` option to
+  set the working directory in which to run the compiled check executable.
+
+Variables
+---------
+
+* The :variable:`CMAKE_<LANG>_BYTE_ORDER` variable was added to provide the
+  target architecture byte order detected from the toolchain.
+
+* The :variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY`,
+  :variable:`CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and
+  :variable:`CMAKE_ARCHIVE_OUTPUT_DIRECTORY` variables now support
+  target-dependent generator expressions.
+
+Properties
+----------
+
+* The :prop_tgt:`<LANG>_CLANG_TIDY` target property and the associated
+  :variable:`CMAKE_<LANG>_CLANG_TIDY` variable learned to support
+  the ``OBJC`` and ``OBJCXX`` languages.
+
+* The :prop_tgt:`EXPORT_COMPILE_COMMANDS` target property was added
+  for the associated :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable
+  to allow for configuration of exporting compile commands per target.
+
+* The :prop_sf:`GENERATED` source-file property is now visible
+  from any directory scope, regardless of the scope in which it is set.
+  See policy :policy:`CMP0118`.
+
+* The :prop_tgt:`UNITY_BUILD_UNIQUE_ID` target property
+  was added to support generation of an identifier that is
+  unique per source file in unity builds.  It can help to
+  resolve duplicate symbol problems with anonymous namespaces.
+
+* The :prop_tgt:`WIN32_EXECUTABLE` target property now works with Clang
+  on Windows.
+
+* The :prop_tgt:`XCODE_EMBED_FRAMEWORKS <XCODE_EMBED_<type>>` target property
+  was added to tell the :generator:`Xcode` generator to embed frameworks.
+  Aspects of the embedding can be customized with the
+  :prop_tgt:`XCODE_EMBED_FRAMEWORKS_PATH <XCODE_EMBED_<type>>`,
+  :prop_tgt:`XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY`, and
+  :prop_tgt:`XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY` target properties.
+
+Modules
+-------
+
+* The :module:`ExternalData` module :command:`ExternalData_Add_Target`
+  function gained a ``SHOW_PROGRESS <bool>`` option to suppress progress
+  output during the build.
+
+* The :module:`ExternalProject` module :command:`ExternalProject_Add` function
+  gained a ``CONFIGURE_HANDLED_BY_BUILD`` option to have subsequent runs of
+  the configure step be triggered by the build step when an external project
+  dependency rebuilds instead of always rerunning the configure step when
+  an external project dependency rebuilds.
+
+* The :module:`FindBoost` module gained a ``Boost_NO_WARN_NEW_VERSIONS``
+  option to silence the warning about unknown dependencies for new
+  Boost versions.
+
+* The :module:`FindCUDAToolkit` module gained support for finding CUDA
+  toolkits when ``nvcc`` is a symbolic link,
+  for example due to a ``ccache`` or ``colornvcc`` wrapper script.
+
+* The :module:`FindIntl` module now provides an imported target.
+
+* The :module:`FindOpenSSL` module learned to support a version range.
+
+* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
+  modules gained options controlling how unversioned interpreter names are
+  searched.
+
+* The :module:`UseJava` module ``add_jar()`` command's
+  ``GENERATE_NATIVE_HEADERS`` feature gained options to export the
+  generated target.
+
+* The :module:`UseSWIG` module gained the capability, for
+  :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>`
+  generators, to use the ``swig`` tool to generate implicit dependencies.
+
+Autogen
+-------
+
+* The :ref:`Qt AUTOMOC` feature now works with per-config sources.
+
+CTest
+-----
+
+* :manual:`ctest(1)` gained a ``--test-dir`` option to specify the directory
+  in which to look for tests.
+
+CPack
+-----
+
+* :module:`CPack` gained the :variable:`CPACK_THREADS` variable to
+  control the number of threads used for parallelized operations,
+  such as compressing the installer package.
+
+* The :cpack_gen:`CPack DEB Generator` learned a new
+  :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS`
+  variable to specify additional search directories for
+  resolving private library dependencies when using
+  ``dpkg-shlibdeps``.
+
+* The :cpack_gen:`CPack IFW Generator` gained new
+  :variable:`CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST` variable to
+  control visibility of the widget listing installer pages on the left side
+  of the wizard. This feature available only since QtIFW 4.0.
+
+* The :cpack_gen:`CPack NSIS Generator` gained new
+  :variable:`CPACK_NSIS_BRANDING_TEXT` and
+  :variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` variables to change
+  the text at the bottom of the install window and change its trim position
+
+* The :cpack_gen:`CPack NSIS Generator` now handles correctly Unicode characters.
+  If you want to have a ``CPACK_RESOURCE_FILE_LICENSE`` with UTF-8 characters
+  it needs to be encoded in UTF-8 BOM.
+
+* The :cpack_gen:`CPack NuGet Generator` gained options:
+
+  - :variable:`CPACK_NUGET_PACKAGE_ICON` and
+    :variable:`CPACK_NUGET_<compName>_PACKAGE_ICON`
+    allow package icons to be specified by local files.
+  - :variable:`CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION` and
+    :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION` add
+    support for specifying licenses recognized by the
+    `Software Package Data Exchange`_ (SPDX).
+  - :variable:`CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME` and
+    :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME` allow
+    licenses to be specified by local files.
+  - :variable:`CPACK_NUGET_PACKAGE_LANGUAGE` and
+    :variable:`CPACK_NUGET_<compName>_PACKAGE_LANGUAGE` allow the locale
+    for a package to be specified, for example ``en_CA``.
+
+.. _Software Package Data Exchange: https://spdx.org/
+
+Deprecated and Removed Features
+===============================
+
+* The :manual:`cmake-server(7)` mode has been removed.
+  Clients should use the :manual:`cmake-file-api(7)` instead.
+
+* The :module:`WriteCompilerDetectionHeader` module has been deprecated
+  via policy :policy:`CMP0120`.  Projects should be ported away from it.
+
+* The :module:`TestBigEndian` module has been deprecated in favor
+  of the :variable:`CMAKE_<LANG>_BYTE_ORDER` variable.
+
+* The :module:`AddFileDependencies` module is deprecated.
+  Port projects to use :command:`set_property` directly.
+
+* The :cpack_gen:`CPack NuGet Generator` deprecated some variables to reflect
+  changes in the NuGet specification:
+
+  - :variable:`CPACK_NUGET_PACKAGE_ICONURL` and
+    :variable:`CPACK_NUGET_<compName>_PACKAGE_ICONURL` have been deprecated;
+    replace with a reference to a local icon file.
+  - :variable:`CPACK_NUGET_PACKAGE_LICENSEURL` and
+    :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSEURL` have been deprecated;
+    replace with a reference to the project's license file or SPDX
+    license expression.
+
+Other Changes
+=============
+
+* Source file extensions must now be explicit.
+  See policy :policy:`CMP0115` for details.
+
+* The :prop_sf:`LANGUAGE` source file property now forces compilation
+  as the specified language.  See policy :policy:`CMP0119`.
+
+* On AIX, installation of XCOFF executables and shared libraries
+  no longer requires relinking to change the runtime search path
+  from the build-tree RPATH to the install-tree RPATH.  CMake now
+  edits the XCOFF binaries directly during installation, as has
+  long been done on ELF platforms.
+
+* With MSVC-like compilers the value of
+  :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` no longer contains
+  the ``/GR`` flag for runtime type information by default.
+  See policy :policy:`CMP0117`.
+
+* Ninja generators now transform the ``DEPFILE`` generated by an
+  :command:`add_custom_command`. See policy :policy:`CMP0116` for details.
+
+* The implementation of the :module:`ExternalProject` module was
+  significantly refactored.  The patch step gained support for
+  using the terminal with a new ``USES_TERMINAL_PATCH`` keyword
+  as a by-product of that work.
+
+* The :module:`FetchContent` module no longer creates a separate
+  sub-build to implement the content population.  It now invokes
+  the step scripts directly from within the main project's
+  configure stage.  This significantly speeds up the configure
+  phase when the required content is already populated and
+  up-to-date.
+
+* The precompiled Linux binaries provided on ``cmake.org`` have changed
+  their naming pattern to ``cmake-$ver-linux-$arch``, where ``$arch``
+  is either ``x86_64`` or ``aarch64``.
+
+* The precompiled Windows binaries provided on ``cmake.org`` have changed
+  their naming pattern to ``cmake-$ver-windows-$arch``, where ``$arch``
+  is either ``x86_64`` or ``i386``.

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

@@ -1,5 +0,0 @@
-AddFileDependencies-deprecate
------------------------------
-
-* The :module:`AddFileDependencies` module is deprecated.
-  Port projects to use :command:`set_property` directly.

+ 0 - 6
Help/release/dev/ExternalData-suppress-progress.rst

@@ -1,6 +0,0 @@
-ExternalData-suppress-progress
-------------------------------
-
-* The :module:`ExternalData` module ``ExternalData_add_target`` now supports a
-  ``SHOW_PROGRESS <bool>`` argument to suppress progress output during the
-  build.

+ 0 - 6
Help/release/dev/FindBoost-no-warn.rst

@@ -1,6 +0,0 @@
-FindBoost-no-warn
------------------
-
-* The :module:`FindBoost` module gained a ``Boost_NO_WARN_NEW_VERSIONS``
-  option to silence the warning about unknown dependencies for new
-  Boost versions.

+ 0 - 4
Help/release/dev/FindIntl-imported-target.rst

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

+ 0 - 4
Help/release/dev/FindOpenSSL-version-range.rst

@@ -1,4 +0,0 @@
-FindOpenSSL-version-range
--------------------------
-
-* :module:`FindOpenSSL` module gains the capability to manage a version range.

+ 0 - 6
Help/release/dev/FindPython-FIND_UNVERSIONED_NAMES.rst

@@ -1,6 +0,0 @@
-FindPython-FIND_UNVERSIONED_NAMES
----------------------------------
-
-* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
-  gain the capability to control how interpreter unversioned names are
-  searched.

+ 0 - 6
Help/release/dev/Java-export-native_headers-target.rst

@@ -1,6 +0,0 @@
-Java-export-native_headers-target
----------------------------------
-
-* ``add_jar()`` command, from :module:`UseJava` module, gains new capabilities
-  for ``GENERATE_NATIVE_HEADERS`` option. These capabilities facilitate the
-  exportation of the generated target.

+ 0 - 7
Help/release/dev/OUTPUT_DIRECTORY.rst

@@ -1,7 +0,0 @@
-OUTPUT_DIRECTORY
-----------------
-
-* The variables :variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY`,
-  :variable:`CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and
-  :variable:`CMAKE_ARCHIVE_OUTPUT_DIRECTORY` now support target-dependent
-  generator expressions.

+ 0 - 5
Help/release/dev/TestBigEndian-use-abi-result.rst

@@ -1,5 +0,0 @@
-TestBigEndian-use-abi-result
-----------------------------
-
-* The :module:`TestBigEndian` module has been deprecated in favor
-  of the :variable:`CMAKE_<LANG>_BYTE_ORDER` variable.

+ 0 - 6
Help/release/dev/UseSWIG-dependencies.rst

@@ -1,6 +0,0 @@
-UseSWIG-dependencies
---------------------
-
-* :module:`UseSWIG` module gained the capability, for
-  :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>`
-  generators, to use ``swig`` tool to generate implicit dependencies.

+ 0 - 5
Help/release/dev/abi-byte-order.rst

@@ -1,5 +0,0 @@
-abi-byte-order
---------------
-
-* The :variable:`CMAKE_<LANG>_BYTE_ORDER` variable was added to provide the
-  target architecture byte order detected from the toolchain.

+ 0 - 5
Help/release/dev/after-option-in-target_include-directories.rst

@@ -1,5 +0,0 @@
-after-option-in-target_include-directories.rst
-----------------------------------------------
-
-* The :command:`target_include_directories` command gained a new option
-  ``AFTER``.

+ 0 - 8
Help/release/dev/aix-xcoff-edit.rst

@@ -1,8 +0,0 @@
-aix-xcoff-edit
---------------
-
-* On AIX, installation of XCOFF executables and shared libraries
-  no longer requires relinking to change the runtime search path
-  from the build-tree RPATH to the install-tree RPATH.  CMake now
-  edits the XCOFF binaries directly during installation, as has
-  long been done on ELF platforms.

+ 0 - 12
Help/release/dev/android-ndk.rst

@@ -1,12 +0,0 @@
-android-ndk
------------
-
-* CMake's support for :ref:`Cross Compiling for Android`
-  is now merged with the Android NDK's toolchain file.
-  They now have similar behavior, though some variable names differ.
-  User-facing changes include:
-
-  - ``find_*`` functions will search NDK ABI / API specific paths by default.
-
-  - The default :variable:`CMAKE_BUILD_TYPE` for Android is
-    now ``RelWithDebInfo``.

+ 0 - 4
Help/release/dev/build-test-presets.rst

@@ -1,4 +0,0 @@
-build-test-presets
-------------------
-
-* :manual:`cmake-presets(7)` gained support for build and test presets.

+ 0 - 5
Help/release/dev/clang-tidy-objc.rst

@@ -1,5 +0,0 @@
-clang-tidy-objc
----------------
-
-* The target property :prop_tgt:`<LANG>_CLANG_TIDY` and the associated
-  variable :variable:`CMAKE_<LANG>_CLANG_TIDY` learned to support OBJC and OBJCXX.

+ 0 - 4
Help/release/dev/clang-win32-subsystem.rst

@@ -1,4 +0,0 @@
-clang-win32-subsystem
----------------------
-
-* :prop_tgt:`WIN32_EXECUTABLE` now works on Windows with Clang.

+ 0 - 5
Help/release/dev/cmake_path.rst

@@ -1,5 +0,0 @@
-cmake_path
-----------
-
-* The :command:`cmake_path` command was added for operations on
-  filesystem paths.

+ 0 - 6
Help/release/dev/configure_file-user-permissions.rst

@@ -1,6 +0,0 @@
-configure_file-user-permissions
--------------------------------
-
-* The :command:`configure_file` command gained a ``USE_SOURCE_PERMISSIONS``
-  and ``FILE_PERMISSIONS`` option to support copying of permissions of source
-  file and specifying user defined permissions.

+ 0 - 6
Help/release/dev/cpack-compression-threads.rst

@@ -1,6 +0,0 @@
-cpack-compression-threads
--------------------------
-
-* :module:`CPack` gained the :variable:`CPACK_THREADS` variable to
-  control the number of threads used for parallelized operations,
-  such as compressing the installer package.

+ 0 - 8
Help/release/dev/cpack-deb-shlibdeps-private-search-dirs.rst

@@ -1,8 +0,0 @@
-cpack-deb-shlibdeps-resolving-private-dependencies
---------------------------------------------------
-
-* The :module:`CPackDeb` module learned a new
-  :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS`
-  variable to specify additional search directories for
-  resolving private library dependencies when using
-  ``dpkg-shlibdeps``.

+ 0 - 7
Help/release/dev/cpack-nsis-branding-text.rst

@@ -1,7 +0,0 @@
-cpack-nsis-branding-text
-------------------------
-
-* The :cpack_gen:`CPack NSIS Generator` gained new variables
-  :variable:`CPACK_NSIS_BRANDING_TEXT` and
-  :variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` to change the
-  text at the bottom of the install window and change its trim position

+ 0 - 6
Help/release/dev/cpack-nsis-utf-8-bom.rst

@@ -1,6 +0,0 @@
-cpack-nsis-utf8-bom
--------------------
-
-* The :cpack_gen:`CPack NSIS Generator` now handles correctly Unicode characters.
-  If you want to have a ``CPACK_RESOURCE_FILE_LICENSE`` with UTF-8 characters
-  it needs to be encoded in UTF-8 BOM.

+ 0 - 31
Help/release/dev/cpack-nuget.rst

@@ -1,31 +0,0 @@
-cpack-nuget
------------
-
-* The :cpack_gen:`CPack NuGet Generator` gained options:
-
-  - :variable:`CPACK_NUGET_PACKAGE_ICON` and
-    :variable:`CPACK_NUGET_<compName>_PACKAGE_ICON`
-    allow package icons to be specified by local files.
-  - :variable:`CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION` and
-    :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION` add
-    support for specifying licenses recognized by the
-    `Software Package Data Exchange`_ (SPDX).
-  - :variable:`CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME` and
-    :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME` allow
-    licenses to be specified by local files.
-  - :variable:`CPACK_NUGET_PACKAGE_LANGUAGE` and
-    :variable:`CPACK_NUGET_<compName>_PACKAGE_LANGUAGE` allow the locale
-    for a package to be specified, for example ``en_CA``.
-
- Some other variables have been deprecated to reflect changes in the
- NuGet specification:
-
- - :variable:`CPACK_NUGET_PACKAGE_ICONURL` and
-   :variable:`CPACK_NUGET_<compName>_PACKAGE_ICONURL` have been deprecated;
-   replace with a reference to a local icon file.
- - :variable:`CPACK_NUGET_PACKAGE_LICENSEURL` and
-   :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSEURL` have been deprecated;
-   replace with a reference to the project's license file or SPDX
-   license expression.
-
-.. _Software Package Data Exchange: https://spdx.org/

+ 0 - 7
Help/release/dev/cpackifw-package-wizard-show-page-list.rst

@@ -1,7 +0,0 @@
-cpackifw-package-wizard-show-page-list
---------------------------------------
-
-* The :cpack_gen:`CPack IFW Generator` gained new
-  :variable:`CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST` variable to
-  control visibility of the widget listing installer pages on the left side
-  of the wizard. This feature available only since QtIFW 4.0.

+ 0 - 7
Help/release/dev/cpp-cuda-23.rst

@@ -1,7 +0,0 @@
-cpp-cuda-23
------------
-
-* :prop_tgt:`CXX_STANDARD`, :prop_tgt:`CUDA_STANDARD`,
-  :prop_tgt:`OBJCXX_STANDARD` and the
-  :manual:`Compile Features <cmake-compile-features(7)>` functionality gained
-  support for C++23.

+ 0 - 5
Help/release/dev/ctest-test-dir.rst

@@ -1,5 +0,0 @@
-ctest-test-dir.rst
-------------------
-
-* :manual:`ctest(1)` gained a ``--test-dir`` option to specify the directory
-  in which to look for tests.

+ 0 - 6
Help/release/dev/cuda-archs-env.rst

@@ -1,6 +0,0 @@
-cuda-archs-env
---------------
-
-* The :envvar:`CUDAARCHS` environment variable was added for initializing
-  :variable:`CMAKE_CUDA_ARCHITECTURES`. Useful in cases where the compiler
-  default is unsuitable for the machine's GPU.

+ 0 - 9
Help/release/dev/cuda-nvcc-ccache-symlink.rst

@@ -1,9 +0,0 @@
-cuda-nvcc-ccache-symlink
-------------------------
-
-* ``CUDA`` language support now works when ``nvcc`` is a symbolic link,
-  for example due to a ``ccache`` or ``colornvcc`` wrapper script.
-
-* The :module:`FindCUDAToolkit` module gained support for finding CUDA
-  toolkits when ``nvcc`` is a symbolic link,
-  for example due to a ``ccache`` or ``colornvcc`` wrapper script.

+ 0 - 11
Help/release/dev/custom-command-output-genex.rst

@@ -1,11 +0,0 @@
-custom-command-output-genex
----------------------------
-
-* :command:`add_custom_command` and :command:`add_custom_target` now
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`
-  in their ``OUTPUT`` and ``BYPRODUCTS`` options.
-
-  Their ``COMMAND``, ``WORKING_DIRECTORY``, and ``DEPENDS`` options gained
-  support for new generator expressions ``$<COMMAND_CONFIG:...>`` and
-  ``$<OUTPUT_CONFIG:...>`` that control cross-config handling when using
-  the :generator:`Ninja Multi-Config` generator.

+ 0 - 5
Help/release/dev/explicit-LANGUAGE-flag.rst

@@ -1,5 +0,0 @@
-explicit-LANGUAGE-flag
-----------------------
-
-* The :prop_sf:`LANGUAGE` source file property now forces compilation
-  as the specified language.  See policy :policy:`CMP0119`.

+ 0 - 5
Help/release/dev/explicit-source-extensions.rst

@@ -1,5 +0,0 @@
-explicit-source-extensions
---------------------------
-
-* Source file extensions must now be explicit. See policy :policy:`CMP0115` for
-  details.

+ 0 - 6
Help/release/dev/export-compile-commands-per-target.rst

@@ -1,6 +0,0 @@
-export-compile-commands-per-target
-----------------------------------
-
-* The :prop_tgt:`EXPORT_COMPILE_COMMANDS` target property was added
-  for the associated :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable
-  to allow for configuration of exporting compile commands per target.

+ 0 - 8
Help/release/dev/external-project-configure-handled-by-build.rst

@@ -1,8 +0,0 @@
-external-project-configure-handled-by-build
--------------------------------------------
-
-* The :module:`ExternalProject` function ``ExternalProject_Add`` learned a new
-  ``CONFIGURE_HANDLED_BY_BUILD`` option to have subsequent runs of the configure
-  step be triggered by the build step when an external project dependency
-  rebuilds instead of always rerunning the configure step when an external
-  project dependency rebuilds.

+ 0 - 13
Help/release/dev/fetchcontent-performance.rst

@@ -1,13 +0,0 @@
-fetchcontent-performance
-------------------------
-
-* The implementation of the :module:`ExternalProject` module was
-  significantly refactored.  The patch step gained support for
-  using the terminal with a new ``USES_TERMINAL_PATCH`` keyword
-  as a by-product of that work.
-* The :module:`FetchContent` module no longer creates a separate
-  sub-build to implement the content population.  It now invokes
-  the step scripts directly from within the main project's
-  configure stage.  This significantly speeds up the configure
-  phase when the required content is already populated and
-  up-to-date.

+ 0 - 5
Help/release/dev/file-generate-new-line-style.rst

@@ -1,5 +0,0 @@
-file-generate-new-line-style
-----------------------------
-
-* The :command:`file(GENERATE)` command gained ``NEWLINE_STYLE`` option to
-  support newline style of the generated file.

+ 0 - 6
Help/release/dev/file-generate-permissions.rst

@@ -1,6 +0,0 @@
-file-generate-permissions
--------------------------
-
-* The :command:`file(GENERATE)` command gained ``NO_SOURCE_PERMISSIONS``,
-  ``USE_SOURCE_PERMISSIONS``, and ``FILE_PERMISSIONS`` options to support
-  permissions of the generated file.

+ 0 - 5
Help/release/dev/fileapi-toolchains.rst

@@ -1,5 +0,0 @@
-fileapi-toolchains
-------------------
-
-* The :manual:`cmake-file-api(7)` gained a new "toolchains" object
-  kind that describes the compiler used for each enabled language.

+ 0 - 5
Help/release/dev/install-files-rename-genex.rst

@@ -1,5 +0,0 @@
-install-files-rename-genex
---------------------------
-
-* The :command:`install(FILES)` command ``RENAME`` option learned to
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`.

+ 0 - 19
Help/release/dev/intel-llvm-compilers.rst

@@ -1,19 +0,0 @@
-intel-llvm-compilers
---------------------
-
-* The Intel oneAPI NextGen LLVM compilers are now supported with
-  compiler id ``IntelLLVM``:
-
-  * The ``icx``/``icpx`` C/C++ compilers on Linux, and the ``icx``
-    C/C++ compiler on Windows, are fully supported as of oneAPI 2021.1.
-
-  * The ``ifx`` Fortran compiler on Linux is partially supported.
-    As of oneAPI 2021.1, ``ifx`` does not define several identification
-    macros, so CMake identifies it as the classic ``Intel`` compiler.
-    This works in many cases because ``ifx`` accepts the same command line
-    parameters as ``ifort``.
-
-  * The ``ifx`` Fortran compiler on Windows is not yet supported.
-
-  The Intel oneAPI Classic compilers (``icc``, ``icpc``, and ``ifort``)
-  continue to be supported with compiler id ``Intel``.

+ 0 - 7
Help/release/dev/make-GENERATED-visible-from-any-scope.rst

@@ -1,7 +0,0 @@
-make-GENERATED-visible-from-any-scope
--------------------------------------
-
-* The :prop_sf:`GENERATED` source-file property is now visible
-  from any directory scope, regardles in which scope or for what
-  scope it was set.
-  See policy :policy:`CMP0118`.

+ 0 - 5
Help/release/dev/makefile-depfile.rst

@@ -1,5 +0,0 @@
-makefile-depfile
-----------------
-
-* The :command:`add_custom_command` command gained ``DEPFILE`` support on
-  :ref:`Makefile Generators`.

+ 0 - 5
Help/release/dev/makefiles-dependencies-use-compiler.rst

@@ -1,5 +0,0 @@
-makefiles-dependencies-use-compiler
------------------------------------
-
-* The :ref:`Makefile Generators` gained the capability, for a selection of
-  compilers, to use the compiler itself to generate implicit dependencies.

+ 0 - 7
Help/release/dev/msvc-no-GR.rst

@@ -1,7 +0,0 @@
-msvc-no-GR
-----------
-
-* With MSVC-like compilers the value of
-  :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` no longer contains
-  the ``/GR`` flag for runtime type information by default.
-  See policy :policy:`CMP0117`.

+ 0 - 5
Help/release/dev/ninja-depfile-transformation.rst

@@ -1,5 +0,0 @@
-ninja-depfile-transformation
-----------------------------
-
-* Ninja generators now transform ``DEPFILE`` s from
-  :command:`add_custom_command`. See policy :policy:`CMP0116` for details.

+ 0 - 4
Help/release/dev/nvhpc-compiler.rst

@@ -1,4 +0,0 @@
-nvhpc-compiler
---------------
-
-* The NVIDIA HPC SDK compilers are now supported with compiler id ``NVHPC``.

+ 0 - 8
Help/release/dev/object-lib-multiarch.rst

@@ -1,8 +0,0 @@
-object-lib-multiarch
---------------------
-
-* The :command:`add_library` command previously prohibited imported object
-  libraries when using potentially multi-architecture configurations.
-  This mostly affected the :generator:`Xcode` generator, e.g. when targeting
-  iOS or one of the other device platforms.  This restriction has now been
-  removed.

+ 0 - 4
Help/release/dev/qt-autogen-per-config.rst

@@ -1,4 +0,0 @@
-qt-autogen-per-config
----------------------
-
-* The :ref:`Qt AUTOMOC` feature now works with per-config sources.

+ 0 - 10
Help/release/dev/rel-package-names.rst

@@ -1,10 +0,0 @@
-rel-package-names
------------------
-
-* The precompiled Linux binaries provided on ``cmake.org`` have changed
-  their naming pattern to ``cmake-$ver-linux-$arch``, where ``$arch``
-  is either ``x86_64`` or ``aarch64``.
-
-* The precompiled Windows binaries provided on ``cmake.org`` have changed
-  their naming pattern to ``cmake-$ver-windows-$arch``, where ``$arch``
-  is either ``x86_64`` or ``i386``.

+ 0 - 5
Help/release/dev/remove-WCDH-module.rst

@@ -1,5 +0,0 @@
-remove-WCDH-module
-------------------
-
-* The :module:`WriteCompilerDetectionHeader` module has been deprecated
-  via policy :policy:`CMP0120`.  Projects should be ported away from it.

+ 0 - 5
Help/release/dev/remove-server-mode.rst

@@ -1,5 +0,0 @@
-remove-server-mode
-------------------
-
-* The :manual:`cmake-server(7)` mode has been removed.
-  Clients should use the :manual:`cmake-file-api(7)` instead.

+ 0 - 4
Help/release/dev/target-sources-supports-custom-target.rst

@@ -1,4 +0,0 @@
-target-sources-supports-custom-target
--------------------------------------
-
-* The :command:`target_sources` now supports custom targets.

+ 0 - 5
Help/release/dev/try_run-allow-to-set-working-directory.rst

@@ -1,5 +0,0 @@
-try_run-allow-to-set-working-directory
---------------------------------------
-
-* The :command:`try_run` command gained a ``WORKING_DIRECTORY`` option to
-  support setting of working directory.

+ 0 - 7
Help/release/dev/unity-build-anonymous-macros.rst

@@ -1,7 +0,0 @@
-unity-build-anonymous-macros
-----------------------------
-
-* The :prop_tgt:`UNITY_BUILD_UNIQUE_ID` target property
-  was added to support generation of an identifier that is
-  unique per source file in unity builds.  It can help to
-  resolve duplicate symbol problems with anonymous namespaces.

+ 0 - 9
Help/release/dev/xcode-embed-frameworks.rst

@@ -1,9 +0,0 @@
-xcode-embed-frameworks
-----------------------
-
-* When using the Xcode generator, it is now possible to embed frameworks
-  using the new :prop_tgt:`XCODE_EMBED_FRAMEWORKS <XCODE_EMBED_<type>>`
-  target property.  Aspects of the embedding can be customized with the
-  :prop_tgt:`XCODE_EMBED_FRAMEWORKS_PATH <XCODE_EMBED_<type>>`,
-  :prop_tgt:`XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY` and
-  :prop_tgt:`XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY` target properties.

+ 1 - 0
Help/release/index.rst

@@ -15,6 +15,7 @@ Releases
 .. toctree::
 .. toctree::
    :maxdepth: 1
    :maxdepth: 1
 
 
+   3.20 <3.20>
    3.19 <3.19>
    3.19 <3.19>
    3.18 <3.18>
    3.18 <3.18>
    3.17 <3.17>
    3.17 <3.17>

+ 2 - 0
Help/variable/CMAKE_UNITY_BUILD_UNIQUE_ID.rst

@@ -1,6 +1,8 @@
 CMAKE_UNITY_BUILD_UNIQUE_ID
 CMAKE_UNITY_BUILD_UNIQUE_ID
 ---------------------------
 ---------------------------
 
 
+.. versionadded:: 3.20
+
 This variable is used to initialize the :prop_tgt:`UNITY_BUILD_UNIQUE_ID`
 This variable is used to initialize the :prop_tgt:`UNITY_BUILD_UNIQUE_ID`
 property of targets when they are created.  It specifies the name of the
 property of targets when they are created.  It specifies the name of the
 unique identifier generated per file in a unity build.
 unique identifier generated per file in a unity build.