cmake_minimum_required(VERSION 3.22) # 确保使用支持 C++ 模块的版本 project(MyCppModuleProject LANGUAGES CXX) # 设置 C++ 标准为 C++20 或 C++23 set(CMAKE_CXX_STANDARD 23) # 或者 23 set(CMAKE_CXX_STANDARD_REQUIRED ON) # 启用实验性 C++ 模块支持 set(CMAKE_EXPERIMENTAL_CXX_MODULES ON) set(...
这个版本我们对 C++20 Modules 的实现进行了重构和改进,改进了模块文件的依赖图解析,新增了对 STL 和 User HeaderUnits 的支持,同时让 CMakelists/compile_commands 生成器也支持了 C++ Modules。 另外,我们新增了一个 xmake watch 插件,可以实时监控当前工程文件更新,自动触发增量构建,或者运行一些自定义的命令。
早期,xmake 试验性支持过 C++ Modules TS,但是那个时候,gcc 还不能很好的支持,并且模块间的依赖也不支持。 最近,我们对 xmake 做了大量改进,已经完整支持 gcc-11/clang/msvc 的 C++20 Modules 构建支持,并且能够自动分析模块间的依赖关系,实现最大化并行编译。 同时,对新版本的 clang/msvc 也做了更好地处理。
这个版本我们对 C++20 Modules 的实现进行了重构和改进,改进了模块文件的依赖图解析,新增了对 STL 和 User HeaderUnits 的支持,同时让 CMakelists/compile_commands 生成器也支持了 C++ Modules。 Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运...
add_files("src/*.c", "src/*.cpp") 1. 2. 3. 4. 5. 处理全局变量,还有全局的重名宏定义,函数什么的,都可以采用这种方式来避免冲突。 C++20 Modules xmake 采用 .mpp 作为默认的模块扩展名,但是也同时支持 .ixx, .cppm, .mxx 等扩展...
这个版本我们对 C++20 Modules 的实现进行了重构和改进,改进了模块文件的依赖图解析,新增了对 STL 和 User HeaderUnits 的支持,同时让 CMakelists/compile_commands 生成器也支持了 C++ Modules。 另外,我们新增了一个xmake watch插件,可以实时监控当前工程文件更新,自动触发增量构建,或者运行一些自定义的命令。
这个版本我们对 C++20 Modules 的实现进行了重构和改进,改进了模块文件的依赖图解析,新增了对 STL 和 User HeaderUnits 的支持,同时让 CMakelists/compile_commands 生成器也支持了 C++ Modules。 另外,我们新增了一个xmake watch插件,可以实时监控当前工程文件更新,自动触发增量构建,或者运行一些自定义的命令。
Xmake v2.7.1 发布:增强的C++ Modules支持Xmake,作为一款基于Lua的轻量级构建工具,因其简洁直观的配置语法和跨平台特性,深受开发者喜爱。它支持直接编译项目和生成工程文件,内置包管理系统便于管理C/C++依赖。新版本特别注重C++20 Modules的优化。在v2.7.1中,C++20 Modules的实现得到了重构,提升了...
跟bin2c 规则的使用方式类似,完整例子见:glsl2spv example 改进C++ Modules 构建 上个版本,我们重构了 C++20 Modules 构建支持,而在这个版本中,我们继续对它做了改进。 对于msvc 编译器,我们已经能够在模块中导入 std 标准库模块,另外,我们修复了多个 target 之间存在依赖时,模块导入编译失败的问题。
跟bin2c 規則的使用方式類似,完整例子見:glsl2spv example 改進C++ Modules 構建 上個版本,我們重構了 C++20 Modules 構建支援,而在這個版本中,我們繼續對它做了改進。 對於msvc 編譯器,我們已經能夠在模組中匯入 std 標準庫模組,另外,我們修復了多個 target 之間存在依賴時,模組匯入編譯失敗的問題。