summaryrefslogtreecommitdiffstats
path: root/Help/dev/experimental.rst
Commit message (Collapse)AuthorAgeFilesLines
* Experimental: Update the Instrumentation UUIDMartin Duffy2025-09-231-4/+4
| | | | | | Update experimental UUID for instrumentation after commit 4683db44a1 (instrumentation: Write index files to data/index/ subdirectory, 2025-09-19) updated the location of index files.
* Experimental: Update the Instrumentation UUIDTyler Yankee2025-09-041-4/+4
| | | | | | Update experimental UUID for instrumentation after commit fbb5b47fbf (instrumentation: Rename postTest and postInstall hooks, 2025-09-04) broke old hook names.
* Experimental: Update the Instrumentation UUIDTyler Yankee2025-09-031-4/+4
| | | | | | Update experimental UUID for instrumentation after commit bf52fbfbc4 (instrumentation: Add Google trace output, 2025-08-28) introduced a significant feature.
* Experimental: Update the Instrumentation UUIDMartin Duffy2025-07-151-4/+4
| | | | | | Update experimental UUID for instrumentation after commit afa94bae1e (instrumentation: Rename queries field to options, 2025-07-08) broke compatibility for old queries.
* experimental/CXXModules: recycle the UUIDBen Boeckel2025-04-301-1/+1
| | | | Now that `clang -stdlib=libstdc++` is supported.
* cmExperimental: recycle build database uuidBen Boeckel2025-03-031-1/+1
|
* ctest: Include cmake instrumentation data in XML filesZack Galbreath2025-02-151-1/+7
|
* Merge topic 'instrumentation'Brad King2025-01-161-0/+14
|\ | | | | | | | | | | | | | | | | 097d4fd1b5 instrumentation: Collect and record project build system metrics 8a3c195188 Tests/RunCMake: Add RunCMake_CHECK_ONLY Option Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !9791
| * instrumentation: Collect and record project build system metricsMartin Duffy2025-01-151-0/+14
| | | | | | | | | | | | Add a feature for collecting build instrumentation for CMake projects. Issue: #26099
* | Experimental: recycle the `import std` UUIDBen Boeckel2025-01-081-1/+1
|/ | | | Now that GCC is supported, update the feature UUID.
* Help: Describe CPS support in find_packageMatthew Woehlke2024-12-131-0/+18
| | | | | | | Update find_package documentation to describe (the current state of) support for Common Package Specification packages. Make some general improvements to the same while we're at it. Add documentation blurb for the experimental flag that enables CPS support.
* cmExperimental: gate build database support behind a flagBen Boeckel2024-09-031-0/+21
| | | | | Given that the feature currently only supports C++ sources and is not formally accepted by ISO yet, gate it behind a flag.
* export: Add initial CPS supportMatthew Woehlke2024-08-141-0/+20
| | | | | | | | | | | | | | | | | Add initial support for exporting (install only, for now) Common Package Specification (https://cps-org.github.io/cps/) format package descriptions. This has some limitations, such as not supporting generator expressions (as these cannot be portably exported), and only partially supporting transitive dependencies, but should be usable for at least some simple cases. (Actually, $<LINK_ONLY> is theoretically supportable, but is not yet implemented.) This still needs tests; these will be added in the next commit. Other potential improvements include support for language-specific compile definitions and inferring some package properties from project properties. Additionally, there is no module support yet; this is partly pending on having a tool agnostic format for providing the necessary information.
* importstd: clarify when the experimental UUID must be availableBen Boeckel2024-05-151-1/+2
| | | | Fixes: #25980
* Experimental: add an experimental feature gate for `import std`Ben Boeckel2024-04-121-0/+21
|
* EXPORT_PACKAGE_DEPENDENCIES: Add experimental feature gateBrad King2024-03-121-0/+25
| | | | | | | Some design concerns have been raised after trying the 3.29 release candidates. Avoid committing to a stable public interface for now. Issue: #25767
* cmExperimental: remove the flag for C++ modulesBen Boeckel2023-10-021-130/+0
| | | | | | | All the major compilers now have scheduled releases with support for scanning, so remove the experimental gate. Fixes: #18355
* cmExperimental: recycle the C++ modules API UUIDBen Boeckel2023-08-171-1/+1
| | | | Supporting modules on IMPORTED targets is worth an update.
* CXXModules: add a variable for BMI-only compilationBen Boeckel2023-08-171-0/+6
| | | | | This will be required when dealing with imported targets which contain modules.
* Help/experimental: fix UUID documentationBen Boeckel2023-08-071-1/+1
| | | | | This was missed in be53c75852 (cmExperimental: recycle the C++ modules API UUID, 2023-07-21) from !8639.
* cmExperimental: refresh the C++ modules UUIDBen Boeckel2023-07-131-1/+1
| | | | | The transitive support for Clang is a change in support for the ecosystem.
* cxxmodules: remove `CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variableBen Boeckel2023-06-011-7/+0
| | | | It is now subsumed by the UUID setting completely.
* cxxmodules: update the experimental UUIDBen Boeckel2023-05-311-1/+1
| | | | | Syntactic support for C++ header units has been removed, so a new UUID is warranted.
* Clang: Record Clang 16.0 flags for our experimental C++ modules supportBrad King2023-03-031-11/+30
| | | | LLVM/Clang 16.0 now contains official support for what CMake needs.
* cxxmodules: support new round of Clang patchesBen Boeckel2022-12-151-1/+1
| | | | | | | | | | These patches now support the `-MF` output, so remove the `none` support added just for the old patchset which did not use it. Also update the flag name to `-fmodule-output=`. Due to the new Clang module mapper flag, use a new experimental support UUID as well.
* Merge topic 'cxx-module-map-clang'Brad King2022-12-061-3/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 2c558cfd1b gitlab-ci: add CI jobs for Clang with C++20 modules abd42e9cfc ci: add a Docker container for clang support of C++20 modules 51093f3002 Clang-FindBinUtils: also find `clang-scan-deps` 0b333de923 ci: add C++ module rules file for Clang 21b9fb1e8c cmCxxModuleMapper: support the `clang` module map format 9c66224668 cmNinjaTargetGenerator: skip setting `depfile` for `none` scantypes 9123a0991f cmNinjaTargetGenerator: use `.clear()` to empty out some strings Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Cristian Adam <cristian.adam@gmail.com> Merge-request: !7978
| * cmCxxModuleMapper: support the `clang` module map formatBen Boeckel2022-12-021-3/+6
| |
* | cmExperimental: recycle C++20 module support UUIDBen Boeckel2022-12-011-1/+1
| | | | | | | | Visual Studio support warrants a new ID.
* | Help/dev/experimental: document C++20 module limitationsBen Boeckel2022-12-011-0/+25
|/
* MSVC: don't opt into dyndep supportBen Boeckel2022-11-281-1/+2
| | | | | | | Instead, just set the variables for how scanning works since that is part of the compiler mechanisms. Fixes: #24198
* Help/dev/experimental: document the `msvc` module map formatBen Boeckel2022-11-211-2/+7
|
* msvc: bless MSVC 19.34 support for C++ modules as experimentalBen Boeckel2022-11-111-0/+4
| | | | Visual Studio 17.4 now contains official support for what CMake needs.
* cmScanDepFormat: support P1689R5Ben Boeckel2022-07-261-2/+2
| | | | This adds the `is-interface` key on provides fields.
* cmExperimental: update `CXX_MODULE_CMAKE_API` UUIDBen Boeckel2022-07-061-1/+1
| | | | The set of features available has been expanded, so update the UUID.
* cmTarget: add support for C++ module fileset typesBen Boeckel2022-06-161-5/+0
| | | | | | | | | | | | | | | C++ modules have two variants which are of importance to CMake: - `CXX_MODULES`: interface modules (those using `export module M;`, `export module M:part;`, or `module M:internal_part;`) - `CXX_MODULE_HEADER_UNITS`: importable header units Creating C++ modules or partitions are *not* supported in any other source listing. This is because the source files must be installed (so their scope matters), but not part of usage requirements (what it means for a module source to be injected into a consumer is not clear at this moment). Due to the way `FILE_SET` works with scopes, they are a perfect fit as long as `INTERFACE` is not allowed (which it is not).
* cmExperimental: add an experimental feature to handle C++ modulesBen Boeckel2022-06-141-0/+17
|
* cmNinjaTargetGenerator: support msvc-style deps discovery for scanningBen Boeckel2022-04-271-1/+3
|
* cmNinjaTargetGenerator: add flags for scanning based on the fileset typeBen Boeckel2022-04-271-0/+5
|
* Help/dev/experimental: Link to published P1689R4Brad King2021-06-281-8/+2
|
* cmScanDepFormat: P1689R4: Make work-directory optionalBen Boeckel2021-06-091-0/+1
|
* cmScanDepFormat: P1689R4: Factor out primary-output fieldBen Boeckel2021-06-091-0/+1
|
* cmScanDepFormat: P1689R4: Flatten future-compile members into parentBen Boeckel2021-06-091-0/+1
|
* cmScanDepFormat: Drop unused "outputs", "inputs", and "depends" fieldsBrad King2021-05-131-1/+4
| | | | | | | These fields are specified by our `P1689r3` paper, but are not actually needed. The dependencies of the scanning results themselves can be captured via normal depfile logic. Avoid saving this possibly-large information in the scanning results. It is not needed by later steps.
* ninja: add experimental infrastructure to generate gcc-format modmap filesBen Boeckel2021-01-051-0/+20
|
* ninja: Add experimental infrastructure for C++20 module dependency scanningBrad King2021-01-051-1/+41
| | | | | | | | | | | | | | | | | Optionally enable this infrastructure through an undocumented `CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variable. Currently this is experimental and intended for use by compiler writers to implement their scanning tools. Warn as such when the feature is activated. Later when compilers provide the needed scanning tools we can enable this variable from our corresponding compiler information modules. It is never meant to be set by project code. When enabled, generate a build graph similar to what we use for Fortran module dependencies. There are some differences needed because we can scan dependencies without explicit preprocessing, and can directly compile the original source afterward. Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
* Help/dev: Add a CMake Experimental Features GuideBrad King2020-11-241-0/+10
Initialize it with placeholder content. This document will serve to contain documentation for experimental features that are under development and not yet included in official documentation.