summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2022-11-21 18:36:47 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2023-08-17 18:42:54 (GMT)
commit80ef50a1919d62acb82a6423c40042a94edeac60 (patch)
tree442684aaaf9c20f1deb0f123359c23d6c18d19fe /Help
parent80d65443982ca1b2c98c84ae86e2bfccdbdd7678 (diff)
downloadCMake-80ef50a1919d62acb82a6423c40042a94edeac60.zip
CMake-80ef50a1919d62acb82a6423c40042a94edeac60.tar.gz
CMake-80ef50a1919d62acb82a6423c40042a94edeac60.tar.bz2
CXXModules: add a variable for BMI-only compilation
This will be required when dealing with imported targets which contain modules.
Diffstat (limited to 'Help')
-rw-r--r--Help/dev/experimental.rst6
1 files changed, 6 insertions, 0 deletions
diff --git a/Help/dev/experimental.rst b/Help/dev/experimental.rst
index 5bfbf8d..89ebb3f 100644
--- a/Help/dev/experimental.rst
+++ b/Help/dev/experimental.rst
@@ -99,6 +99,10 @@ dependencies to the file specified by the ``<DYNDEP_FILE>`` placeholder. The
``CMAKE_EXPERIMENTAL_CXX_SCANDEP_DEPFILE_FORMAT`` file may be set to ``msvc``
for scandep rules which use ``msvc``-style dependency reporting.
+In order to support ``IMPORTED`` targets with associated C++20 module sources,
+the ``CMAKE_EXPERIMENTAL_CXX_MODULE_BMI_ONLY_FLAG`` variable must be provided
+to have the compiler only output a BMI instead of a BMI and an object file.
+
The module dependencies should be written in the format described
by the `P1689r5`_ paper.
@@ -113,6 +117,8 @@ For compilers that generate module maps, tell CMake as follows:
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc")
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG
"${compiler_flags_for_module_map} -fmodule-mapper=<MODULE_MAP_FILE>")
+ set(CMAKE_EXPERIMENTAL_CXX_MODULE_BMI_ONLY_FLAG
+ "-fmodule-only")
Currently, the only supported formats are, ``clang``, ``gcc``, and ``msvc``.
The ``gcc`` format is described in the GCC documentation, but the relevant