diff options
author | Brad King <brad.king@kitware.com> | 2023-02-01 18:48:50 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-02-01 19:02:17 (GMT) |
commit | 385435cf78e3f92e4bc8862eb7eab749b9220e26 (patch) | |
tree | bada07e0a5d3235ca64e6d7a6f11a151f9006b67 /Help/release | |
parent | 4c63f031c11e2aee50a63c3b89b08d4d6738022e (diff) | |
download | CMake-385435cf78e3f92e4bc8862eb7eab749b9220e26.zip CMake-385435cf78e3f92e4bc8862eb7eab749b9220e26.tar.gz CMake-385435cf78e3f92e4bc8862eb7eab749b9220e26.tar.bz2 |
Help: Organize and revise 3.26 release notes
Add section headers similar to the 3.25 release notes and move each
individual bullet into an appropriate section. Revise a few bullets.
Add a bullet for `FindImageMagick` that was accidentally left out
when its changes were made.
Diffstat (limited to 'Help/release')
-rw-r--r-- | Help/release/3.26.rst | 178 |
1 files changed, 116 insertions, 62 deletions
diff --git a/Help/release/3.26.rst b/Help/release/3.26.rst index 38cf5ea..ff2e208 100644 --- a/Help/release/3.26.rst +++ b/Help/release/3.26.rst @@ -7,37 +7,57 @@ CMake 3.26 Release Notes 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. +New Features +============ -* 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. +Languages +--------- -* The :manual:`cmake(1)` ``-E`` option learned a new ``copy_directory_if_different`` command. +* The ``ASM_MARMASM`` language was added to support the + Microsoft ARM assembler language. -* The :option:`cmake -E copy <cmake-E copy>` argument now supports a ``-t`` argument. +Command-Line +------------ -* 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. +* The :option:`cmake -E copy <cmake-E copy>` command-line tool now + supports a ``-t`` argument. -* 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. +* The :option:`cmake -E copy_directory_if_different + <cmake-E copy_directory_if_different>` command-line tool was added. -* CMake now writes a YAML log of configure-time checks. +Configure Log +------------- + +* CMake now writes a YAML log of configure-time checks to + ``CMakeFiles/CMakeConfigureLog.yaml`` under the top of the build tree. See the :manual:`cmake-configure-log(7)` manual. +File-Based API +-------------- + +* 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 :manual:`cmake-file-api(7)` gained a new "configureLog" object kind that enables stable access to the :manual:`cmake-configure-log(7)`. +Commands +-------- + +* The :command:`add_custom_command` and :command:`add_custom_target` commands + now support :manual:`generator expressions <cmake-generator-expressions(7)>` + in their ``COMMENT`` option. + * The :command:`message` command gained a ``CONFIGURE_LOG`` mode to record an entry in the :manual:`cmake-configure-log(7)`. +* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands + now support the ``%z`` and ``%Z`` specifiers for the time zone. + * 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)`. @@ -46,51 +66,103 @@ Changes made since CMake 3.25 include the following. ``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)`. +Variables +--------- -* :command:`add_custom_command` and :command:`add_custom_target` now - support :manual:`generator expressions <cmake-generator-expressions(7)>` - in their ``COMMENT`` option. +* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now + set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only + one frontend variant. -* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for - compatibility with CMake versions older than 2.8.4 has been removed. +* 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. + +Properties +---------- + +* The :prop_tgt:`<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` target property was + added 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 :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: + + * :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>` + * :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY <XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY>` + +Modules +------- * The :module:`ExternalProject` module :command:`ExternalProject_Add` command gained an ``INSTALL_BYPRODUCTS`` option to specify files generated by the - "install" step. + ``install`` step. -* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has - been updated to 2.5. +* The :module:`FindCUDAToolkit` module: -* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object - gained a new ``fileSets`` field and associated ``fileSetIndex`` - field to ``sources`` objects. + * gained support for the ``sbsa-linux`` cross compilation target, and -* The :module:`FindCUDAToolkit` gained support for the `sbsa-linux` cross compilation target + * now provides an imported target for ``nvrtc_static``, if found. -* The :module:`FindCUDAToolkit` module now provides a target for - ``libnvrtc_static``, if found. +* The :module:`FindImageMagick` module now provides imported targets. -* 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 :module:`FindPython3` and :module:`FindPython` modules gained + support for the `Stable Application Binary Interface`_. -* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now - set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only - one frontend variant. +* The :module:`UseSWIG` module gained the support for the ``perl5`` language. + +.. _`Stable Application Binary Interface`: https://docs.python.org/3/c-api/stable.html + +Generator Expressions +--------------------- + +* The :genex:`$<BUILD_LOCAL_INTERFACE:...>` generator expression was added to + prevent usage requirements from being exported to dependent projects. + +CTest +----- + +* 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)`. + +Deprecated and Removed Features +=============================== + +* The ``CMakeFiles/CMakeOutput.log`` and ``CMakeFiles/CMakeError.log`` + files are no longer populated by CMake's builtin modules, and + :manual:`cmake(1)` no longer suggests looking at them after a + ``CMake Error`` occurs. Information previously logged to those + files is instead logged to ``CMakeFiles/CMakeConfigureLog.yaml``, + the :manual:`cmake-configure-log(7)`. + +* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for + compatibility with CMake versions older than 2.8.4 has been removed. + +Other Changes +============= * :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. +* For all ``COMPILE_DEFINITIONS`` properties, any leading ``-D`` on an item + is removed whether or not it was specified by a generator expression. -* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands - now support the ``%z`` and ``%Z`` specifiers for the time zone. +* The ``compile_commands.json`` database enabled by + :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` now provides the ``output`` + field in the compile commands objects. This allows multi-config + generators, such as the :generator:`Ninja Multi-Config` generator, + to provide the compile commands for all configurations. + +* The :prop_gbl:`USE_FOLDERS` global property is treated as ``ON`` by default. + See policy :policy:`CMP0143`. * 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 @@ -98,21 +170,3 @@ Changes made since CMake 3.25 include the following. * 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. |