3

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

cmake --build . -- /m

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

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

4

2 回答 2

1

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

以前的版本仅通过 -- 之后的传递参数支持这一点,可以理解的是,它不会传递到外部构建。虽然,我不确定新的支持是否适用于 ExternalProject,如果它有效,尝试并报告回来会很棒!

于 2018-07-20T08:27:21.473 回答
0

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

set(EXTERNAL_BUILD_ARGS "/m" CACHE STRING "flags for external project builds")
于 2015-10-01T19:45:51.803 回答