首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

现代化的 C/C++构建工具,除 cmake 之外的另一选择

  •  1
     
  •   waruqi · 11 天前 · 1806 次点击

    最近更新了下文档站,过来晒一贴。

    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 关注此项目。

    26 回复  |  直到 2019-07-23 10:23:45 +08:00
        1
    ResetTrap   11 天前
    支持一下
        2
    soli   11 天前
    支持!
        3
    zjsxwc   11 天前
    试了下,应该是用的人少,不爽

    比如我要用 boost,xmake 找不到

    cmake 由于大家都认同,所有 apt install libXXX 后,会带上 `XXXConfig.cmake ` 或 `FindXXX.cmake`,舒服
        4
    waruqi   11 天前
    @zjsxwc 内置仓库确实还没有 boost,不过 xmake 也支持直接集成使用 vcpkg/conan/brew 的包,里面有 boost,照样可用。。

    apt install 到系统的库,通过 find_packages("xxx") 照样可以直接使用,也有类似`find_xxx.lua`的处理逻辑,可以定制化支持。
        5
    V4Exp   11 天前
    能支持在 VS 中创建 Linux 项目就用。
        6
    stebest   11 天前
    已 star
        7
    waruqi   11 天前
    @V4Exp xmake 自身是支持交叉编译的,只要 win 上有 linux 编译工具链,就能编译 linux 项目

    而 xmake 也支持支持生成 vs 工程,下个版本还会支持 vs 中集成 xmake 来使用,只要 win 装有 linux 的交叉编译工具链,那么之后新版本生成的 vs 工程,调用 xmake 编译的时候,就可以在 vs 中切到对应 linux 工具链编译 linux 项目。。
        8
    abcbuzhiming   11 天前
    @waruqi 楼主,请问你第一张结构示意图是用什么软件画的
        9
    V4Exp   11 天前
    @waruqi 最理想的效果是和 VS linux 项目差不多,可以连接远程机器进行部署调试。
    VS 自带的 Linux 项目实际使用中体验不是很好,有 Bug。这个要求会不会太高了?
        10
    waruqi   11 天前   ♥ 1
    @V4Exp xmake 只是个构建工具,不是 ide,对应提供的 ide/编辑器集成插件,目前还没法做到远程部署和调试。。

    不过 vscode-xmake 的那个插件,目前支持在 vscode 中与 xmake 进行集成编译,以及断点调试。。
        11
    waruqi   11 天前
        12
    glfpes   11 天前
    腾讯的 blade 有用的吗?也是一种选择。
        13
    0226   11 天前
    难道不是 Bazel 吗
        14
    waruqi   11 天前
    @glfpes
    @0226 其他的构建工具也都不错,各有优劣,可自己试用对比下
        15
    congeec   11 天前 via iPhone
    @waruqi 我看你坚持推广好几年了,真不容易
        16
    waruqi   11 天前
    @congeec 我也就每隔 3、4 个月,以及发新版的时候偶尔推一下。。 = =
        17
    eliteYang   11 天前   ♥ 1
    开源项目不易,支持一下
        18
    waruqi   11 天前
    @eliteYang 多谢支持
        19
    doing1   11 天前
    好崇拜会写代码的人,感觉好聪明的样子
        20
    marknote   11 天前 via iPhone
    顶一个!已 star
        21
    iwtbauh   11 天前 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   11 天前
    习惯使用 makefile
    支持一下,有机会在项目中试试
        23
    waruqi   11 天前
    @iwtbauh 这个就看个人喜好了。比如我,对 autotools 之类的就是深恶痛觉,没感觉一丁点好的地方,所以才折腾了 xmake。。
        26
    waruqi   4 小时 28 分钟前   ♥ 1
    @zjsxwc 内建的 boost 库支持我加上了,你可以试试

    默认最小编译。。可自行选择获取 对应的 boost 模块,win,linux,mac 等都支持

    具体使用详情见: https://github.com/xmake-io/xmake-repo/issues/10#issuecomment-514023590
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3829 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 06:52 · PVG 14:52 · LAX 23:52 · JFK 02:52
    ♥ Do have faith in what you're doing.