diff options
author | Brad King <brad.king@kitware.com> | 2021-10-07 13:48:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-10-07 15:25:45 (GMT) |
commit | c632a7105c1bd3cfaac82b6961efb8ac6c848b6e (patch) | |
tree | fd2b38db0666f0ea022ed7d2b69105d5f90445c0 /Help/release/3.22.rst | |
parent | 48e503ec78ced6da83f78a8d26d5867ee56873a3 (diff) | |
download | CMake-c632a7105c1bd3cfaac82b6961efb8ac6c848b6e.zip CMake-c632a7105c1bd3cfaac82b6961efb8ac6c848b6e.tar.gz CMake-c632a7105c1bd3cfaac82b6961efb8ac6c848b6e.tar.bz2 |
Help: Organize and revise 3.22 release notes
Add section headers similar to the 3.21 release notes and move each
individual bullet into an appropriate section. Revise a few bullets.
Diffstat (limited to 'Help/release/3.22.rst')
-rw-r--r-- | Help/release/3.22.rst | 158 |
1 files changed, 89 insertions, 69 deletions
diff --git a/Help/release/3.22.rst b/Help/release/3.22.rst index d8427a6..fcb655d 100644 --- a/Help/release/3.22.rst +++ b/Help/release/3.22.rst @@ -7,53 +7,22 @@ CMake 3.22 Release Notes Changes made since CMake 3.21 include the following. -* The :module:`CMakeDependentOption` module :command:`cmake_dependent_option` - macro now supports full :ref:`Condition Syntax`. - See policy :policy:`CMP0127`. - -* The :envvar:`CMAKE_INSTALL_MODE` environment variable was added to - allow users to override the default file-copying behavior of - :command:`install` and :command:`file(INSTALL)` into creating - symbolic links. This can aid in lowering storage space requirements - and avoiding redundancy. +New Features +============ -* The :command:`file(INSTALL)` can now be affected / modified by the - :envvar:`CMAKE_INSTALL_MODE` environment variable causing installation - of symbolic links instead of copying of files. +Commands +-------- -* The :command:`install` can now be affected / modified by the - :envvar:`CMAKE_INSTALL_MODE` environment variable causing installation - of symbolic links instead of copying of files. - -* The :manual:`Compile Features <cmake-compile-features(7)>` functionality now - correctly disables or enables compiler extensions when no standard level is - specified and avoids unnecessarily adding language standard flags if the - requested settings match the compiler's defaults. See :policy:`CMP0128`. +* The :command:`cmake_host_system_information` command can now query + `OS identification variables`_ from the :file:`/etc/os-release` file. -* :prop_tgt:`<LANG>_EXTENSIONS` is initialized to - :variable:`CMAKE_<LANG>_EXTENSIONS_DEFAULT`. See :policy:`CMP0128`. - -* The :cpack_gen:`CPack DEB Generator` gained the - option to set :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` to zstd, - which enables Zstandard compression for deb packages. - -* The :cpack_gen:`CPack RPM Generator` gained the - :variable:`CPACK_RPM_REQUIRES_EXCLUDE_FROM` option avoid scanning - specific paths for dependencies. - -* :manual:`ctest(1)` learned to be able to modify the environment for a test - through the :prop_test:`ENVIRONMENT_MODIFICATION` property. This is allows - for updates to environment variables based on the environment present at - test time. +* The :command:`string(TIMESTAMP)` command now supports the ``%V`` + specifier for ISO 8601 week numbers. -* The :command:`ctest_memcheck` command now also generates a - `DynamicAnalysis-Test.xml` file which may be used to submit test results to - CDash. +.. _`OS identification variables`: https://www.freedesktop.org/software/systemd/man/os-release.html -* :manual:`ctest(1)` learned to recognize labels attached to a test at run time. - Previously it was only possible to attach labels to tests at configure time - by using the :prop_test:`LABELS` test property. - See :ref:`Additional Test Measurements` for more information. +Variables +--------- * The :envvar:`CMAKE_BUILD_TYPE` environment variable was added to provide a default value for the :variable:`CMAKE_BUILD_TYPE` variable. @@ -62,6 +31,36 @@ Changes made since CMake 3.21 include the following. provide a default value for the :variable:`CMAKE_CONFIGURATION_TYPES` variable. +* The :envvar:`CMAKE_INSTALL_MODE` environment variable was added to + tell :command:`install` rules (implemented by :command:`file(INSTALL)`) + to install symbolic links instead of copying of files. + +* The :variable:`CMAKE_<LANG>_LINK_WHAT_YOU_USE_FLAG` and + :variable:`CMAKE_LINK_WHAT_YOU_USE_CHECK` variables were added to + control the linker flag and check used by the + :prop_tgt:`LINK_WHAT_YOU_USE` target property. + +* The :variable:`CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` variable + was added to turn a non-REQUIRED :command:`find_package` call into + a REQUIRED one. + +Properties +---------- + +* The :prop_tgt:`<LANG>_EXTENSIONS` target property is now initialized to + :variable:`CMAKE_<LANG>_EXTENSIONS_DEFAULT`, detected from the compiler. + See :policy:`CMP0128`. + +* The :prop_sf:`VS_SETTINGS` source file property is now supported for + all source file types. Previously it worked only for non-built sources. + +Modules +------- + +* The :module:`CMakeDependentOption` module :command:`cmake_dependent_option` + macro now supports full :ref:`Condition Syntax`. + See policy :policy:`CMP0127`. + * The :module:`FetchContent` module now passes through the :variable:`CMAKE_TLS_VERIFY`, :variable:`CMAKE_TLS_CAINFO`, :variable:`CMAKE_NETRC` and :variable:`CMAKE_NETRC_FILE` variables (when @@ -76,9 +75,6 @@ Changes made since CMake 3.21 include the following. * The :module:`FindMatlab` module now provides imported targets. -* The :variable:`CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` variable was added - to turn a non-REQUIRED :command:`find_package` call into a REQUIRED one. - * The :module:`FindPkgConfig` module gained a :variable:`PKG_CONFIG_ARGN` variable to specify arguments to ``pkg-config`` calls. @@ -86,39 +82,63 @@ Changes made since CMake 3.21 include the following. function gained a ``TEST_FILTER`` option to filter tests using ``--gtest_filter`` during test discovery. -* Configuration for :prop_tgt:`LINK_WHAT_YOU_USE` feature is now controlled by - ``CMake`` variables and only active for ``ELF`` platforms. +* The :module:`UseSWIG` module, for :ref:`Visual Studio Generators`, + can now use the ``swig`` tool to generate implicit dependencies. -* The MSVC compilers learned to pass the ``-external:I`` flag for system - includes when using the :generator:`Ninja` and :generator:`NMake Makefiles` - generators. This became available as of Visual Studio 16.10 (toolchain - version 14.29.30037). +CTest +----- -* The :ref:`Ninja Generators` now implement the ``edit_cache`` target - using :manual:`ccmake(1)` if available. +* :manual:`ctest(1)` learned to recognize labels attached to a test at run time. + Previously it was only possible to attach labels to tests at configure time + by using the :prop_test:`LABELS` test property. + See :ref:`Additional Test Measurements` for more information. -* The :cpack_gen:`CPack NSIS Generator` gained a new variable - :variable:`CPACK_NSIS_IGNORE_LICENSE_PAGE` to ignore the - license page in the installer. +* :manual:`ctest(1)` learned to be able to modify the environment for a test + through the :prop_test:`ENVIRONMENT_MODIFICATION` property. This is allows + for updates to environment variables based on the environment present at + test time. -* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.03 or later. +* The :command:`ctest_memcheck` command now also generates a + :file:`DynamicAnalysis-Test.xml` file which may be used to submit test + results to CDash. -* The :command:`cmake_host_system_information` command query operating system - identification `variables <https://www.freedesktop.org/software/systemd/man/os-release.html>`_ - from the :file:`/etc/os-release` file. +CPack +----- -* The :command:`string(TIMESTAMP)` command now supports the ``%V`` - specifier for ISO 8601 week numbers. +* The :cpack_gen:`CPack DEB Generator` gained the + option to set :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` to ``zstd``, + which enables Zstandard compression for deb packages. + +* The :cpack_gen:`CPack NSIS Generator` gained a new + :variable:`CPACK_NSIS_IGNORE_LICENSE_PAGE` variable to suppress + the license page in the installer. -* :command:`target_compile_features` learned to ignored features for languages that - aren't enabled. +* The :cpack_gen:`CPack RPM Generator` gained the + :variable:`CPACK_RPM_REQUIRES_EXCLUDE_FROM` option to avoid scanning + specific paths for dependencies. -* :module:`UseSWIG` module gained the capability, for - :ref:`Visual Studio Generators` to use `swig` tool to generate implicit - dependencies. +Deprecated and Removed Features +=============================== * The :generator:`Visual Studio 10 2010` generator is now deprecated and will be removed in a future version of CMake. -* The :prop_sf:`VS_SETTINGS` source file property is now supported for - all source file types. Previously it worked only for non-built sources. +Other Changes +============= + +* The :manual:`Compile Features <cmake-compile-features(7)>` functionality now + correctly disables or enables compiler extensions when no standard level is + specified and avoids unnecessarily adding language standard flags if the + requested settings match the compiler's defaults. See :policy:`CMP0128`. + +* The :manual:`Compile Features <cmake-compile-features(7)>` functionality + now ignores features for languages that are not enabled. + +* The :ref:`Ninja Generators` now implement the ``edit_cache`` target + using :manual:`ccmake(1)` if available. + +* The :generator:`Ninja` and :generator:`NMake Makefiles` generators + now use the MSVC ``-external:I`` flag for system includes. + This became available as of VS 16.10 (toolchain version 14.29.30037). + +* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.03 or later. |