这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基本跟 ninja 持平,相比 cmake/make, meson/ninja 都快了不少,因为它们还额外多了一步生成 makefile/build.ninja 的过程。
另外,xmake 还增加了对 sdcc 编译工具链的支持。
项目源码官方文档一些优化点多个 target 间所有源文件同时并行构建(之前不能跨 target,中途会被 link 给堵住串行化)
多个无依赖的 target 的 link 可以并行执行(之前只能挨个执行 link )
修复之前的任务调度 bug,更加细粒度化调度,充分利用 cpu core 资源
优化 xmake 内部 api 上的一些损耗,这块效果也很明显
更多优化细节可以看下:
issue #589构建速度对比我们在 termux 和 macOS 上做了一些对比测试,测试工程在: xmake-core
对于相对比较多的 target 的项目,新版 xmake 对其构建速度的提升更加明显。
多任务并行编译测试
单任务编译测试
更新内容
新特性
添加 powershell 色彩主题用于 powershell 终端下背景色显示
添加xmake --dry-run -v命令去空运行构建,仅仅为了查看详细的构建命令
#712: 添加 sdcc 平台,并且支持 sdcc 编译器
改进
#589: 改进优化构建速度,支持跨目标间并行编译和 link,编译速度和 ninja 基本持平
改进 ninja/cmake 工程文件生成器插件
#728: 改进 os.cp 支持保留源目录结构层级的递归复制
#732: 改进 find_package 支持查找 homebrew/cmake 安装的包
#695: 改进采用 android ndk 最新的 abi 命名
Bugs 修复
修复 windows 下 link error 显示问题
#718: 修复依赖包下载在多镜像时一定概率缓存失效问题
#722: 修复无效的包依赖导致安装死循环问题
#719: 修复 windows 下主进程收到 ctrlc 后,.bat 子进程没能立即退出的问题
#720: 修复 compile_commands 生成器的路径转义问题
--
FROM 180.162.21.*