Skip to content

cmTarget: add support for C++ module fileset types

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).

Merge request reports