Xmake 2020 年终总结

2020-12-30 10:33:01 +08:00
 waruqi

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

简介

还不知道 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 相关的入门课程:Xmake 带你轻松构建 C/C++ 项目

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

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

上线 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 做了很多的迭代改进,新增了不少实用的新特性,例如:

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

Xmake Discord 社区频道上线

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

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

新一年的目标

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

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

4512 次点击
所在节点    程序员
38 条回复
dexter
2020-12-30 10:40:08 +08:00
5 年,不容易。。。。
lewis89
2020-12-30 10:41:41 +08:00
@dexter #1 社区太小了,中文圈子里面 有闲又有技术愿意干这个事情的人太少 实际上大家都是在用 cmake
waruqi
2020-12-30 10:49:51 +08:00
@lewis89 是的,愿意干这个的很少 纯当兴趣吧,不过 xmake 还是挖走了不少 premake 的用户,哈~
airqj
2020-12-30 11:21:01 +08:00
以前写 C 的时候好像还了解过
支持一下
airqj
2020-12-30 11:21:35 +08:00
已 star :)
waruqi
2020-12-30 11:24:20 +08:00
@airqj 谢谢
icyalala
2020-12-30 11:27:19 +08:00
CMake 已经是事实标准了。
即使强大如 google,自己也有一堆包管理和构建工具,发个开源项目也不得不带上个 CMake 支持。

精神上支持一下楼主,这么长时间坚持不断迭代,很有毅力和耐心。
CismonX
2020-12-30 11:51:37 +08:00
看楼主的代码提交记录很高产啊,光是 GitHub 上面提交的代码就比我工作和业余时间写的代码加起来都要多了😂
waruqi
2020-12-30 12:01:17 +08:00
@icyalala 其实并不冲突,可以 cmake 为主,xmake 为辅,对于一些个人的临时小项目,或者编译测试验证一些代码,用 xmake 效率更高些。

另外,xmake 也支持生成 cmakelist.txt ,用 xmake 维护的项目,同样可以很好的支持 cmake 编译,以及插件集成。
stdout
2020-12-30 16:22:22 +08:00
支持,n 年前我也想写个类似的工具,直接烂尾了。c 相关库的非常缺一个包管理的工具。
waruqi
2020-12-30 16:36:15 +08:00
@stdout 那可以试试 xmake,自带 xrepo 包管理工具,无缝集成各种 c/c++ 包。 刚随手搞了个集成 raylib 库的 hello world 工程,基于 xmake 的包依赖管理,可以体验下。https://github.com/waruqi/raylib-scaffold
eaglu
2020-12-30 18:33:17 +08:00
写 C/C++的时候一直在用,也安利给同学了
waruqi
2020-12-30 19:05:33 +08:00
@eaglu 谢谢
paoqi2048
2020-12-30 19:38:44 +08:00
已经 star 挺久了,准备试水下 LZ 这个😋
Jabin
2020-12-30 20:00:54 +08:00
关注了一段时间 马上就会用到
waruqi
2020-12-30 20:29:53 +08:00
@paoqi2048
@Jabin 欢迎试用
nightwitch
2020-12-30 20:44:54 +08:00
Cmake 大势已成,很难再有颠覆性的工具了,不过可以挤压一下 premake, meson 等工具的生存空间。
关注这个项目很久了,更新的频率一直很及时,精神上支持一下,有机会在自己的小工程里试用一下
carlself
2020-12-30 20:55:57 +08:00
discord 截图看到我了😊,xmake 非常容易上手,并且作者解决问题的速度很快。
waruqi
2020-12-30 22:01:21 +08:00
@nightwitch cmake 生态在那,是很难颠覆,所以 xmake 可以作为补充,在一些小项目中使用 可以提高些效率
waruqi
2020-12-30 22:01:43 +08:00
@carlself 哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX