summaryrefslogtreecommitdiffstats
path: root/Help/command/export.rst
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2022-04-18 16:26:49 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2022-07-06 14:15:23 (GMT)
commitfe44cbe9e7849b3c555fbb29c83a54414c0e8629 (patch)
treeb766cd660b6b2aa46540ea9c189800e2e8eb5101 /Help/command/export.rst
parent29118091dc323d3b48b58155ac0e30b47ca60fb6 (diff)
downloadCMake-fe44cbe9e7849b3c555fbb29c83a54414c0e8629.zip
CMake-fe44cbe9e7849b3c555fbb29c83a54414c0e8629.tar.gz
CMake-fe44cbe9e7849b3c555fbb29c83a54414c0e8629.tar.bz2
exports: support `CXX_MODULES_DIRECTORY`
This directory will be used to store build-discovered information about targets such as the modules provided by the files in the relevant `FILE_SET` types. A directory is used because basing the name on a `<FILE_NAME>-*.cmake` pattern makes it end up being globbed in the configuration-dependent information mechanism. Since old modules and targets may be around, unconditionally including them may refer to targets that do not actually exist.
Diffstat (limited to 'Help/command/export.rst')
-rw-r--r--Help/command/export.rst16
1 files changed, 14 insertions, 2 deletions
diff --git a/Help/command/export.rst b/Help/command/export.rst
index dc69645..6785b05 100644
--- a/Help/command/export.rst
+++ b/Help/command/export.rst
@@ -25,7 +25,8 @@ Exporting Targets
.. code-block:: cmake
export(TARGETS <target>... [NAMESPACE <namespace>]
- [APPEND] FILE <filename> [EXPORT_LINK_INTERFACE_LIBRARIES])
+ [APPEND] FILE <filename> [EXPORT_LINK_INTERFACE_LIBRARIES]
+ [CXX_MODULES_DIRECTORY <directory>])
Creates a file ``<filename>`` that may be included by outside projects to
import targets named by ``<target>...`` from the current project's build tree.
@@ -52,6 +53,16 @@ The options are:
in the export, even when policy :policy:`CMP0022` is NEW. This is useful
to support consumers using CMake versions older than 2.8.12.
+``CXX_MODULES_DIRECTORY <directory>``
+
+.. note ::
+
+ Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
+
+ Export C++ module properties to files under the given directory. Each file
+ will be named according to the target's export name (without any namespace).
+ These files will automatically be included from the export file.
+
This signature requires all targets to be listed explicitly. If a library
target is included in the export, but a target to which it links is not
included, the behavior is unspecified. See the `export(EXPORT)`_ signature
@@ -95,7 +106,8 @@ Exporting Targets matching install(EXPORT)
.. code-block:: cmake
- export(EXPORT <export-name> [NAMESPACE <namespace>] [FILE <filename>])
+ export(EXPORT <export-name> [NAMESPACE <namespace>] [FILE <filename>]
+ [CXX_MODULES_DIRECTORY <directory>])
Creates a file ``<filename>`` that may be included by outside projects to
import targets from the current project's build tree. This is the same