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

4505 次点击
所在节点    程序员
38 条回复
neilp
2020-12-30 22:07:50 +08:00
必须赞
interim
2020-12-30 22:15:21 +08:00
支持一下!很棒的项目
waruqi
2020-12-30 22:33:50 +08:00
@chnyuwen
@neilp 谢谢支持
Jirajine
2020-12-30 22:43:38 +08:00
一直在用,拿来写点小项目很方便,就是 vscode 插件比起 cmake 的还差一些,没和内置的 task/launch 集成,而且调试前得先手动点编译,希望能改进一下。
waruqi
2020-12-30 23:16:18 +08:00
@Jirajine 调试前编译可以改进 你可以提个 issue 上来,现在 run/debug 已经是内置集成 task/launch 的
bbxiong
2020-12-30 23:24:21 +08:00
支持,这种项目需要常年坚持,很棒的项目
Jirajine
2020-12-30 23:27:48 +08:00
@waruqi 我用的时候看到它在底栏添加了自己的编译 /运行 /调试的按钮。应该使用 vscode 自己提供的那一套,自动生成恰当的 task/launch,按 f5 或者点 vscode 调试侧栏里的调试按钮,没必要单独弄,底栏只留状态信息和切换配置的功能就行了。
waruqi
2020-12-31 00:00:52 +08:00
@Jirajine 这块也是参考了早期的 cmake tools 插件做法,回头有时间 也可以考虑改进
zhidian
2020-12-31 00:29:53 +08:00
楼主加油。(虽然我没有用过

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

现在我们用 cmake + conan 管理 c++ 包。主要是因为公司用 artifactory,自带 conan 服务。不知道楼主有没有提供私有仓库的方案。感觉是一个不错的突破点。
waruqi
2020-12-31 06:48:51 +08:00
@zhidian 私有包已经支持的哦 可以自建私有包仓库,也可以在内网部署整个仓库,哪怕不访问外网 或者无网都可以 只需要调整下包里面 set_urls 地址为内网 url 或者本地文件就行
Cbdy
2020-12-31 08:47:58 +08:00
还在手写 Makefile 的路过
kaka6
2020-12-31 09:15:22 +08:00
支持一下,了不起
itfanr
2020-12-31 09:28:12 +08:00
@icyalala 关键人家还是业务搞的
waruqi
2020-12-31 10:14:25 +08:00
@Cbdy 那可以试试 可以节省些撸 makefile 的时间
songtinhuang
2020-12-31 14:16:39 +08:00
visual studio code 的 includepath 怎么与 xmake 集成设置?
include 那里总是有红色波浪线很头疼。
waruqi
2020-12-31 18:15:26 +08:00
@songtinhuang 看下里面的设置说明 配置 complie_commands.json

https://github.com/xmake-io/xmake-vscode/issues/40#issuecomment-657171811
pythonee
2021-01-06 09:50:12 +08:00
支持基础工作。
好奇个人怎么有精力管理软件包仓库
waruqi
2021-01-06 16:37:02 +08:00
@pythonee 大部分都是 xmake 用户帮忙贡献的,因为如果用户要用到 xmake 去集成使用依赖库,如果仓库里面没有,虽然可以走 conan/vcpkg 的包来集成,但还是会有一些用户会根据自己的需求,自发的帮忙提交包进来

所以只要 xmake 用户够多,xmake-repo 仓库的包维护不成问题,目前里面已经收录 283 个包,其中一大半都是用户帮忙提交进来的,同时他们也会根据自己的需求,针对性的帮忙更新维护需要的包

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

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

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

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

© 2021 V2EX