内容简介:这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基...
这个版本重点重构优化了下内部并行构建机制,实现多个 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 对其构建速度的提升更加明显。
多任务并行编译测试
单任务编译测试
简介
XMake 是一个基于 Lua 的轻量级跨平台 c/c++自动构建工具,支持在各种主流平台上构建项目
xmake 的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建
简单的工程描述
包依赖描述
官方的 xmake 包管理仓库: xmake-repo
构建工程
$ xmake
运行目标
$ xmake run console
调试程序
$ xmake run -d console
配置平台
$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
$ xmake
包依赖管理
支持平台
- Windows (x86, x64)
- macOS (i386, x86_64)
- Linux (i386, x86_64, cross-toolchains ..)
- Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a)
- iOS (armv7, armv7s, arm64, i386, x86_64)
- WatchOS (armv7k, i386)
- MSYS (i386, x86_64)
- MinGW (i386, x86_64)
- Cygwin (i386, x86_64)
- SDCC (stm8, mcs51, ..)
- Cross (cross-toolchains ..)
支持语言
- C/C++
- Objc/Objc++
- Swift
- Assembly
- Golang
- Rust
- Dlang
- Cuda
工程类型
- 静态库程序
- 动态库类型
- 控制台程序
- Cuda 程序
- Qt 应用程序
- WDK 驱动程序
- WinSDK 应用程序
- MFC 应用程序
更新内容
新特性
- 添加 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 生成器的路径转义问题
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Dart 2.3 发布,带来构建 UI 新特性
- Meson 0.50构建系统带来了PGI编译器支持,各种Fortran改进和CUDA
- is 语法带来的误读
- webpack带来的安全风险
- FaaS 给前端带来了什么?
- 物联网带来的六大运营挑战
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Just My Type
Simon Garfield / Profile Books / 2010-10-21 / GBP 14.99
What's your type? Suddenly everyone's obsessed with fonts. Whether you're enraged by Ikea's Verdanagate, want to know what the Beach Boys have in common with easy Jet or why it's okay to like Comic Sa......一起来看看 《Just My Type》 这本书的介绍吧!