Xmake 采用 .mpp 作为默认的模块扩展名,同时也支持 .ixx、.cppm、.mxx 等。已完整支持 gcc11/clang/msvc 的 C++20 Modules 构建,并能自动分析模块间依赖,实现最大化并行编译。
在模块中导出类:
使用模块分区(Module Partitions):
创建带有模块的动态库:
Target 之间的模块依赖:
使用模块私有片段(Private Module Fragment)隐藏实现细节:
分离模块接口和实现(Module Implementation Unit):
使用 export import 聚合子模块:
v2.7.1 起支持 Headerunits,可在模块中引入 STL 和用户头文件模块。通常需至少有一个 .mpp 文件才会启用 modules 编译,但也可通过配置强制启用:
如何将 STL 或自定义头文件作为 headerunit 引入模块,见下面的示例:
支持 C++23 标准库模块(stdmodules):
定义和分发 C++ Modules 包:
通过 add_requires("foo") 快速集成:
更多官方示例见:C++ Modules 示例集