【问题标题】:A build system with CMAKE or not for system composition [closed]具有 CMAKE 或不用于系统组合的构建系统 [关闭]
【发布时间】:2018-03-13 06:24:33
【问题描述】:

具体来说,问题可以这样问:能不能用主要基于CMAKE的构建系统来替代Linux内核构建系统?

我知道 CMAKE 非常适合构建跨平台包,例如库或应用程序。但我怀疑这对于由几个组件组成的系统并不好,并且您想分别推进每个组件的开发。换句话说,CMAKE 可能不适合专注于由不同组件组成系统的构建系统。

要创建系统组合的构建系统,最好使用 git-repo 工具来管理顶层组合。在顶层,更多的是把不同哈希的包拉到系统布局中。之后,进一步的构建步骤可以使用 CMAKE 或任何其他构建技术。例如,我想到了Legato

构建系统专家,您的看法是什么?

【问题讨论】:

  • 根据我的经验,我已经将内核构建系统包装到 CMake 中以构建 Linux 内核模块。所以没有什么是不可能的。
  • 编程本身更像是一门艺术而不是一门科学。是的,这是一个基于意见的问题。如果您认为自己是专家,我想听听您对此的看法。感谢您陈述您使用 CMake 包装内核模块的经验。我在某种程度上被说服放弃我原来的一些观点。
  • Tsyvarev,如果您就为什么要这样做而不是不这样做提供您的看法,那么它一定是对我最初问题的一个很好的回答。这肯定会让我们的读者受益,而不仅仅是结束这个问题。
  • 抱歉,Stack Overflow 既不是论坛也不是聊天工具,因此它不适合此类“讨论”问题。见help center。我指出我的经验只是为了展示,对您的问题有不同的观点(使用 CMake 构建 Linux 内核),所以问题实际上是基于意见的
  • 没问题。感谢您分享您的观点,尽管方式有限。是的,对我的问题有不同的看法,因为我在标题中询问了为什么以及为什么不。

标签: cmake composition build-system


【解决方案1】:

在相关问题列表中,问题“which suits linux”链接到two interesting other options - scons and waf

scons and waf 都非常适合成为构建系统工具:它们具有成熟的编程语言所拥有的全部功能。这使得它们非常适合编写一个可以组成系统的构建系统,你可以编写一个程序来表示。它们本身就是一个构建系统,不需要单独的构建系统。比较:autotools、cmake、qmake 都生成 makefile,并且需要单独的 make 系统来进行构建。

回到原发帖人的问题:如果项目组擅长 Python,那么使用 scons 或 waf 而不是 cmake。如果您的团队成员真的擅长 cmake 处理但不擅长 python,为什么不擅长 cmake。

【讨论】:

  • 环顾四周,scons 和 waf 看起来不错,但可能并不理想。投票支持重新开放,以便其他答案可以进来。
猜你喜欢
  • 2010-11-19
  • 2010-11-10
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2017-11-12
  • 2011-02-20
相关资源
最近更新 更多