Commit Graph

2 Commits

Author SHA1 Message Date
Vito Gamberini
ce309f8885 cmDyndepCollation: Cxx module manifest format
Support the module manifest format added in !11422 as an output format
of dyndep collation for exports. This is necessary for CPS support of
modules, as CPS uses module manifests to describe C++20 modules.

Additionally, adds some CMake-vendor fields to the module manifest to
support compile-options and compile-features on module sources.
2026-01-22 00:59:43 -05:00
Vito Gamberini
fa10dc6c22 Experimental/CXXModules: Implement EcoStd Module Metadata parser
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.
2025-11-18 11:39:59 -05:00