Adds a parser and serializer for the EcoStd Module Metadata format
RFC: https://github.com/ecostd/rfcs/pull/3
This adapts the existing experimental support for import std; to use
the new parser. The CMAKE_CXX_STDLIB_MODULES_JSON is now the canonical
variable for controlling how CMake discovers the stdlib module metadata,
and is used directly by compiler detection.
Toolchains can still override the __CMAKE::CXX## targets if they wish,
either in conjunction with CMAKE_CXX_STDLIB_MODULE_JSON or not. It is
possible to disable automatic detection of
CMAKE_CXX_STDLIB_MODULE_JSON by setting it to the empty string.
When available, the CMAKE_CXX_STDLIB_MODULE_JSON will be used to create
all requested C++ stdlibs which do not already have targets.
Extend commit e6aa7742b0 (VS: Generate .slnx files for VS 2026,
2025-09-17, v4.2.0-rc1~151^2) to add the `Type=` attribute on SLNX
`<Project>` elements.
Fixes: #27392
`cmake --build <dir>` and `cmake --build --preset <preset>` are currently
mutually exclusive options. This commit allows `<dir>` to override the
build directory specified in a preset. This change allows the requirement
for each build preset to have a configure preset to be dropped in a future
commit.
Closes: #27384
fd7e305097 GenEx: Add $<STRING> generator expression
7564cbae12 GenEx: add new expressions for string comparisons
dab5e6ebb1 introduce cm::CMakeString class as helper for string() command
34c0c7754f cmString: add methods append and insert
ab60f1a010 Extend usage for cm::string_view for more flexibility
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11382
At the time of commit e6aa7742b0 (VS: Generate .slnx files for VS 2026,
2025-09-17, v4.2.0-rc1~151^2), the VS 18 Insiders edition did not offer
support for specifying a default startup project in `.slnx` files.
This has since been added, so use it.
Fixes: #27387
Extend commit 7f15c99851 (CUDA: forward unknown flags to host compiler
when possible, 2019-11-29, v3.17.0-rc1~326^2~1) to work in VS too.
Fixes: #27210
In commit b1b3602cda (FASTBuild: remove non-existent autogen byproducts,
2025-11-10) we added an unnecessary nullptr check on a pointer we know
to be non-nullptr. Since then, `clang-analyzer` takes that check as a
hint that the pointer might be nullptr, and has reported missing nullptr
checks elsewhere.
322bf67a86 Merge branch 'backport-ci-debian-13' into ci-debian-13
8832f78dd6 IWYU: Update for Debian 13 CI job
f49b0e6759 IWYU: Update for Debian 13 CI job
3653b3e95e Merge branch 'backport-ci-debian-13' into ci-debian-13
1445a8e7db ci: use Debian 13 images and environments
9eedf6c1a9 ci: Update base images to Debian 13
36bdb7b2de ci: Update to TIClang 4.0.4
48f091a166 ci: Update debian12-ninja job to use Swift 6.2.1
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11412