diff options
Diffstat (limited to 'Help/release/3.26.rst')
-rw-r--r-- | Help/release/3.26.rst | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/Help/release/3.26.rst b/Help/release/3.26.rst new file mode 100644 index 0000000..38cf5ea --- /dev/null +++ b/Help/release/3.26.rst @@ -0,0 +1,118 @@ +CMake 3.26 Release Notes +************************ + +.. only:: html + + .. contents:: + +Changes made since CMake 3.25 include the following. + +* The :genex:`BUILD_LOCAL_INTERFACE` generator expression was added to + prevent usage requirements from being exported to dependent projects. + +* 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. + +* The :manual:`cmake(1)` ``-E`` option learned a new ``copy_directory_if_different`` command. + +* The :option:`cmake -E copy <cmake-E copy>` argument now supports a ``-t`` argument. + +* 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. + +* 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. + +* 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. + +* 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)`. + +* :command:`add_custom_command` and :command:`add_custom_target` now + support :manual:`generator expressions <cmake-generator-expressions(7)>` + in their ``COMMENT`` option. + +* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for + compatibility with CMake versions older than 2.8.4 has been removed. + +* The :module:`ExternalProject` module :command:`ExternalProject_Add` command + gained an ``INSTALL_BYPRODUCTS`` option to specify files generated by the + "install" step. + +* 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 :module:`FindCUDAToolkit` gained support for the `sbsa-linux` cross compilation target + +* The :module:`FindCUDAToolkit` module now provides a target for + ``libnvrtc_static``, if found. + +* 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>`_. + +* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now + set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only + one frontend variant. + +* :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. + +* The ``ASM_MARMASM`` language was added to support the Microsoft ARM assembler language. + +* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands + now support the ``%z`` and ``%Z`` specifiers for the time zone. + +* 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. + +* Global property :prop_gbl:`USE_FOLDERS` is treated as ``ON`` by default. + See policy :policy:`CMP0143`. + +* The :module:`UseSWIG` module gained the support of ``perl5`` language. + +* 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. + +* 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. |