与旧版本相比,CMake 3.16 在 Makefile 的生成阶段慢了几个数量级

CMake 3.16 orders of magnitude slower in the Generate phase for Makefiles compared to older versions

我正在咨询一家公司如何加速他们的构建,我立即向他们指出预编译头文件和统一构建 - 10 分钟的完整构建很容易下降到 2-3 分钟。幸好 CMake 3.16 最近发布了 it supports both of those,所以我告诉他们升级。

问题如下:一旦他们从 CMake 2.6 切换到 3.16,运行 CMake 所花费的时间从大约 20 秒跃升至 10 多分钟。大部分时间花在生成阶段。如果您给它足够的时间并且使用 unity 构建成功编译代码,它确实会成功完成,但是这个 CMake 时间是不可接受的。

这是他们的设置:

这是我们观察到的:

我在 Internet 上找不到任何其他人遇到同样问题的报告...知道接下来要尝试什么吗?也许使用 Perf 配置文件?尝试使用 Ninja 作为后端 (report of that being faster)?

很好的分析。这将对 CMake 的开发人员有所帮助。但我怀疑你会在这里找到很多帮助。请开一个issue.

如果你能提供一个最小的例子来展示你的问题,加分。您可能会通过生成大量文件来实现这一目标。