[ANNOUNCE] CMake 4.4.0-rc3 is ready for testing

John Parent <[email protected]> Wed, 1 Jul 2026 17:01:00 -0400
Newsgroups gmane.comp.kde.devel.general
Message-ID <CAN7YEFeYk=vJ_fXemrW1EFOX8wPjaAixjGK9O3o1CFJrQQECZQ@mail.gmail.com>
--00000000000092e9880655930241
Content-Type: text/plain; charset="UTF-8"

I am proud to announce the third CMake 4.4 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v4.4

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v4.4/release/4.4.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/194

Some of the most significant changes in CMake 4.4 are:


* CMake diagnostic actions are now tracked in a new state type managed
  by the "cmake_diagnostic()" command. The new system introduces several
  new diagnostic categories.

* "macro()" invocations now preserve backslashes in arguments. See
  policy "CMP0219".

* "cmake(1)", "ctest(1)", and "cpack(1)" gained "--presets-file"
  arguments to support loading "presets" from the specified file.

* The Ninja Generators now support generating a build target named
  "test_prep/<test-name>" for each test added by "add_test()", which
  builds all dependencies for that test. This behavior is enabled by
  the new "CMAKE_TEST_BUILD_DEPENDS" variable.

* "cmake --install" now supports installing multiple components.

* The "discover_tests()" command was added to support registering
  tests discovered at test time by "ctest(1)". It runs a user-provided
  discovery command, parses its output, and generates test names,
  arguments, and properties from regular-expression captures.

* The "execute_process()" command gained "ENVIRONMENT" and
  "ENVIRONMENT_MODIFICATION" options to run child processes with a
  modified environment.

* A "SOURCES" file set type was added to specify a target's source
  files via file sets.

* The "SCOPE", "TYPE", "BASE_DIRS", "SOURCES", and "INTERFACE_SOURCES"
  file set properties were added to provide the declared details of a
  file set.

* The "CMakePackageConfigHelpers" module's
  "write_basic_package_version_file()" command now supports
  "SamePatchVersion", "SameFullVersion", and "SemanticVersion"
  compatibility modes.

* "ctest(1)" gained support for forwarding extra arguments to test
  executables using a "--" separator.



CMake 4.4 Release Notes
***********************

Changes made since CMake 4.3 include the following.


New Features
============


Diagnostics
-----------

* CMake diagnostic actions are now tracked in a new state type managed
  by the "cmake_diagnostic()" command.  This replaces the old system
  which sometimes used variables to manage reporting actions and
  sometimes did not allow management beyond command-line options and
  presets.  The new system also introduces several new diagnostic
  categories and significantly reduces the cost of adding additional
  categories in the future.  See the "cmake-diagnostics(7)" manual for
  a list of available categories.

* The "CMD_INSTALL_ABSOLUTE_DESTINATION" diagnostic category was added
  to diagnose "install()" commands that specify an absolute
  "DESTINATION".  This diagnostic may be controlled with the
  "-Winstall-absolute-destination" command-line option, the
  "installAbsoluteDestination" field in a "CMake Presets" "warnings"
  object, or the "cmake_diagnostic()" command.


Presets
-------

* "cmake-presets(7)" files now support schema version 12.

* "cmake(1)", "ctest(1)", and "cpack(1)" gained "--presets-file"
  arguments to support loading "presets" from the specified file
  instead of "CMakePresets.json" and/or "CMakeUserPresets.json". See
  "cmake --presets-file", "cmake --build --presets-file", "cmake
  --workflow --presets-file", "ctest --presets-file", and "cpack
  --presets-file" for details.

* "cmake-presets(7)", in schema version 12 and above, now expand the
  ${fileDir} macro to the directory of the presets file containing the
  "${fileDir}" macro, regardless of whether it is inherited by another
  preset in a different directory.

* "cmake-presets(7)" gained support for a "testPassthroughArguments"
  field in the test preset "execution" object for forwarding arguments
  to test executables via presets.


File-Based API
--------------

* The "cmake-file-api(7)" "codemodel" version 2 object has been
  updated to 2.11.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object's
  "sources" and "interfaceSources" objects gained new "fileSetIndexes"
  fields to support sources belonging to multiple file sets. The
  "fileSetIndex" fields are maintained for backwards compatibility
  only, and users are advised to port to the new fields.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object's
  "sources" object gained a new "backtraces" field to represent
  multiple command invocations which associate a single source for a
  given target with multiple file sets. The "backtrace" field is
  maintained for backwards compatibility only, and users are advised
  to port to the new field.

* The "cmake-file-api(7)" "codemodel" version 2 "installers" object's
  optional "fileSetType" field gained a new "SOURCES" value to
  incorporate the new "SOURCES" file set type in codemodel replies.


Instrumentation
---------------

* The "cmake-instrumentation(7)" data version has been updated to 1.1.

* "cmake-instrumentation(7)" gained a "captureOutput" option which
  collects the "stdout" and "stderr" of instrumented commands.

* "cmake-instrumentation(7)" gained a "compileTrace" option which
  records compiler-generated trace files (e.g., from Clang's "-ftime-
  trace" flag).


Generators
----------

* The Ninja Generators now support generating a build target named
  "test_prep/<test-name>" for each test added by "add_test()", which
  builds all dependencies for that test. Build dependencies are
  registered for an executable target invoked by the test, targets
  referenced in generator expressions in the test command, and
  explicit dependencies added using the new "BUILD_DEPENDS" option.
  This behavior is enabled by the new "CMAKE_TEST_BUILD_DEPENDS"
  variable. A "test_prep/all" target is also generated to depend on
  every "test_prep/<test-name>" target. Tests with names that are not
  valid target names are excluded from this behavior. If multiple
  tests in different directories share the same name, their
  dependencies are merged into one "test_prep/<test-name>" target.


Languages
---------

* CUDA language level 23 (corresponding to C++ 23) is now supported
  with NVCC 13.3 and above.


Compilers
---------

* C++ 20 named modules are now supported with "clang-cl". See "cmake-
  cxxmodules(7)".

* The "ibm-flang" compiler is now supported with "compiler id"
  "IBMFlang".

* The Pelles C toolchain is now supported with "compiler id"
  "PellesC".

  The "ASM_POASM" language was added to support the Pelles Macro
  Assembler.

* The Open Watcom "wlink" linker is now identified with
  "CMAKE_<LANG>_COMPILER_LINKER_ID" "OpenWatcom".

* The wild linker is now supported with
  "CMAKE_<LANG>_COMPILER_LINKER_ID" "WILD".


Command-Line
------------

* "cmake(1)" now supports "--build <dir> --preset <pre>" regardless of
  the current working directory.

* The "cmake -D" command-line option now populates a default
  "HELPSTRING" for variables known to CMake.

* "cmake --install" now supports installing multiple components.

* "cmake --install" now accepts "-j<N>" in addition to "-j <N>" for
  specifying the number of parallel jobs.

* The "cmake -E" commands "copy_if_different", "copy_if_newer",
  "copy_directory", "copy_directory_if_different", and
  "copy_directory_if_newer" gained support for the "-t" argument.

* The "cmake -E tar" command-line tool gained the "--cmake-tar-
  encoding" flag to specify the pathname encoding used in archives.


Commands
--------

* The "block()" command can now create a "DIAGNOSTICS" scope.

* The "cmake_diagnostic()" command was added to manipulate CMake's
  diagnostic state.

* The "cmake_parse_arguments()" command gained a new "PARSE_ARGN"
  signature that starts parsing after the last named argument of the
  calling function and works exactly like "PARSE_ARGV" with "<N>"
  being the number of parameters in the function definition.

* The "discover_tests()" command was added to support registering
  tests discovered at test time by "ctest(1)". It runs a user-provided
  discovery command, parses its output, and generates test names,
  arguments, and properties from regular-expression captures.

* The "execute_process()" command gained "ENVIRONMENT" and
  "ENVIRONMENT_MODIFICATION" options to run child processes with a
  modified environment.

* The "file(ARCHIVE_CREATE)" and "file(ARCHIVE_EXTRACT)" commands
  gained an "ENCODING" option to specify the encoding of the archive
  pathnames.  The default is now "UTF-8". See policy "CMP0213".

* The "file(READ_SYMLINK)" command gained a "RESULT" option to capture
  errors without failing.

* The "if()" command gained a new "DIAGNOSTIC" operator that evaluates
  to true if a given diagnostic category name is known to CMake.

* The "include()" command now has a "NO_DIAGNOSTIC_SCOPE" option.

* The "list(FILTER)" command gained a new "PREDICATE" mode that
  invokes a user-defined "function()" to decide which elements are
  included or excluded, complementing the existing "REGEX" mode.

* The "list(SORT)" command gained a new "COMPARATOR" keyword that
  invokes a user-defined "function()" to compare elements,
  complementing the built-in "COMPARE" methods.

* The "list(TRANSFORM)" command gained a new "APPLY" action that
  invokes a user-defined "function()" for each element of the list,
  enabling arbitrary per-element transformations.

* The "list(TRANSFORM)" command gained a new "PREDICATE" selector that
  invokes a user-defined "function()" to decide which elements are
  transformed.

* The "string(JSON ... PARTIAL_EQUAL)" command was added to compare
  two JSON values using *partial* equality.


File Sets
---------

* A "SOURCES" file set type was added to specify a target's source
  files via file sets.

* The "CXX_SCAN_FOR_MODULES" file set property was added to control
  whether a file set's sources are scanned for C++ modules.

* The "INDEPENDENT_FILES" file set property was added to specify that
  a file set's sources do not depend on any generated files.

* The "JOB_POOL_COMPILE" file set property was added to assign a file
  set's sources to a specific Ninja job pool.

* The "SCOPE", "TYPE", "BASE_DIRS", "SOURCES", and "INTERFACE_SOURCES"
  file set properties were added to provide the declared details of a
  file set.

* The "SKIP_LINTING" file set property was added to exclude a file
  set's sources from target-wide code checks.

* The "SKIP_PRECOMPILE_HEADERS" file set property was added to avoid
  using precompiled headers for a file set's sources.

* The "SKIP_UNITY_BUILD_INCLUSION" file set property was added to
  exclude a file set's sources from inclusion in unity builds.


Variables
---------

* The "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME" variable gained support
  for a special "<PROJECT_NAME>" placeholder value. It tells each
  "install()" invocation to take a default component name from the
  current "PROJECT_NAME" variable value.


Environment Variables
---------------------

* The "CMAKE_DISABLE_PRECOMPILE_HEADERS" environment variable was
  added to disable precompiled headers by default.


Properties
----------

* The "VERIFY_INTERFACE_HEADER_SETS" and "VERIFY_PRIVATE_HEADER_SETS"
  target properties now always create the per-target verification
  target and the aggregate "all_verify_interface_header_sets",
  "all_verify_private_header_sets", and "all_verify_header_sets"
  targets when the property is enabled, even if the target has no
  matching header sets.

* The "VERIFY_INTERFACE_HEADER_SETS" and "VERIFY_PRIVATE_HEADER_SETS"
  target properties now support "OBJC" and "OBJCXX" languages in
  addition to "C" and "CXX".

* The "VS_SOLUTION_DEPLOY" target property is now implemented for
  targets created by "add_custom_target()".


Modules
-------

* The "CMakePackageConfigHelpers" module's
  "write_basic_package_version_file()" command now supports
  "SamePatchVersion", "SameFullVersion", and "SemanticVersion"
  compatibility modes. The older "ExactVersion" mode is now documented
  as deprecated in favor of the more explicit "SamePatchVersion" and
  "SameFullVersion" modes. The "SemanticVersion" mode treats "0.y.z"
  versions more strictly than "1.y.z" and later versions.

* The "ExternalData" module gained an "ExternalData_LINK_MODE"
  variable to select an ordered list of file materialization modes for
  hard links, symbolic links, and copies.

* The "ExternalData" module gained an "ExternalData_STATE_ROOT"
  variable to store hash records outside "ExternalData_BINARY_ROOT".

* The "ExternalProject" and "FetchContent" modules gained
  "CMAKE_EP_GIT_CLONE_RETRY_COUNT" and
  "CMAKE_EP_GIT_CLONE_RETRY_DELAY" variables to control "git clone"
  retries.

* The "FindCUDAToolkit" module now creates a "CUDA::sanitizer" target
  for the compute-sanitizer library.

* The "FindCUDAToolkit" module now provides an imported target for
  "cufilt" in CUDA 11.4 and above.

* "FindPython" and "FindPython3" modules gained the support of the
  Stable ABI for Free Threaded Python ("SABIT") as specified by **PEP
  803**.


Generator Expressions
---------------------

* The "TARGET_OBJECTS" generator expression now has an optional
  "SOURCE_FILES:..." argument, which can take one or more source files
  as arguments, and will filter its output to only include objects
  built from those source files.


Swift
-----

* The Ninja Generators gained the "Swift_SEPARATE_MODULE_EMISSION"
  target property, initialized by the
  "CMAKE_Swift_SEPARATE_MODULE_EMISSION" variable, to control whether
  importable Swift targets emit ".swiftmodule" from a dedicated build
  edge.  Policy "CMP0215" enables this by default.

* The default "Swift_MODULE_NAME" now replaces hyphens with
  underscores, since hyphens are not valid in Swift module
  identifiers.

* Swift targets now have a package name by default. See policy
  "CMP0216".

* The "Swift_PACKAGE_NAME" target property was added to specify a
  Swift package name.

* Swift targets on Windows now support the "$<TARGET_PDB_FILE:...>"
  family of generator expressions.


CTest
-----

* "ctest(1)" gained support for forwarding extra arguments to test
  executables using a "--" separator.

* "ctest(1)" gained a CoverageTool option in Dashboard Client mode to
  configure tests for coverage collection by "llvm-cov".

* The "ctest_configure()", "ctest_build()", "ctest_test()", and
  "ctest_memcheck()" commands gained "PRESET" and "PRESETS_FILE"
  arguments to support using "presets" for their Dashboard Client
  steps.

  The "CTEST_CONFIGURE_PRESET", "CTEST_BUILD_PRESET",
  "CTEST_TEST_PRESET", "CTEST_PRESET", and "CTEST_PRESETS_FILE"
  variables may be used to specify preset arguments to the above
  commands in a Dashboard Client script or on the **ctest** command
  line via the "-D" option.

* "ctest(1)" gained a "--source-dir" option to specify the source
  directory.  When combined with "-T" Configure, this allows CTest to
  perform an initial configure step for an empty binary directory.

* "ctest(1)" gained support for a "CTEST_SUBMIT_PARTS" variable that
  restricts which parts are uploaded when operating in Dashboard
  Client mode.

* The "ctest_update()" command gained "VERSION_ONLY" and
  "VERSION_OVERRIDE" options to select or report a source revision
  without requiring the corresponding "CTEST_UPDATE_VERSION_ONLY" or
  "CTEST_UPDATE_VERSION_OVERRIDE" dashboard script variables.


CPack
-----

* The "CPack Archive Generator" gained the "CPACK_ARCHIVE_ENCODING"
  variable to specify the pathname encoding used in package archives.

* The "CPack NSIS Generator" gained a new variable
  "CPACK_NSIS_IGNORE_COMPONENTS_PAGE" to ignore the component
  selection page in the installer.

* The "CPACK_RPM_SPEC_MORE_DEFINE" variable now supports a list of
  definitions.


Deprecated and Removed Features
===============================

* The "-W[no-][error=]dev" command-line options are deprecated.  The
  new spelling is "-W[no-][error=]author".

* The "--warn-uninitialized" command-line option is deprecated.  The
  new spelling is "-Wuninitialized".

* The "--no-warn-unused-cli" command-line option is deprecated.  The
  new spelling is "-Wno-unused-cli".

* The "CMAKE_WARN_DEPRECATED" and "CMAKE_ERROR_DEPRECATED" variables
  are deprecated.  The new "cmake_diagnostic()" command should be used
  instead.

* The "MACROS" directory property does not exist anymore. See policy
  "CMP0217".


Other Changes
=============

* A file may belong to at most one non-"HEADERS" file set in a target.
  See policy "CMP0211".

* "macro()" invocations now preserve backslashes in arguments. See
  policy "CMP0219".

* "variable_watch()" callback command arguments preserve backslashes.
  See policy "CMP0219".

* "ctest(1)" now exits with non-zero if invoked with no arguments and
  no test input file exists.

* Test drivers generated by the "create_test_sourcelist()" command now
  support the "-N" option to list all tests, one per line.  This is
  useful in combination with the new "discover_tests()" command.

* Names of executables given to the "DEPENDS" argument of
  "add_custom_command()" no longer have ".exe" suffixes stripped to
  establish target-level dependencies. See policy "CMP0212".

* Targets which provide C++ modules may now be consumed by targets
  with different "compile features" and "options" than the provider.


----------------------------------------------------------------------------
Changes made since CMake 4.4.0-rc2:

Aiden Woodruff (2):
  Help/tutorial: fix minor typos
  Help/tutorial: reword Installation Commands intro

Ben Boeckel (1):
  CMakeDetermineCompilerABI: require more variables to skip checks

Brad King (5):
  FindRuby: Fix vendor directory discovery
  Sunway: Detect sw_64 architecture more consistently
  Fortran: Detect pointer size on PowerPC archs with PGI
  Fortran: Detect pointer size on Intel archs with Oracle Studio 12.4 and
below
  CMake 4.4.0-rc3

Carlo Bramini (1):
  FindOpenGL: Fix OpenGL and GLX result variables with legacy GL

Daksh Mamodiya (1):
  instrumentation: Fix stale version references in documentation

Marc Chevrier (1):
  Some target properties for SOURCE file sets are read-only.

Matthew Woehlke (1):
  Check*: Restore toleration of `;-W...` in CMAKE_REQUIRED_FLAGS

Robert Maynard (3):
  FindCUDAToolkit: Detect target processor even when not cross-compiling
  FindCUDAToolkit: Add support for windows arm64
  CUDA: Add support for Clang on Windows ARM64

Vito Gamberini (2):
  c++modules: single import std target
  c++modules: Copy props from BMI consumers more correctly

--00000000000092e9880655930241
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I am proud to announce the third CMake 4.4 release candida=
te.<br>=C2=A0 <a href=3D"https://cmake.org/download/">https://cmake.org/dow=
nload/</a><br><br>Documentation is available at:<br>=C2=A0 <a href=3D"https=
://cmake.org/cmake/help/v4.4">https://cmake.org/cmake/help/v4.4</a><br><br>=
Release notes appear below and are also published at<br>=C2=A0 <a href=3D"h=
ttps://cmake.org/cmake/help/v4.4/release/4.4.html">https://cmake.org/cmake/=
help/v4.4/release/4.4.html</a><br><br>Release milestone is available at:<br=
>=C2=A0 <a href=3D"https://gitlab.kitware.com/cmake/cmake/-/milestones/194"=
>https://gitlab.kitware.com/cmake/cmake/-/milestones/194</a><br><br>Some of=
 the most significant changes in CMake 4.4 are:<br><br><br>* CMake diagnost=
ic actions are now tracked in a new state type managed<br>=C2=A0 by the &qu=
ot;cmake_diagnostic()&quot; command. The new system introduces several <br>=
=C2=A0 new diagnostic categories.<br><br>* &quot;macro()&quot; invocations =
now preserve backslashes in arguments. See<br>=C2=A0 policy &quot;CMP0219&q=
uot;.<br><br>* &quot;cmake(1)&quot;, &quot;ctest(1)&quot;, and &quot;cpack(=
1)&quot; gained &quot;--presets-file&quot;<br>=C2=A0 arguments to support l=
oading &quot;presets&quot; from the specified file.<br><br>* The Ninja Gene=
rators now support generating a build target named<br>=C2=A0 &quot;test_pre=
p/&lt;test-name&gt;&quot; for each test added by &quot;add_test()&quot;, wh=
ich<br>=C2=A0 builds all dependencies for that test. This behavior is enabl=
ed by<br>=C2=A0 the new &quot;CMAKE_TEST_BUILD_DEPENDS&quot; variable.<br><=
br>* &quot;cmake --install&quot; now supports installing multiple component=
s.<br><br>* The &quot;discover_tests()&quot; command was added to support r=
egistering<br>=C2=A0 tests discovered at test time by &quot;ctest(1)&quot;.=
 It runs a user-provided<br>=C2=A0 discovery command, parses its output, an=
d generates test names,<br>=C2=A0 arguments, and properties from regular-ex=
pression captures.<br><br>* The &quot;execute_process()&quot; command gaine=
d &quot;ENVIRONMENT&quot; and<br>=C2=A0 &quot;ENVIRONMENT_MODIFICATION&quot=
; options to run child processes with a<br>=C2=A0 modified environment.<br>=
<br>* A &quot;SOURCES&quot; file set type was added to specify a target&#39=
;s source<br>=C2=A0 files via file sets.<br><br>* The &quot;SCOPE&quot;, &q=
uot;TYPE&quot;, &quot;BASE_DIRS&quot;, &quot;SOURCES&quot;, and &quot;INTER=
FACE_SOURCES&quot;<br>=C2=A0 file set properties were added to provide the =
declared details of a<br>=C2=A0 file set.<br><br>* The &quot;CMakePackageCo=
nfigHelpers&quot; module&#39;s<br>=C2=A0 &quot;write_basic_package_version_=
file()&quot; command now supports<br>=C2=A0 &quot;SamePatchVersion&quot;, &=
quot;SameFullVersion&quot;, and &quot;SemanticVersion&quot;<br>=C2=A0 compa=
tibility modes.<br><br>* &quot;ctest(1)&quot; gained support for forwarding=
 extra arguments to test<br>=C2=A0 executables using a &quot;--&quot; separ=
ator.<br><br><br><br>CMake 4.4 Release Notes<br>***********************<br>=
<br>Changes made since CMake 4.3 include the following.<br><br><br>New Feat=
ures<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br><br>Diagnostics<br>----=
-------<br><br>* CMake diagnostic actions are now tracked in a new state ty=
pe managed<br>=C2=A0 by the &quot;cmake_diagnostic()&quot; command.=C2=A0 T=
his replaces the old system<br>=C2=A0 which sometimes used variables to man=
age reporting actions and<br>=C2=A0 sometimes did not allow management beyo=
nd command-line options and<br>=C2=A0 presets.=C2=A0 The new system also in=
troduces several new diagnostic<br>=C2=A0 categories and significantly redu=
ces the cost of adding additional<br>=C2=A0 categories in the future.=C2=A0=
 See the &quot;cmake-diagnostics(7)&quot; manual for<br>=C2=A0 a list of av=
ailable categories.<br><br>* The &quot;CMD_INSTALL_ABSOLUTE_DESTINATION&quo=
t; diagnostic category was added<br>=C2=A0 to diagnose &quot;install()&quot=
; commands that specify an absolute<br>=C2=A0 &quot;DESTINATION&quot;.=C2=
=A0 This diagnostic may be controlled with the<br>=C2=A0 &quot;-Winstall-ab=
solute-destination&quot; command-line option, the<br>=C2=A0 &quot;installAb=
soluteDestination&quot; field in a &quot;CMake Presets&quot; &quot;warnings=
&quot;<br>=C2=A0 object, or the &quot;cmake_diagnostic()&quot; command.<br>=
<br><br>Presets<br>-------<br><br>* &quot;cmake-presets(7)&quot; files now =
support schema version 12.<br><br>* &quot;cmake(1)&quot;, &quot;ctest(1)&qu=
ot;, and &quot;cpack(1)&quot; gained &quot;--presets-file&quot;<br>=C2=A0 a=
rguments to support loading &quot;presets&quot; from the specified file<br>=
=C2=A0 instead of &quot;CMakePresets.json&quot; and/or &quot;CMakeUserPrese=
ts.json&quot;. See<br>=C2=A0 &quot;cmake --presets-file&quot;, &quot;cmake =
--build --presets-file&quot;, &quot;cmake<br>=C2=A0 --workflow --presets-fi=
le&quot;, &quot;ctest --presets-file&quot;, and &quot;cpack<br>=C2=A0 --pre=
sets-file&quot; for details.<br><br>* &quot;cmake-presets(7)&quot;, in sche=
ma version 12 and above, now expand the<br>=C2=A0 ${fileDir} macro to the d=
irectory of the presets file containing the<br>=C2=A0 &quot;${fileDir}&quot=
; macro, regardless of whether it is inherited by another<br>=C2=A0 preset =
in a different directory.<br><br>* &quot;cmake-presets(7)&quot; gained supp=
ort for a &quot;testPassthroughArguments&quot;<br>=C2=A0 field in the test =
preset &quot;execution&quot; object for forwarding arguments<br>=C2=A0 to t=
est executables via presets.<br><br><br>File-Based API<br>--------------<br=
><br>* The &quot;cmake-file-api(7)&quot; &quot;codemodel&quot; version 2 ob=
ject has been<br>=C2=A0 updated to 2.11.<br><br>* The &quot;cmake-file-api(=
7)&quot; &quot;codemodel&quot; version 2 &quot;target&quot; object&#39;s<br=
>=C2=A0 &quot;sources&quot; and &quot;interfaceSources&quot; objects gained=
 new &quot;fileSetIndexes&quot;<br>=C2=A0 fields to support sources belongi=
ng to multiple file sets. The<br>=C2=A0 &quot;fileSetIndex&quot; fields are=
 maintained for backwards compatibility<br>=C2=A0 only, and users are advis=
ed to port to the new fields.<br><br>* The &quot;cmake-file-api(7)&quot; &q=
uot;codemodel&quot; version 2 &quot;target&quot; object&#39;s<br>=C2=A0 &qu=
ot;sources&quot; object gained a new &quot;backtraces&quot; field to repres=
ent<br>=C2=A0 multiple command invocations which associate a single source =
for a<br>=C2=A0 given target with multiple file sets. The &quot;backtrace&q=
uot; field is<br>=C2=A0 maintained for backwards compatibility only, and us=
ers are advised<br>=C2=A0 to port to the new field.<br><br>* The &quot;cmak=
e-file-api(7)&quot; &quot;codemodel&quot; version 2 &quot;installers&quot; =
object&#39;s<br>=C2=A0 optional &quot;fileSetType&quot; field gained a new =
&quot;SOURCES&quot; value to<br>=C2=A0 incorporate the new &quot;SOURCES&qu=
ot; file set type in codemodel replies.<br><br><br>Instrumentation<br>-----=
----------<br><br>* The &quot;cmake-instrumentation(7)&quot; data version h=
as been updated to 1.1.<br><br>* &quot;cmake-instrumentation(7)&quot; gaine=
d a &quot;captureOutput&quot; option which<br>=C2=A0 collects the &quot;std=
out&quot; and &quot;stderr&quot; of instrumented commands.<br><br>* &quot;c=
make-instrumentation(7)&quot; gained a &quot;compileTrace&quot; option whic=
h<br>=C2=A0 records compiler-generated trace files (e.g., from Clang&#39;s =
&quot;-ftime-<br>=C2=A0 trace&quot; flag).<br><br><br>Generators<br>-------=
---<br><br>* The Ninja Generators now support generating a build target nam=
ed<br>=C2=A0 &quot;test_prep/&lt;test-name&gt;&quot; for each test added by=
 &quot;add_test()&quot;, which<br>=C2=A0 builds all dependencies for that t=
est. Build dependencies are<br>=C2=A0 registered for an executable target i=
nvoked by the test, targets<br>=C2=A0 referenced in generator expressions i=
n the test command, and<br>=C2=A0 explicit dependencies added using the new=
 &quot;BUILD_DEPENDS&quot; option.<br>=C2=A0 This behavior is enabled by th=
e new &quot;CMAKE_TEST_BUILD_DEPENDS&quot;<br>=C2=A0 variable. A &quot;test=
_prep/all&quot; target is also generated to depend on<br>=C2=A0 every &quot=
;test_prep/&lt;test-name&gt;&quot; target. Tests with names that are not<br=
>=C2=A0 valid target names are excluded from this behavior. If multiple<br>=
=C2=A0 tests in different directories share the same name, their<br>=C2=A0 =
dependencies are merged into one &quot;test_prep/&lt;test-name&gt;&quot; ta=
rget.<br><br><br>Languages<br>---------<br><br>* CUDA language level 23 (co=
rresponding to C++ 23) is now supported<br>=C2=A0 with NVCC 13.3 and above.=
<br><br><br>Compilers<br>---------<br><br>* C++ 20 named modules are now su=
pported with &quot;clang-cl&quot;. See &quot;cmake-<br>=C2=A0 cxxmodules(7)=
&quot;.<br><br>* The &quot;ibm-flang&quot; compiler is now supported with &=
quot;compiler id&quot;<br>=C2=A0 &quot;IBMFlang&quot;.<br><br>* The Pelles =
C toolchain is now supported with &quot;compiler id&quot;<br>=C2=A0 &quot;P=
ellesC&quot;.<br><br>=C2=A0 The &quot;ASM_POASM&quot; language was added to=
 support the Pelles Macro<br>=C2=A0 Assembler.<br><br>* The Open Watcom &qu=
ot;wlink&quot; linker is now identified with<br>=C2=A0 &quot;CMAKE_&lt;LANG=
&gt;_COMPILER_LINKER_ID&quot; &quot;OpenWatcom&quot;.<br><br>* The wild lin=
ker is now supported with<br>=C2=A0 &quot;CMAKE_&lt;LANG&gt;_COMPILER_LINKE=
R_ID&quot; &quot;WILD&quot;.<br><br><br>Command-Line<br>------------<br><br=
>* &quot;cmake(1)&quot; now supports &quot;--build &lt;dir&gt; --preset &lt=
;pre&gt;&quot; regardless of<br>=C2=A0 the current working directory.<br><b=
r>* The &quot;cmake -D&quot; command-line option now populates a default<br=
>=C2=A0 &quot;HELPSTRING&quot; for variables known to CMake.<br><br>* &quot=
;cmake --install&quot; now supports installing multiple components.<br><br>=
* &quot;cmake --install&quot; now accepts &quot;-j&lt;N&gt;&quot; in additi=
on to &quot;-j &lt;N&gt;&quot; for<br>=C2=A0 specifying the number of paral=
lel jobs.<br><br>* The &quot;cmake -E&quot; commands &quot;copy_if_differen=
t&quot;, &quot;copy_if_newer&quot;,<br>=C2=A0 &quot;copy_directory&quot;, &=
quot;copy_directory_if_different&quot;, and<br>=C2=A0 &quot;copy_directory_=
if_newer&quot; gained support for the &quot;-t&quot; argument.<br><br>* The=
 &quot;cmake -E tar&quot; command-line tool gained the &quot;--cmake-tar-<b=
r>=C2=A0 encoding&quot; flag to specify the pathname encoding used in archi=
ves.<br><br><br>Commands<br>--------<br><br>* The &quot;block()&quot; comma=
nd can now create a &quot;DIAGNOSTICS&quot; scope.<br><br>* The &quot;cmake=
_diagnostic()&quot; command was added to manipulate CMake&#39;s<br>=C2=A0 d=
iagnostic state.<br><br>* The &quot;cmake_parse_arguments()&quot; command g=
ained a new &quot;PARSE_ARGN&quot;<br>=C2=A0 signature that starts parsing =
after the last named argument of the<br>=C2=A0 calling function and works e=
xactly like &quot;PARSE_ARGV&quot; with &quot;&lt;N&gt;&quot;<br>=C2=A0 bei=
ng the number of parameters in the function definition.<br><br>* The &quot;=
discover_tests()&quot; command was added to support registering<br>=C2=A0 t=
ests discovered at test time by &quot;ctest(1)&quot;. It runs a user-provid=
ed<br>=C2=A0 discovery command, parses its output, and generates test names=
,<br>=C2=A0 arguments, and properties from regular-expression captures.<br>=
<br>* The &quot;execute_process()&quot; command gained &quot;ENVIRONMENT&qu=
ot; and<br>=C2=A0 &quot;ENVIRONMENT_MODIFICATION&quot; options to run child=
 processes with a<br>=C2=A0 modified environment.<br><br>* The &quot;file(A=
RCHIVE_CREATE)&quot; and &quot;file(ARCHIVE_EXTRACT)&quot; commands<br>=C2=
=A0 gained an &quot;ENCODING&quot; option to specify the encoding of the ar=
chive<br>=C2=A0 pathnames.=C2=A0 The default is now &quot;UTF-8&quot;. See =
policy &quot;CMP0213&quot;.<br><br>* The &quot;file(READ_SYMLINK)&quot; com=
mand gained a &quot;RESULT&quot; option to capture<br>=C2=A0 errors without=
 failing.<br><br>* The &quot;if()&quot; command gained a new &quot;DIAGNOST=
IC&quot; operator that evaluates<br>=C2=A0 to true if a given diagnostic ca=
tegory name is known to CMake.<br><br>* The &quot;include()&quot; command n=
ow has a &quot;NO_DIAGNOSTIC_SCOPE&quot; option.<br><br>* The &quot;list(FI=
LTER)&quot; command gained a new &quot;PREDICATE&quot; mode that<br>=C2=A0 =
invokes a user-defined &quot;function()&quot; to decide which elements are<=
br>=C2=A0 included or excluded, complementing the existing &quot;REGEX&quot=
; mode.<br><br>* The &quot;list(SORT)&quot; command gained a new &quot;COMP=
ARATOR&quot; keyword that<br>=C2=A0 invokes a user-defined &quot;function()=
&quot; to compare elements,<br>=C2=A0 complementing the built-in &quot;COMP=
ARE&quot; methods.<br><br>* The &quot;list(TRANSFORM)&quot; command gained =
a new &quot;APPLY&quot; action that<br>=C2=A0 invokes a user-defined &quot;=
function()&quot; for each element of the list,<br>=C2=A0 enabling arbitrary=
 per-element transformations.<br><br>* The &quot;list(TRANSFORM)&quot; comm=
and gained a new &quot;PREDICATE&quot; selector that<br>=C2=A0 invokes a us=
er-defined &quot;function()&quot; to decide which elements are<br>=C2=A0 tr=
ansformed.<br><br>* The &quot;string(JSON ... PARTIAL_EQUAL)&quot; command =
was added to compare<br>=C2=A0 two JSON values using *partial* equality.<br=
><br><br>File Sets<br>---------<br><br>* A &quot;SOURCES&quot; file set typ=
e was added to specify a target&#39;s source<br>=C2=A0 files via file sets.=
<br><br>* The &quot;CXX_SCAN_FOR_MODULES&quot; file set property was added =
to control<br>=C2=A0 whether a file set&#39;s sources are scanned for C++ m=
odules.<br><br>* The &quot;INDEPENDENT_FILES&quot; file set property was ad=
ded to specify that<br>=C2=A0 a file set&#39;s sources do not depend on any=
 generated files.<br><br>* The &quot;JOB_POOL_COMPILE&quot; file set proper=
ty was added to assign a file<br>=C2=A0 set&#39;s sources to a specific Nin=
ja job pool.<br><br>* The &quot;SCOPE&quot;, &quot;TYPE&quot;, &quot;BASE_D=
IRS&quot;, &quot;SOURCES&quot;, and &quot;INTERFACE_SOURCES&quot;<br>=C2=A0=
 file set properties were added to provide the declared details of a<br>=C2=
=A0 file set.<br><br>* The &quot;SKIP_LINTING&quot; file set property was a=
dded to exclude a file<br>=C2=A0 set&#39;s sources from target-wide code ch=
ecks.<br><br>* The &quot;SKIP_PRECOMPILE_HEADERS&quot; file set property wa=
s added to avoid<br>=C2=A0 using precompiled headers for a file set&#39;s s=
ources.<br><br>* The &quot;SKIP_UNITY_BUILD_INCLUSION&quot; file set proper=
ty was added to<br>=C2=A0 exclude a file set&#39;s sources from inclusion i=
n unity builds.<br><br><br>Variables<br>---------<br><br>* The &quot;CMAKE_=
INSTALL_DEFAULT_COMPONENT_NAME&quot; variable gained support<br>=C2=A0 for =
a special &quot;&lt;PROJECT_NAME&gt;&quot; placeholder value. It tells each=
<br>=C2=A0 &quot;install()&quot; invocation to take a default component nam=
e from the<br>=C2=A0 current &quot;PROJECT_NAME&quot; variable value.<br><b=
r><br>Environment Variables<br>---------------------<br><br>* The &quot;CMA=
KE_DISABLE_PRECOMPILE_HEADERS&quot; environment variable was<br>=C2=A0 adde=
d to disable precompiled headers by default.<br><br><br>Properties<br>-----=
-----<br><br>* The &quot;VERIFY_INTERFACE_HEADER_SETS&quot; and &quot;VERIF=
Y_PRIVATE_HEADER_SETS&quot;<br>=C2=A0 target properties now always create t=
he per-target verification<br>=C2=A0 target and the aggregate &quot;all_ver=
ify_interface_header_sets&quot;,<br>=C2=A0 &quot;all_verify_private_header_=
sets&quot;, and &quot;all_verify_header_sets&quot;<br>=C2=A0 targets when t=
he property is enabled, even if the target has no<br>=C2=A0 matching header=
 sets.<br><br>* The &quot;VERIFY_INTERFACE_HEADER_SETS&quot; and &quot;VERI=
FY_PRIVATE_HEADER_SETS&quot;<br>=C2=A0 target properties now support &quot;=
OBJC&quot; and &quot;OBJCXX&quot; languages in<br>=C2=A0 addition to &quot;=
C&quot; and &quot;CXX&quot;.<br><br>* The &quot;VS_SOLUTION_DEPLOY&quot; ta=
rget property is now implemented for<br>=C2=A0 targets created by &quot;add=
_custom_target()&quot;.<br><br><br>Modules<br>-------<br><br>* The &quot;CM=
akePackageConfigHelpers&quot; module&#39;s<br>=C2=A0 &quot;write_basic_pack=
age_version_file()&quot; command now supports<br>=C2=A0 &quot;SamePatchVers=
ion&quot;, &quot;SameFullVersion&quot;, and &quot;SemanticVersion&quot;<br>=
=C2=A0 compatibility modes. The older &quot;ExactVersion&quot; mode is now =
documented<br>=C2=A0 as deprecated in favor of the more explicit &quot;Same=
PatchVersion&quot; and<br>=C2=A0 &quot;SameFullVersion&quot; modes. The &qu=
ot;SemanticVersion&quot; mode treats &quot;0.y.z&quot;<br>=C2=A0 versions m=
ore strictly than &quot;1.y.z&quot; and later versions.<br><br>* The &quot;=
ExternalData&quot; module gained an &quot;ExternalData_LINK_MODE&quot;<br>=
=C2=A0 variable to select an ordered list of file materialization modes for=
<br>=C2=A0 hard links, symbolic links, and copies.<br><br>* The &quot;Exter=
nalData&quot; module gained an &quot;ExternalData_STATE_ROOT&quot;<br>=C2=
=A0 variable to store hash records outside &quot;ExternalData_BINARY_ROOT&q=
uot;.<br><br>* The &quot;ExternalProject&quot; and &quot;FetchContent&quot;=
 modules gained<br>=C2=A0 &quot;CMAKE_EP_GIT_CLONE_RETRY_COUNT&quot; and<br=
>=C2=A0 &quot;CMAKE_EP_GIT_CLONE_RETRY_DELAY&quot; variables to control &qu=
ot;git clone&quot;<br>=C2=A0 retries.<br><br>* The &quot;FindCUDAToolkit&qu=
ot; module now creates a &quot;CUDA::sanitizer&quot; target<br>=C2=A0 for t=
he compute-sanitizer library.<br><br>* The &quot;FindCUDAToolkit&quot; modu=
le now provides an imported target for<br>=C2=A0 &quot;cufilt&quot; in CUDA=
 11.4 and above.<br><br>* &quot;FindPython&quot; and &quot;FindPython3&quot=
; modules gained the support of the<br>=C2=A0 Stable ABI for Free Threaded =
Python (&quot;SABIT&quot;) as specified by **PEP<br>=C2=A0 803**.<br><br><b=
r>Generator Expressions<br>---------------------<br><br>* The &quot;TARGET_=
OBJECTS&quot; generator expression now has an optional<br>=C2=A0 &quot;SOUR=
CE_FILES:...&quot; argument, which can take one or more source files<br>=C2=
=A0 as arguments, and will filter its output to only include objects<br>=C2=
=A0 built from those source files.<br><br><br>Swift<br>-----<br><br>* The N=
inja Generators gained the &quot;Swift_SEPARATE_MODULE_EMISSION&quot;<br>=
=C2=A0 target property, initialized by the<br>=C2=A0 &quot;CMAKE_Swift_SEPA=
RATE_MODULE_EMISSION&quot; variable, to control whether<br>=C2=A0 importabl=
e Swift targets emit &quot;.swiftmodule&quot; from a dedicated build<br>=C2=
=A0 edge.=C2=A0 Policy &quot;CMP0215&quot; enables this by default.<br><br>=
* The default &quot;Swift_MODULE_NAME&quot; now replaces hyphens with<br>=
=C2=A0 underscores, since hyphens are not valid in Swift module<br>=C2=A0 i=
dentifiers.<br><br>* Swift targets now have a package name by default. See =
policy<br>=C2=A0 &quot;CMP0216&quot;.<br><br>* The &quot;Swift_PACKAGE_NAME=
&quot; target property was added to specify a<br>=C2=A0 Swift package name.=
<br><br>* Swift targets on Windows now support the &quot;$&lt;TARGET_PDB_FI=
LE:...&gt;&quot;<br>=C2=A0 family of generator expressions.<br><br><br>CTes=
t<br>-----<br><br>* &quot;ctest(1)&quot; gained support for forwarding extr=
a arguments to test<br>=C2=A0 executables using a &quot;--&quot; separator.=
<br><br>* &quot;ctest(1)&quot; gained a CoverageTool option in Dashboard Cl=
ient mode to<br>=C2=A0 configure tests for coverage collection by &quot;llv=
m-cov&quot;.<br><br>* The &quot;ctest_configure()&quot;, &quot;ctest_build(=
)&quot;, &quot;ctest_test()&quot;, and<br>=C2=A0 &quot;ctest_memcheck()&quo=
t; commands gained &quot;PRESET&quot; and &quot;PRESETS_FILE&quot;<br>=C2=
=A0 arguments to support using &quot;presets&quot; for their Dashboard Clie=
nt<br>=C2=A0 steps.<br><br>=C2=A0 The &quot;CTEST_CONFIGURE_PRESET&quot;, &=
quot;CTEST_BUILD_PRESET&quot;,<br>=C2=A0 &quot;CTEST_TEST_PRESET&quot;, &qu=
ot;CTEST_PRESET&quot;, and &quot;CTEST_PRESETS_FILE&quot;<br>=C2=A0 variabl=
es may be used to specify preset arguments to the above<br>=C2=A0 commands =
in a Dashboard Client script or on the **ctest** command<br>=C2=A0 line via=
 the &quot;-D&quot; option.<br><br>* &quot;ctest(1)&quot; gained a &quot;--=
source-dir&quot; option to specify the source<br>=C2=A0 directory.=C2=A0 Wh=
en combined with &quot;-T&quot; Configure, this allows CTest to<br>=C2=A0 p=
erform an initial configure step for an empty binary directory.<br><br>* &q=
uot;ctest(1)&quot; gained support for a &quot;CTEST_SUBMIT_PARTS&quot; vari=
able that<br>=C2=A0 restricts which parts are uploaded when operating in Da=
shboard<br>=C2=A0 Client mode.<br><br>* The &quot;ctest_update()&quot; comm=
and gained &quot;VERSION_ONLY&quot; and<br>=C2=A0 &quot;VERSION_OVERRIDE&qu=
ot; options to select or report a source revision<br>=C2=A0 without requiri=
ng the corresponding &quot;CTEST_UPDATE_VERSION_ONLY&quot; or<br>=C2=A0 &qu=
ot;CTEST_UPDATE_VERSION_OVERRIDE&quot; dashboard script variables.<br><br><=
br>CPack<br>-----<br><br>* The &quot;CPack Archive Generator&quot; gained t=
he &quot;CPACK_ARCHIVE_ENCODING&quot;<br>=C2=A0 variable to specify the pat=
hname encoding used in package archives.<br><br>* The &quot;CPack NSIS Gene=
rator&quot; gained a new variable<br>=C2=A0 &quot;CPACK_NSIS_IGNORE_COMPONE=
NTS_PAGE&quot; to ignore the component<br>=C2=A0 selection page in the inst=
aller.<br><br>* The &quot;CPACK_RPM_SPEC_MORE_DEFINE&quot; variable now sup=
ports a list of<br>=C2=A0 definitions.<br><br><br>Deprecated and Removed Fe=
atures<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>* The &quot;-W[no-][error=3D]dev&quot=
; command-line options are deprecated.=C2=A0 The<br>=C2=A0 new spelling is =
&quot;-W[no-][error=3D]author&quot;.<br><br>* The &quot;--warn-uninitialize=
d&quot; command-line option is deprecated.=C2=A0 The<br>=C2=A0 new spelling=
 is &quot;-Wuninitialized&quot;.<br><br>* The &quot;--no-warn-unused-cli&qu=
ot; command-line option is deprecated.=C2=A0 The<br>=C2=A0 new spelling is =
&quot;-Wno-unused-cli&quot;.<br><br>* The &quot;CMAKE_WARN_DEPRECATED&quot;=
 and &quot;CMAKE_ERROR_DEPRECATED&quot; variables<br>=C2=A0 are deprecated.=
=C2=A0 The new &quot;cmake_diagnostic()&quot; command should be used<br>=C2=
=A0 instead.<br><br>* The &quot;MACROS&quot; directory property does not ex=
ist anymore. See policy<br>=C2=A0 &quot;CMP0217&quot;.<br><br><br>Other Cha=
nges<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>* A file may belong =
to at most one non-&quot;HEADERS&quot; file set in a target.<br>=C2=A0 See =
policy &quot;CMP0211&quot;.<br><br>* &quot;macro()&quot; invocations now pr=
eserve backslashes in arguments. See<br>=C2=A0 policy &quot;CMP0219&quot;.<=
br><br>* &quot;variable_watch()&quot; callback command arguments preserve b=
ackslashes.<br>=C2=A0 See policy &quot;CMP0219&quot;.<br><br>* &quot;ctest(=
1)&quot; now exits with non-zero if invoked with no arguments and<br>=C2=A0=
 no test input file exists.<br><br>* Test drivers generated by the &quot;cr=
eate_test_sourcelist()&quot; command now<br>=C2=A0 support the &quot;-N&quo=
t; option to list all tests, one per line.=C2=A0 This is<br>=C2=A0 useful i=
n combination with the new &quot;discover_tests()&quot; command.<br><br>* N=
ames of executables given to the &quot;DEPENDS&quot; argument of<br>=C2=A0 =
&quot;add_custom_command()&quot; no longer have &quot;.exe&quot; suffixes s=
tripped to<br>=C2=A0 establish target-level dependencies. See policy &quot;=
CMP0212&quot;.<br><br>* Targets which provide C++ modules may now be consum=
ed by targets<br>=C2=A0 with different &quot;compile features&quot; and &qu=
ot;options&quot; than the provider.<br><br><br>----------------------------=
------------------------------------------------<br>Changes made since CMak=
e 4.4.0-rc2:<br><br>Aiden Woodruff (2):<br>=C2=A0 Help/tutorial: fix minor =
typos<br>=C2=A0 Help/tutorial: reword Installation Commands intro<br><br>Be=
n Boeckel (1):<br>=C2=A0 CMakeDetermineCompilerABI: require more variables =
to skip checks<br><br>Brad King (5):<br>=C2=A0 FindRuby: Fix vendor directo=
ry discovery<br>=C2=A0 Sunway: Detect sw_64 architecture more consistently<=
br>=C2=A0 Fortran: Detect pointer size on PowerPC archs with PGI<br>=C2=A0 =
Fortran: Detect pointer size on Intel archs with Oracle Studio 12.4 and bel=
ow<br>=C2=A0 CMake 4.4.0-rc3<br><br>Carlo Bramini (1):<br>=C2=A0 FindOpenGL=
: Fix OpenGL and GLX result variables with legacy GL<br><br>Daksh Mamodiya =
(1):<br>=C2=A0 instrumentation: Fix stale version references in documentati=
on<br><br>Marc Chevrier (1): <br>=C2=A0 Some target properties for SOURCE f=
ile sets are read-only.<br><br>Matthew Woehlke (1):<br>=C2=A0 Check*: Resto=
re toleration of `;-W...` in CMAKE_REQUIRED_FLAGS<br><br>Robert Maynard (3)=
:<br>=C2=A0 FindCUDAToolkit: Detect target processor even when not cross-co=
mpiling<br>=C2=A0 FindCUDAToolkit: Add support for windows arm64<br>=C2=A0 =
CUDA: Add support for Clang on Windows ARM64<br><br>Vito Gamberini (2):<br>=
=C2=A0 c++modules: single import std target<br>=C2=A0 c++modules: Copy prop=
s from BMI consumers more correctly<br><br></div>

--00000000000092e9880655930241--