java ninja教程_xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

这个版本重点重构优化了下内部并行构建机制,实现多个 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 对其构建速度的提升更加明显。

多任务并行编译测试

0fbacf5e7ab8bb0ea46f7f39a7a1fe79.png

单任务编译测试

778c4b5662fb311174cbb77fb37c5a9f.png

简介

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

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

简单的工程描述

a67e57f3e61f99036b56d7e6605dd71f.png

包依赖描述

93f1ce3af417d27cebf62df753d2e467.png

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

包依赖管理

7eefa415c69c811351623a5202d4f28f.png

支持平台

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值