如何做并行CMake ExternalProject构建

时间:2015-10-01 18:04:17

标签: cmake external-project

在构建CMake项目时(例如在Windows上),我可以通过执行以下命令来执行并行构建:

cmake --build . -- /m

/ m开关被传递给msbuild,我获得了并行构建。但是,如果我的CMakeLists中有一些外部项目,那么该开关不会传递给它的构建命令。

确保我的ExternalProject并行构建的最佳方法是什么?如果可以避免,我不想硬编码BUILD_COMMAND。

2 个答案:

答案 0 :(得分:0)

基于make的external_projects遇到了同样的问题。我最终得到了通过cmake缓存变量传递-j8标志的解决方案。

set(EXTERNAL_BUILD_ARGS "/m" CACHE STRING "flags for external project builds")

答案 1 :(得分:0)

CMake 3.12中,添加了支持以从cmake内部启动并行作业。

以前的版本仅在-后面通过passthrough参数支持此功能,可以理解,它们不会传递给外部版本。虽然,我不确定新的支持是否对ExternalProject有用,但是尝试并报告是否有效是很好的选择!