<div dir="ltr">We are pleased to announce that CMake 3.26.0 is now available for download.<br>  <a href="https://cmake.org/download/" target="_blank">https://cmake.org/download/</a><br><br>Documentation is available at:<br>  <a href="https://cmake.org/cmake/help/v3.26" target="_blank">https://cmake.org/cmake/help/v3.26</a><br><br>Release notes appear below and are also published at<br>  <a href="https://cmake.org/cmake/help/v3.26/release/3.26.html" target="_blank">https://cmake.org/cmake/help/v3.26/release/3.26.html</a><br><br>Some of the more significant changes in CMake 3.26 are:<br><br>* The "ASM_MARMASM" language was added to support the Microsoft ARM<br>  assembler language.<br><br>* CMake now writes a YAML log of configure-time checks to<br>  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.<br>  See the "cmake-configure-log(7)" manual.<br><br>* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained<br>  a new "fileSets" field and associated "fileSetIndex" field to<br>  "sources" objects.<br><br>* The "$<BUILD_LOCAL_INTERFACE:...>" generator expression was added to<br>  prevent usage requirements from being exported to dependent<br>  projects.<br><br>* Language Standard Flags, such as "-std=c++11", when generated due to<br>  "target_compile_features()" or "CMAKE_<LANG>_STANDARD", are now<br>  placed before flags added by "target_compile_options()", rather than<br>  after them.<br><br>* The top-level "project()" call will now emit an author warning if<br>  the documented command order in relation to<br>  "cmake_minimum_required()" is not respected.<br><br><br>CMake 3.26 Release Notes<br>************************<br><br>Changes made since CMake 3.25 include the following.<br><br><br>New Features<br>============<br><br><br>Languages<br>---------<br><br>* The "ASM_MARMASM" language was added to support the Microsoft ARM<br>  assembler language.<br><br><br>Command-Line<br>------------<br><br>* The "cmake -E copy" command-line tool now supports a "-t" argument.<br><br>* The "cmake -E copy_directory_if_different" command-line tool was<br>  added.<br><br><br>Configure Log<br>-------------<br><br>* CMake now writes a YAML log of configure-time checks to<br>  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.<br>  See the "cmake-configure-log(7)" manual.<br><br><br>File-Based API<br>--------------<br><br>* The "cmake-file-api(7)" "codemodel" version 2 "version" field has<br>  been updated to 2.5.<br><br>* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained<br>  a new "fileSets" field and associated "fileSetIndex" field to<br>  "sources" objects.<br><br>* The "cmake-file-api(7)" gained a new "configureLog" object kind that<br>  enables stable access to the "cmake-configure-log(7)".<br><br><br>Commands<br>--------<br><br>* The "add_custom_command()" and "add_custom_target()" commands now<br>  support "generator expressions" in their "COMMENT" option.<br><br>* The "message()" command gained a "CONFIGURE_LOG" mode to record an<br>  entry in the "cmake-configure-log(7)".<br><br>* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support<br>  the "%z" and "%Z" specifiers for the time zone.<br><br>* The "try_compile()" and "try_run()" commands gained a<br>  "LOG_DESCRIPTION" option specifying text to be recorded in the<br>  "cmake-configure-log(7)".<br><br>* The "try_compile()" and "try_run()" commands gained a "NO_LOG"<br>  option to skip recording a "cmake-configure-log(7)" entry.<br><br><br>Variables<br>---------<br><br>* The "CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT" variable is now set for<br>  "GNU", "MSVC", and "AppleClang" compilers that have only one<br>  frontend variant.<br><br>* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual<br>  Studio Generators for VS 2017 and above to report the four-component<br>  Visual Studio version number.<br><br><br>Properties<br>----------<br><br>* The "<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR" target property was added<br>  to allow the "clang-tidy" tool to export its suggested fixes to a<br>  set of ".yaml" files. A new<br>  "CMAKE_<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to<br>  initialize this property.<br><br>* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added<br>  to tell the "Xcode" generator to embed ExtensionKit-based extensions<br>  such as extensions using the Background Assets framework.  Aspects<br>  of the embedding can be customized with:<br><br>  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"<br><br>  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"<br><br>  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"<br><br><br>Modules<br>-------<br><br>* The "ExternalProject" module's "ExternalProject_Add()" command<br>  gained an "INSTALL_BYPRODUCTS" option to specify files generated by<br>  the "install" step.<br><br>* The "FindCUDAToolkit" module:<br><br>  * gained support for the "sbsa-linux" cross compilation target, and<br><br>  * now provides an imported target for "nvrtc_static", if found.<br><br>* The "FindImageMagick" module now provides imported targets.<br><br>* The "FindPython3" and "FindPython" modules gained support for the<br>  Stable Application Binary Interface.<br><br>* The "UseSWIG" module gained support for the "perl5" language.<br><br><br>Generator Expressions<br>---------------------<br><br>* The "$<BUILD_LOCAL_INTERFACE:...>" generator expression was added to<br>  prevent usage requirements from being exported to dependent<br>  projects.<br><br><br>CTest<br>-----<br><br>* The "CTEST_NO_TESTS_ACTION" environment variable was added to<br>  provide a default value for the "--no-tests=<action>" command line<br>  argument of "ctest(1)".<br><br><br>Deprecated and Removed Features<br>===============================<br><br>* The "CMakeFiles/CMakeOutput.log" and "CMakeFiles/CMakeError.log"<br>  files are no longer populated by CMake's built-in modules.<br>  "cmake(1)" no longer suggests looking at them after a "CMake Error"<br>  occurs.  Information previously logged to those files is instead<br>  logged to the "cmake-configure-log(7)".<br><br>* On CYGWIN, the undocumented "CMAKE_LEGACY_CYGWIN_WIN32" mode for<br>  compatibility with CMake versions older than 2.8.4 has been removed.<br><br><br>Other Changes<br>=============<br><br>* Language Standard Flags, such as "-std=c++11", when generated due to<br>  "target_compile_features()" or "CMAKE_<LANG>_STANDARD", are now<br>  placed before flags added by "target_compile_options()", rather than<br>  after them.<br><br>* For all "COMPILE_DEFINITIONS" properties, any leading "-D" on an<br>  item is removed whether or not it was specified by a generator<br>  expression.<br><br>* The "compile_commands.json" database enabled by<br>  "CMAKE_EXPORT_COMPILE_COMMANDS" now provides the "output" field in<br>  the compile commands objects.  This allows multi-config generators,<br>  such as the "Ninja Multi-Config" generator, to provide the compile<br>  commands for all configurations.<br><br>* The "USE_FOLDERS" global property is treated as "ON" by default. See<br>  policy "CMP0143".<br><br>* The top-level "project()" call will now emit an author warning if<br>  the documented command order in relation to<br>  "cmake_minimum_required()" is not respected.<br><br>* The "cmake --trace" option now follows "try_compile()" and<br>  "try_run()" invocations.<br><br>----------------------------------------------------------------------------<br>Changes made since CMake 3.26.0-rc6:<br><br>Brad King (3):<br>  Ninja: Revert "Optimize target depends closure" due to performance regression<br>  CheckCompilerFlag: Revert 'Match the Clang "argument unused" output ...'<br>  CMake 3.26.0<br></div>