Cmake是否正确处理递归构建

时间:2012-01-16 12:03:38

标签: cmake

我目前正在寻找一些项目的旧制造系统的替代品。我目前正在考虑的其中一个选择是cmake。但是据我所知,到目前为止,CMake更喜欢为每个目录配置一个配置文件,类似于Autotools和其他人喜欢的配置文件。

我知道递归make应该是considered harmfull,因为并不是总是知道整个依赖图(详见论文)。因此,依赖递归make的其他工具要么在所有情况下都不能正常工作,要么需要一些包装来解决这些问题。

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

所以主要的问题是:CMake是否考虑过这个问题?如果是这样,我在哪里可以阅读有关其解决方案的任何内容。

编辑

我在这个问题上找到了CMake FAQ entry,但我对答案并不满意。我想真正的答案就在那里,但是我找不到它,因为到目前为止我还没有CMake内部知识,我不打算学习它们,如果我事先决定,它不适合我目的。

1 个答案:

答案 0 :(得分:6)

CMake不会根据CMakeLists.txt生成一个makefile。它收集来自所有这些信息的所有信息,而不是创建一些令人难以置信的复杂信息,但可能这样写得恰到好处,以确保文件在相关CMakeLists.txt更改时重建。