|
|
@@ -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.
|