具体来说,这个问题可以问:你能用一个主要基于 CMAKE 的构建系统替换一个 Linux 内核构建系统吗?
我知道 CMAKE 非常适合构建跨平台包,例如库或应用程序。但我怀疑这对于由几个组件组成的系统不利,并且您希望分别推进每个组件的开发。换句话说,CMAKE 可能不适合专注于由不同组件组成的系统的构建系统。
要为系统组合创建构建系统,最好使用 git-repo 工具来管理顶级组合。在顶层,它更多的是将不同哈希的包拉入系统布局。之后,进一步的构建步骤可以使用 CMAKE 或任何其他构建技术。举个例子,我想到了Legato。
对于构建系统专家,您有什么看法?
在相关问题列表中,"哪个适合Linux"的问题链接到两个有趣的其他选项 - scons 和 waf。
scons 和 waf 都是构建系统工具的良好候选者:它们具有成熟的编程语言所拥有的全部功能。这使得它们非常适合编写一个构建系统,该系统可以组成系统,无论如何,您可以编写一个程序来表示。它们本身就是一个构建系统,不需要单独的构建系统。比较:autotools,cmake,qmake都会生成makefile,并且需要一个单独的make系统来构建。
回到原版海报的问题:如果项目团队擅长 Python,那么使用 scons 或 waf 而不是 cmake。如果你的团队成员真的擅长cmake处理,而不是python,为什么不cmake。