最近更新了下文档站,过来晒一贴。
xmake 的新版文档站点: https//xmake.io,中文站
如果大家不习惯 cmake 的语法,或者觉得难于上手,学习成本过高,那么可以试下这款基于 lua 的跨平台 c/c++构建工具: https://github.com/xmake-io/xmake
xmake 主打轻量,快速,语法简洁明了易上手,采用直接构建,无任何依赖,甚至不依赖 make/makefile
不同平台完全一致的构建行为,并且在支持 conan/vcpkg/clib/brew 等第三方包仓库的同时,还自建了自有包依赖仓库管理xmake-repo,更好的处理跨平台依赖包问题。
依赖包编译效果见:
另外 xmake 除了支持 c/c++,还支持多语言混合编译,只要是能生成 native 二进制兼容的语言,大部分都能支持,像 objc, swift, dlang, rust, asm 等,golang 也做了一些支持,但还不完善。
关于构建项目类型方面,除了基础的静态库,动态库和终端程序编译,还内置了对 cuda, qt, wdk 驱动,mfc, winsdk 等项目类型的支持,用户可自由搭配 xmake-vscode, xmake-idea 等插件,在 vscode, idea, clion 等编辑环境编译和开发 qt, wdk, cuda 等项目。
当然,xmake 也提供了高度的灵活性和扩展性,方便用户自己定制化扩展其他项目的构建。
大伙有兴趣的话可以下载试试体验下,xmake 内置了 luajit,所以安装完全无第三方依赖,非常轻量。
具体安装过程,可以看下文档:xmake 安装和快速上手
更多关于 xmake 的描述和介绍,大家可以到Github上去查看,或者可以浏览下 xmake 的文档站点,里面有完整详细的中英文文档,如果大家感兴趣的话,也欢迎 star 关注此项目。
1
ResetTrap 2019-07-12 08:40:18 +08:00
支持一下
|
2
soli 2019-07-12 09:13:24 +08:00
支持!
|
3
zjsxwc 2019-07-12 09:17:25 +08:00
试了下,应该是用的人少,不爽
比如我要用 boost,xmake 找不到 cmake 由于大家都认同,所有 apt install libXXX 后,会带上 `XXXConfig.cmake ` 或 `FindXXX.cmake`,舒服 |
4
waruqi OP @zjsxwc 内置仓库确实还没有 boost,不过 xmake 也支持直接集成使用 vcpkg/conan/brew 的包,里面有 boost,照样可用。。
apt install 到系统的库,通过 find_packages("xxx") 照样可以直接使用,也有类似`find_xxx.lua`的处理逻辑,可以定制化支持。 |
5
V4Exp 2019-07-12 09:24:40 +08:00
能支持在 VS 中创建 Linux 项目就用。
|
6
stebest 2019-07-12 09:26:19 +08:00
已 star
|
7
waruqi OP @V4Exp xmake 自身是支持交叉编译的,只要 win 上有 linux 编译工具链,就能编译 linux 项目
而 xmake 也支持支持生成 vs 工程,下个版本还会支持 vs 中集成 xmake 来使用,只要 win 装有 linux 的交叉编译工具链,那么之后新版本生成的 vs 工程,调用 xmake 编译的时候,就可以在 vs 中切到对应 linux 工具链编译 linux 项目。。 |
8
abcbuzhiming 2019-07-12 09:34:13 +08:00
@waruqi 楼主,请问你第一张结构示意图是用什么软件画的
|
9
V4Exp 2019-07-12 09:42:48 +08:00
@waruqi 最理想的效果是和 VS linux 项目差不多,可以连接远程机器进行部署调试。
VS 自带的 Linux 项目实际使用中体验不是很好,有 Bug。这个要求会不会太高了? |
10
waruqi OP @V4Exp xmake 只是个构建工具,不是 ide,对应提供的 ide/编辑器集成插件,目前还没法做到远程部署和调试。。
不过 vscode-xmake 的那个插件,目前支持在 vscode 中与 xmake 进行集成编译,以及断点调试。。 |
11
waruqi OP |
12
glfpes 2019-07-12 09:53:51 +08:00
腾讯的 blade 有用的吗?也是一种选择。
|
13
0226 2019-07-12 10:01:26 +08:00
难道不是 Bazel 吗
|
17
eliteYang 2019-07-12 10:45:30 +08:00 1
开源项目不易,支持一下
|
19
doing1 2019-07-12 11:16:26 +08:00
好崇拜会写代码的人,感觉好聪明的样子
|
20
marknote 2019-07-12 11:18:28 +08:00 via iPhone
顶一个!已 star
|
21
iwtbauh 2019-07-12 13:08:32 +08:00 via Android
其实 Makefile 足够了,如果能使用 GNU make 扩展的话。很舒服。
唯一的缺点是会破坏可移植性。比如 FreeBSD 系统用的是 BSD make (虽然也是可以安装 devel/gmake )。因此只在特定操作系统的项目中使用。比如 Linux 内核的构建系统 kbuild,就是基于 GNU Makefile 的一组宏。kbuild 也被用于特定 Linux 的项目,如 busybox,openwrt 等 如果可移植性比较重要。则使用 GNU autotools ( autoconf,automake 等)之类的工具就非常舒服了。 cmake 这种东西,前向兼容能力一般,还非常臃肿,灵活性也很不好,反正我是很不喜欢用。 xmake 的文档我看了看,但是也没有能提起来我兴趣的地方。 |
22
gerorim 2019-07-12 13:18:10 +08:00
习惯使用 makefile
支持一下,有机会在项目中试试 |
23
waruqi OP @iwtbauh 这个就看个人喜好了。比如我,对 autotools 之类的就是深恶痛觉,没感觉一丁点好的地方,所以才折腾了 xmake。。
|
24
llbgurs 2019-07-12 13:44:12 +08:00
|
26
waruqi OP @zjsxwc 内建的 boost 库支持我加上了,你可以试试
默认最小编译。。可自行选择获取 对应的 boost 模块,win,linux,mac 等都支持 具体使用详情见: https://github.com/xmake-io/xmake-repo/issues/10#issuecomment-514023590 |