[ANNOUNCE] CMake 3.26.0-rc5 is ready for testing
Tom Osika
tom.osika at kitware.com
Wed Mar 1 17:21:52 GMT 2023
I am proud to announce the fifth CMake 3.26 release candidate.
https://cmake.org/download/
Documentation is available at:
https://cmake.org/cmake/help/v3.26
Release notes appear below and are also published at
https://cmake.org/cmake/help/v3.26/release/3.26.html
Some of the more significant changes in CMake 3.26 are:
* The "ASM_MARMASM" language was added to support the Microsoft ARM
assembler language.
* CMake now writes a YAML log of configure-time checks to
"CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
See the "cmake-configure-log(7)" manual.
* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
a new "fileSets" field and associated "fileSetIndex" field to
"sources" objects.
* The "$<BUILD_LOCAL_INTERFACE:...>" generator expression was added to
prevent usage requirements from being exported to dependent
projects.
* Language Standard Flags, such as "-std=c++11", when generated due to
"target_compile_features()" or "CMAKE_<LANG>_STANDARD", are now
placed before flags added by "target_compile_options()", rather than
after them.
* The top-level "project()" call will now emit an author warning if
the documented command order in relation to
"cmake_minimum_required()" is not respected.
CMake 3.26 Release Notes
************************
Changes made since CMake 3.25 include the following.
New Features
============
Languages
---------
* The "ASM_MARMASM" language was added to support the Microsoft ARM
assembler language.
Command-Line
------------
* The "cmake -E copy" command-line tool now supports a "-t" argument.
* The "cmake -E copy_directory_if_different" command-line tool was
added.
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 "cmake-configure-log(7)" manual.
File-Based API
--------------
* The "cmake-file-api(7)" "codemodel" version 2 "version" field has
been updated to 2.5.
* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
a new "fileSets" field and associated "fileSetIndex" field to
"sources" objects.
* The "cmake-file-api(7)" gained a new "configureLog" object kind that
enables stable access to the "cmake-configure-log(7)".
Commands
--------
* The "add_custom_command()" and "add_custom_target()" commands now
support "generator expressions" in their "COMMENT" option.
* The "message()" command gained a "CONFIGURE_LOG" mode to record an
entry in the "cmake-configure-log(7)".
* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
the "%z" and "%Z" specifiers for the time zone.
* The "try_compile()" and "try_run()" commands gained a
"LOG_DESCRIPTION" option specifying text to be recorded in the
"cmake-configure-log(7)".
* The "try_compile()" and "try_run()" commands gained a "NO_LOG"
option to skip recording a "cmake-configure-log(7)" entry.
Variables
---------
* The "CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT" variable is now set for
"GNU", "MSVC", and "AppleClang" compilers that have only one
frontend variant.
* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual
Studio Generators for VS 2017 and above to report the four-component
Visual Studio version number.
Properties
----------
* The "<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
"CMAKE_<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to
initialize this property.
* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added
to tell the "Xcode" generator to embed ExtensionKit-based extensions
such as extensions using the Background Assets framework. Aspects
of the embedding can be customized with:
* "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"
* "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"
* "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"
Modules
-------
* The "ExternalProject" module's "ExternalProject_Add()" command
gained an "INSTALL_BYPRODUCTS" option to specify files generated by
the "install" step.
* The "FindCUDAToolkit" module:
* gained support for the "sbsa-linux" cross compilation target, and
* now provides an imported target for "nvrtc_static", if found.
* The "FindImageMagick" module now provides imported targets.
* The "FindPython3" and "FindPython" modules gained support for the
Stable Application Binary Interface.
* The "UseSWIG" module gained support for the "perl5" language.
Generator Expressions
---------------------
* The "$<BUILD_LOCAL_INTERFACE:...>" generator expression was added to
prevent usage requirements from being exported to dependent
projects.
CTest
-----
* The "CTEST_NO_TESTS_ACTION" environment variable was added to
provide a default value for the "--no-tests=<action>" command line
argument of "ctest(1)".
Deprecated and Removed Features
===============================
* The "CMakeFiles/CMakeOutput.log" and "CMakeFiles/CMakeError.log"
files are no longer populated by CMake's built-in modules.
"cmake(1)" no longer suggests looking at them after a "CMake Error"
occurs. Information previously logged to those files is instead
logged to the "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
=============
* Language Standard Flags, such as "-std=c++11", when generated due to
"target_compile_features()" or "CMAKE_<LANG>_STANDARD", are now
placed before flags added by "target_compile_options()", rather than
after them.
* For all "COMPILE_DEFINITIONS" properties, any leading "-D" on an
item is removed whether or not it was specified by a generator
expression.
* The "compile_commands.json" database enabled by
"CMAKE_EXPORT_COMPILE_COMMANDS" now provides the "output" field in
the compile commands objects. This allows multi-config generators,
such as the "Ninja Multi-Config" generator, to provide the compile
commands for all configurations.
* The "USE_FOLDERS" global property is treated as "ON" by default. See
policy "CMP0143".
* The top-level "project()" call will now emit an author warning if
the documented command order in relation to
"cmake_minimum_required()" is not respected.
* The "cmake --trace" option now follows "try_compile()" and
"try_run()" invocations.
----------------------------------------------------------------------------
Changes made since CMake 3.26.0-rc4:
Brad King (5):
gitlab-ci: Update Windows builds to MSVC 14.35 toolset
Help: Document that CMAKE_MODULE_PATH must use forward slashes
Tests: Drop use of legacy "Dart" module
ccmake: Update minimum required version of CMake for curses check
CMake 3.26.0-rc5
Craig Scott (2):
Help: Improve wording of FOLDER-related properties and policies
Help: Fix typos and grammar in 3.26 release notes
Kyle Edwards (1):
FindOpenSSL: Search for -pthread flag
Marc Chevrier (1):
FindPython: fix erroneous ${CMAKE_SHARED_LIBRARY_SUFFIX} matching
scivision (1):
Help:try_{compile,run}: clarify, encourage new syntax
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-devel/attachments/20230301/57ac9cd3/attachment.htm>
More information about the kde-devel
mailing list