【问题标题】:Does Cmake handle recursive builds correctlyCmake 是否正确处理递归构建
【发布时间】:2012-01-16 12:03:37
【问题描述】:

我目前正在为某些项目寻找旧的 make 系统的替代品。我目前正在寻找的替代方案之一是cmake。但是据我所知,CMake 更喜欢为每个目录设置一个配置文件,类似于 Autotools 和其他人更喜欢的配置文件。

我知道递归 make 应该是considered harmfull,因为并非始终都知道整个依赖关系图(有关详细信息,请参阅论文)。出于这个原因,其他依赖递归 make 的工具要么不能在所有情况下正常工作,要么需要一些包装器来解决这些问题。

我目前正试图弄清楚 CMake 如何处理这种情况,以及设计中是否考虑了论文中提到的问题。我将尝试本文中提到的示例,但如果它们有效,我无法确定递归构建在所有情况下都有效。

所以主要问题是:CMake 是否考虑了这个问题?如果是这样,我在哪里可以了解他们的解决方案。

编辑

我在这个问题上找到了 CMake FAQ entry,但我对答案并不满意。我想真正的答案就在某个地方,但我找不到它,因为到目前为止我对 CMake 内部知识一无所知,而且我不打算学习它们,如果我可以事先决定,它不是适合我的工具目的。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    CMake 不会为每个 CMakeLists.txt 生成一个 makefile。它从所有人那里收集所有信息,然后创建一些复杂得难以置信的东西,但大概是这样写的,这样它就可靠了,并确保在相关的CMakeLists.txt 发生变化时重建文件。

    【讨论】:

      猜你喜欢
      • 2023-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2013-10-26
      相关资源
      最近更新 更多