The following is a guide to CMake experimental features that are under development and not yet included in official documentation. See documentation on CMake Development for more information.
Features are gated behind CMAKE_EXPERIMENTAL_ variables which must be set
to specific values in order to enable their gated behaviors. Note that the
specific values will change over time to reinforce their experimental nature.
When used, a warning will be generated to indicate that an experimental
feature is in use and that the affected behavior in the project is not part of
CMake's stability guarantees.
In order to activate support for this experimental feature, set
- variable
CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIESto - value
1942b4fa-b2c5-4546-9385-83f254070067.
This UUID may change in future versions of CMake. Be sure to use the value documented here by the source tree of the version of CMake with which you are experimenting.
When activated, this experimental feature provides the following:
- The
install(EXPORT)andexport(EXPORT)commands have experimentalEXPORT_PACKAGE_DEPENDENCIESarguments to generatefind_dependencycalls automatically. - Details of the calls may be configured using the
export(SETUP)command'sPACKAGE_DEPENDENCYargument. - The package name associated with specific targets may be specified
using the
CMAKE_EXPORT_FIND_PACKAGE_NAMEvariable and/or
EXPORT_FIND_PACKAGE_NAME target property.
In order to activate support for this experimental feature, set
- variable
CMAKE_EXPERIMENTAL_MAPPED_PACKAGE_INFOto - value
ababa1b5-7099-495f-a9cd-e22d38f274f2.
These UUIDs may change in future versions of CMake. Be sure to use the values documented here by the source tree of the version of CMake with which you are experimenting.
When activated, this experimental feature provides the following:
- Setting
CMAKE_INSTALL_EXPORTS_AS_PACKAGE_INFOenables generation of package information in the Common Package Specification format via theinstall(EXPORT)command.
In order to activate support for import std in C++23 and newer targets,
set
- variable
CMAKE_EXPERIMENTAL_CXX_IMPORT_STDto - value
451f2fe2-a8a2-47c3-bc32-94786d8fc91b.
This UUID may change in future versions of CMake. Be sure to use the value
documented here by the source tree of the version of CMake with which you are
experimenting. It must be set before the CXX toolchain is discovered by
CMake, usually as part of a project() call.
When activated, this experimental feature provides the following:
- The
CXX_MODULE_STDtarget property and its initializing variableCMAKE_CXX_MODULE_STD. - Targets with the property set to a true value and at least
cxx_std_23may useimport std;in any scanned C++ source file.
In order to activate support for exporting build databases, set
- variable
CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASEto - value
73194a1d-c0b5-41b9-9190-a4512925e192.
This UUID may change in future versions of CMake. Be sure to use the value documented here by the source tree of the version of CMake with which you are experimenting.
When activated, this experimental feature provides the following:
- The :prop_tgt:`EXPORT_BUILD_DATABASE` target property and its initializing variable :variable:`CMAKE_EXPORT_BUILD_DATABASE` and environment variable :envvar:`CMAKE_EXPORT_BUILD_DATABASE`.
- Targets with the property set to a true value will have their C++ build information exported to the build database.
Software Bill Of Materials |SBOM|
In order to activate support for the :command:`install(SBOM)` command, set
- variable
CMAKE_EXPERIMENTAL_GENERATE_SBOMto - value
ca494ed3-b261-4205-a01f-603c95e4cae0.
This UUID may change in future versions of CMake. Be sure to use the value documented here by the source tree of the version of CMake with which you are experimenting.
When activated, this experimental feature provides the following:
- The experimental
export(SBOM)andinstall(SBOM)commands are available to generate a Software Bill of Materials or "SBOM" for the current project. See :command:`install(SBOM)` for a complete overview of the command.
In order to activate support for Rust, set
- variable
CMAKE_EXPERIMENTAL_RUSTto - value
efaed83b-d73a-48af-999a-bd0a6172c313.
This UUID may change in future versions of CMake. Be sure to use the value documented here by the source tree of the version of CMake with which you are experimenting.