跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Xmake 2020 年终总结
未分類
1 1 月 2021

Xmake 2020 年终总结

Xmake 2020 年终总结

資深大佬 : waruqi 5

2020 年,xmake 总共迭代发布了 9 个版本,新增了 1871 commits,1k+ stars,新增处理了 500+ 的 issues/pr 。

Xmake 2020 年终总结

简介

还不知道 xmake 是什么的同学,这里先做个简单的介绍:

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

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

目前,xmake 主要用于 C/C++项目的构建,但是同时也支持其他 native 语言的构建,可以实现跟 C/C++进行混合编译,同时编译速度也是非常的快,可以跟 Ninja 持平。

日活破 100

5 年了,终于破 100 了(好悲催~),但相比去年已经算是有了很大的增长,每天最多有 113 人,304 个工程在使用 xmake 进行构建。

Xmake 2020 年终总结

上线官方课程

今年还上线了一门 xmake 相关的入门课程:Xmake 带你轻松构建 C/C++ 项目

发布独立的 C/C++ 包管理器 (Xrepo)

今年,xmake 对包管理的集成使用做了很大的改进和完善,为了方便日常管理维护依赖包,我们新增了独立的 C/C++ 包管理工具 Xrepo 可以快速安装 C/C++ 依赖包

Xmake 2020 年终总结

上线 xrepo 包文档站

同时,我们还上线了 xrepo 包的 文档站, 我们可以在上面快速检索每个包的使用和集成方式,以及查看当前支持的平台列表和安装方式。

官方 xmake-repo 仓库新增 200+ 常用包

非常感谢各位 xmake 的贡献者,使得 xmake-repo 仓库在今年新增了 200+ 的常用 C/C++ 包,我们可以很方便的在项目中快速集成使用它们。

虽然里面的包还是很少,但是没有关系,xmake 也支持直接集成 vcpkg/conan/clib/homebrew/dub/pacman 等其他的管理仓库中的 C/C++ 包。

add_requires("tbox >1.6.1", "libuv master") add_requires("vcpkg::ffmpeg", {alias = "ffmpeg"}) add_requires("brew::pcre2/libpcre2-8", {alias = "pcre2"}) add_requires("conan::openssl/1.1.1g", {alias = "openssl"}) target("test")     set_kind("binary")     add_files("src/*.c")     add_packages("tbox", "libuv", "ffmpeg", "pcre2", "openssl") 

今年 xmake 的一些新增特性

今年,我们也对 xmake 做了很多的迭代改进,新增了不少实用的新特性,例如:

  • 改进依赖包集成体验,并新增依赖包的 license 自动检测机制
  • 增加对 Intel 编译工具链的支持
  • 增加对 Zig,Fortran 等其他语言项目的编译支持
  • 增加对 Wasm 工具链以及 Qt for wasm 项目的编译支持
  • 重构了整个工具链模块,实现更加方便的自定义工具链,更加快速灵活的工具链切换
  • 新增 iOS/MacOS App 应用程序,Frameworks 和 bundle 程序的编译支持,可以完全脱离 xcodebuild,也能从源码编译生成 ipa 包
  • 对 xmake 的整体构建速度进行了大提速,编译速度完全媲美 ninja
  • 新增了 build.ninja 工程文件生成,并对现有 vs/vsxmake 工程进行了很多的改进
  • 新增 try-build 构建模式,可以使用 xmake 直接编译第三方构建系统的项目,例如直接编译 cmake, ninja, gn, autotools, android.mk 等维护的项目,同时还能支持交叉编译环境的自动配置
  • 重构支持了 socket/pipe/process + 协程 进行统一调度,为下一步跨平台分布式编译做准备

其他细节特性和改进还有很多,我就不一一列举了。

Xmake Discord 社区频道上线

Discord (discord.com) 是一个非常不错的全端即时交流平台,为了更好地和国内外用户进行即时交流,我们在上面创建了中文和英文两个不同的频道,界面大概长这样。

Xmake 2020 年终总结

对 xmake 感兴趣的朋友可以点击 服务器邀请链接 加入我们的频道,当然话题仅限于 xmake 相关项目。

新一年的目标

  • 改进和完善现有 C/C++包管理集成
  • xmake-repo 仓库新增收录 1000+ 的常用包
  • 实现跨平台的分布式编译
  • 重写 xmake-idea 插件

最后,再晒张我个人今年在开源上的总体贡献图,明年继续~

有对 xmake 感兴趣的朋友,欢迎关注我们,请戳这: https://github.com/xmake-io/xmake

Xmake 2020 年终总结

大佬有話說 (36)

  • 資深大佬 : dexter

    5 年,不容易。。。。

  • 資深大佬 : lewis89

    @dexter #1 社区太小了,中文圈子里面 有闲又有技术愿意干这个事情的人太少 实际上大家都是在用 cmake

  • 主 資深大佬 : waruqi

    @lewis89 是的,愿意干这个的很少 纯当兴趣吧,不过 xmake 还是挖走了不少 premake 的用户,哈~

  • 資深大佬 : airqj

    以前写 C 的时候好像还了解过
    支持一下

  • 資深大佬 : airqj

    已 star 🙂

  • 主 資深大佬 : waruqi

    @airqj 谢谢

  • 資深大佬 : icyalala

    CMake 已经是事实标准了。
    即使强大如 google,自己也有一堆包管理和构建工具,发个开源项目也不得不带上个 CMake 支持。

    精神上支持一下主,这么长时间坚持不断迭代,很有毅力和耐心。

  • 資深大佬 : CismonX

    看主的代码提交记录很高产啊,光是 GitHub 上面提交的代码就比我工作和业余时间写的代码加起来都要多了

  • 主 資深大佬 : waruqi

    @icyalala 其实并不冲突,可以 cmake 为主,xmake 为辅,对于一些个人的临时小项目,或者编译测试验证一些代码,用 xmake 效率更高些。

    另外,xmake 也支持生成 cmakelist.txt ,用 xmake 维护的项目,同样可以很好的支持 cmake 编译,以及插件集成。

  • 資深大佬 : stdout

    支持,n 年前我也想写个类似的工具,直接烂尾了。c 相关库的非常缺一个包管理的工具。

  • 主 資深大佬 : waruqi

    @stdout 那可以试试 xmake,自带 xrepo 包管理工具,无缝集成各种 c/c++ 包。 刚随手搞了个集成 raylib 库的 hello world 工程,基于 xmake 的包依赖管理,可以体验下。https://github.com/waruqi/raylib-scaffold

  • 資深大佬 : eaglu

    写 C/C++的时候一直在用,也安利给同学了

  • 主 資深大佬 : waruqi

    @eaglu 谢谢

  • 資深大佬 : paoqi2048

    已经 star 挺久了,准备试水下 LZ 这个

  • 資深大佬 : Jabin

    关注了一段时间 马上就会用到

  • 主 資深大佬 : waruqi

    @paoqi2048
    @Jabin 欢迎试用

  • 資深大佬 : nightwitch

    Cmake 大势已成,很难再有颠覆性的工具了,不过可以挤压一下 premake, meson 等工具的生存空间。
    关注这个项目很久了,更新的频率一直很及时,精神上支持一下,有机会在自己的小工程里试用一下

  • 資深大佬 : carlself

    discord 截图看到我了

  • 主 資深大佬 : waruqi

    @nightwitch cmake 生态在那,是很难颠覆,所以 xmake 可以作为补充,在一些小项目中使用 可以提高些效率

  • 主 資深大佬 : waruqi

    @carlself 哈哈

  • 資深大佬 : neilp

    必须赞

  • 資深大佬 : chnyuwen

    支持一下!很棒的项目

  • 主 資深大佬 : waruqi

    @chnyuwen
    @neilp 谢谢支持

  • 資深大佬 : Jirajine

    一直在用,拿来写点小项目很方便,就是 vscode 插件比起 cmake 的还差一些,没和内置的 task/launch 集成,而且调试前得先手动点编译,希望能改进一下。

  • 主 資深大佬 : waruqi

    @Jirajine 调试前编译可以改进 你可以提个 issue 上来,现在 run/debug 已经是内置集成 task/launch 的

  • 資深大佬 : bbxiong

    支持,这种项目需要常年坚持,很棒的项目

  • 資深大佬 : Jirajine

    @waruqi 我用的时候看到它在底栏添加了自己的编译 /运行 /调试的按钮。应该使用 vscode 自己提供的那一套,自动生成恰当的 task/launch,按 f5 或者点 vscode 调试侧栏里的调试按钮,没必要单独弄,底栏只留状态信息和切换配置的功能就行了。

  • 主 資深大佬 : waruqi

    @Jirajine 这块也是参考了早期的 cmake tools 插件做法,回头有时间 也可以考虑改进

  • 資深大佬 : zhidian

    主加油。(虽然我没有用过

    刚才看到 vscode 插件,里面提到用 compileCommands 来激活 vsode 的补全。试了一下靠谱。
    我之前都用 cmake 打印全部 include path 然后粘贴进去( cmake 插件不好使)。

    现在我们用 cmake + conan 管理 c++ 包。主要是因为公司用 artifactory,自带 conan 服务。不知道主有没有提供私有仓库的方案。感觉是一个不错的突破点。

  • 主 資深大佬 : waruqi

    @zhidian 私有包已经支持的哦 可以自建私有包仓库,也可以在内网部署整个仓库,哪怕不访问外网 或者无网都可以 只需要调整下包里面 set_urls 地址为内网 url 或者本地文件就行

  • 資深大佬 : Cbdy

    还在手写 Makefile 的路过

  • 資深大佬 : kaka6

    支持一下,了不起

  • 資深大佬 : itfanr

    @icyalala 关键人家还是业务搞的

  • 主 資深大佬 : waruqi

    @Cbdy 那可以试试 可以节省些撸 makefile 的时间

  • 資深大佬 : songtinhuang

    visual studio code 的 includepath 怎么与 xmake 集成设置?
    include 那里总是有红色波浪线很头疼。

  • 主 資深大佬 : waruqi

    @songtinhuang 看下里面的设置说明 配置 complie_commands.json

    https://github.com/xmake-io/xmake-vscode/issues/40#issuecomment-657171811

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具