我想将某些东西从msbuild / qmake移植到bazel。到目前为止,我看到的最大的障碍是对MSVC的预编译标头支持,我们大量使用了它。我怀疑编译时间是否可以与msbuild + pch竞争。建议的替代方案是C ++模块,但与当前的模块相去甚远(大型代码库,仍在MSVC 2015上)。在我看来,过去几年里关于C ++构建性能的许多讨论看来,使用预编译头文件仍然是加速编译的一种广泛使用的方法。
功能请求https://github.com/bazelbuild/bazel/issues/1215已关闭。我不了解GCC,但是在MSVC上,即使在增量版本(与使用预编译头相关)上,确定性版本也没有真正的问题。
有没有一种方法可以在构建文件中声明PCH依赖关系和规则,而无需在bazel中提供内置支持?我们将自动生成预编译头文件的内容,因此也有可能使用我们用作输入的所有头来生成每个项目的规则。