Xmake 2.7.4 发布,更好的 C++ Modules 支持


xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。

虽然,简单易用是 xmake 的一大特色,但 xmake 的功能也是非常强大的,既能够像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。

本次更新 2.7.4 版本。

新特性

  • #3049: 添加 xmake format 插件
  • 添加 plugin.compile_commands.autoupdate 规则
  • #3172: 添加 xmake.sh
  • #3168: 为 msvc 添加 C++23 标准模块支持

改进

  • #3056: 改进 Zig 支持
  • #3060: 改进支持 msys2 的环境探测
  • #3071: 为 llvm/clang 工具链支持 rc 编译
  • #3122: 改进 c++20 模块依赖图的源码分析,支持预处理
  • #3125: 增加私有 C++20 模块的编译支持
  • #3133: 增加 internal partitions 模块支持
  • #3146: 添加默认包组件支持
  • #3192: 为 auto complete 增加 json 输出支持

Bugs 修复

  • 修复 requires-lock 问题
  • #3065: 修复部分依赖包没有被安装的问题
  • #3082: 修复 build.ninja 生成器
  • #3092: 修复 xrepo add-repo 添加失败逻辑
  • #3013: 修复支持 windows UNC 路径
  • #2902: 修复文件被其他子进程占用问题
  • #3074: 修复 CMakelists 生成器链接参数设置不对问题
  • #3141: 修复 C++ 模块的导入顺序
  • 修复 tools/xmake 包安装构建目录
  • #3159: 为 CLion 修复 compile_commands

 


相關推薦

2023-01-29

谢 Arthapz 在新版本中继续帮忙改进了 xmake 对 C++ Modules 的支持。 现在,我们可以将 C++ Modules 做成包进行分发,然后在其他项目中进行快速集成和复用。 它是基于 p2473r1 中对模块分发的设计草案做的一个原型实现

2022-11-09

r_headerunit\src\main.cpp", "ProvidedModule": "", "Includes": [], "ImportedModules": [ { "Name": "hello", "BMI": "c:\users\ruki\desktop\user_headerunit\src\hello.ifc" } ], "ImportedHeaderUnits": [ { "Header": "c:\users\ruki\desktop\user_headerunit\src\header.hpp", "BMI": "c:\users\ruki\desktop\user_

2024-04-24

实现 shared 的 native 代码,所以接口通过 lua API 导出。 ./modules/foo/foo.c #include <xmi.h> static int c_add(lua_State* lua) { int a = lua_tointeger(lua, 1); int b = lua_tointeger(lua, 2); lua_pushinteger(lua, a + b); return 1; } static int c_sub(lua_State* lua) { int a

2023-08-24

xxx”) 包 #4049: 改进 Rust 支持交叉编译 改进 clang 下 c++ modules 支持 Bugs 修复 修复 macOS/Linux 上子子进程无法快速退出问题

2023-04-07

Bugs 修复 #3436: 修复自动补全和 menuconf #3463: 修复 c++modules 缓存问题 #3545: 修复 armcc 的头文件依赖解析

2023-07-12

进对 vs_runtime 设置问题。 更新 lua 运行时 最近 Lua 已经发布了 5.4.6 版本,我们对 xmake 中内置的 Lua 运行时也做了升级,跟上游保持同步。 更新日志 新特性 #3821: windows 安装器添加长路径支持选项 #3828: 添加 zypper 包管理器

2022-05-26

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快

2024-05-25

新特性 #5005: 显示所有 API #5003: 添加 build.fence 策略 #5060: 支持 Verilator 静态库目标构建 #5074: 添加 xrepo download 命令去快速下载包源码 #5086: 添加包检测支持 #5103: 添加 qt ts 构建支持 #5104: 改进 find_program,在 window

2024-03-23

新特性 #4843: 添加 check_bigendian 接口实现大小端探测 改进 #4798: 改进 wasi sdk 检测 #4772: 改进 tools.cmake 去兼容支持 vs2022 preview (v144) #4813: 添加 gb2312 编码 #4864: 改进抽取符号,支持 gdb 断点调试 #4831: 改进 target:fileconfig(

2023-08-03

,以便它适用于类型。 新的标准库模块 (standard library modules) 新版对著名的os模块进行了彻底修改。其部分功能可在引入Path抽象的新界面下使用。Path是distinct string,它提高了处理路径、文件和目录时的类型安全性。 增加

2023-08-31

ColorTableRemap 5.自定义按键名(可选) - keyNameTableRemap 6.xmake重新构建项目, 自动完成插件注册 流程/开发过程说明 - 基于插件模板 HelloWorld   1.创建插件文件 在kplugin/auto-register目录创建以.kplugin.hpp后缀的插件文件(或者

2023-11-11

加强大和灵活,同时保持 RAD Server 的易用性 详情查看发布公告。 延伸阅读:Delphi 11 和 C++Builder 11 社区版发布

2023-06-20

WasmEdge 0.12.1 发布:新的 plugin 系统、用于 AI 的 Wasm API、高级 socket networking WasmEdge 0.12.0 和 0.12.1 已经发布。这两个版本带来了大量新的特性、优化和错误修复,进一步提高了 WasmEdge 的性能、安全性和通用性。 主要特性: 新

2023-11-24

s://github.com/kcl-lang/kcl-lang.io/pull/211 https://github.com/kcl-lang/modules/pull/67 感谢 @XiaoK29 为 KCL IDE 的悬停和引用查找功能代码架构重构以及 KCL 文档的贡献 🙌 https://github.com/kcl-lang/kcl/pull/887 https://github.com/kcl-lang/kcl/pull/899 https: