cmake可以生成非递归的makefile吗?

Ela*_*ich 13 cmake

我正在使用cmake,它似乎生成了递归的makefile.这意味着在一个大型项目中,空构建可能需要大约5秒钟,这实在是不可接受.

我还没有找到使用cmake生成非递归makefile的方法.可能吗?

DLR*_*ave 3

按原样使用 CMake 是不可能的。

通过修改 CMake 的源代码也许可以......但我不确定这样的任务有多小或多大、简单或多复杂。

不过,可以肯定的是,这将花费超过 5 秒的时间。甚至乘以您在未来几年内要做的所有空构建。

如果 5 秒对于您的空构建来说是不可接受的,那么什么阈值是可以接受的?1秒?0.25秒?只是好奇——为了尽可能减少大型项目的空构建时间,我们做了很多工作。

  • 空构建的阈值是“不易察觉的”,因此少于一秒可能就可以了。对于一个合理的大项目来说,有一些很好的构建工具可以实现这一目标。即使是普通的非递归 makefile 也可以做到这一点。5 秒的空构建简直太疯狂了,我不明白为什么 `cmake` 决定首先发出递归 makefile(这对于小型项目来说是有意义的,但话又说回来,对于小型项目,你不这样做)需要“cmake”。请参阅“tup”,其中整个 Linux 发行版的空构建时间少于“0.5”秒。 (6认同)