【发布时间】:2026-02-15 01:35:02
【问题描述】:
我们的项目变得相当大,我们的构建系统不再扩展。我们正在linux机器上进行跨平台开发。我们有太多的平台可以构建,甚至更多的构建选项。我们认为我们需要升级基于 Makefile 的构建环境。
这些是要求(在理想世界中):
- 快速(所以没有 libtool)
- 可以进行并行构建
- 交叉编译友好
- Ccache 集成
- 是否增量构建并且在满足某些条件时可能会短路(如果 a、b、c 选项未更改则短路,如果更改则重建)
- 易于编写脚本(python 集成将是完美的)
- 用户友好的语法
- 分布式系统。模块可以相互分开开发
- 可以构建第三方库(使用 autotools、cmake ..)
- 可以跟踪模块之间的依赖关系(但足够灵活,可以用其他外部模块替换模块)。
- 内置单元测试支持
- 大型二进制文件可以与版本控制分开存储,如果需要可以下载
- 可以跟踪开源许可证
- git 集成
您是否知道有任何工具(或一组工具)可以满足(至少部分)这些要求?目前我倾向于gyp+ninja。但是语法不是很友好,也没有文档。所以这是一个艰难的销售。
【问题讨论】:
-
为什么要立即关闭 libtool?您是否对现代版本进行了基准测试并确认它是不够的?
-
大约 6 个月前,我将我的一个项目(~4K 文件)移到了 gyp。它以前是在 configure/libtool 之上构建的。构建时间从中高 20 秒下降到高 10 秒(以分钟计)。除非在过去一年左右做出重大改进,否则我支持我的声明。顺便说一句,我的其他具有 SSD 的服务器上的时间增量较低。
标签: linux cross-compiling build-system ccache