xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

栏目: 软件资讯 · 发布时间: 5年前

内容简介:这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基...

这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基本跟 ninja 持平,相比 cmake/make, meson/ninja 都快了不少,因为它们还额外多了一步生成 makefile/build.ninja 的过程。

另外,xmake 还增加了对 sdcc 编译 工具 链的支持。

一些优化点

  1. 多个 target 间所有源文件同时并行构建(之前不能跨 target,中途会被 link 给堵住串行化)
  2. 多个无依赖的 target 的 link 可以并行执行(之前只能挨个执行 link )
  3. 修复之前的任务调度 bug,更加细粒度化调度,充分利用 cpu core 资源
  4. 优化 xmake 内部 api 上的一些损耗,这块效果也很明显

更多优化细节可以看下:issue #589

构建速度对比

我们在 termux 和 macOS 上做了一些对比测试,测试工程在: xmake-core

对于相对比较多的 target 的项目,新版 xmake 对其构建速度的提升更加明显。

多任务并行编译测试

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

单任务编译测试

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

简介

XMake 是一个基于 Lua 的轻量级跨平台 c/c++自动构建工具,支持在各种主流平台上构建项目

xmake 的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建

简单的工程描述

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

包依赖描述

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

官方的 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

包依赖管理

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

支持平台

  • 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 生成器的路径转义问题

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Just My Type

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》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具