在构建 CMake 项目时(例如在 Windows 上),我可以通过执行以下命令来进行并行构建:
cmake --build . -- /m
/m开关被传递给msbuild,从而实现了并行构建。但是,如果我的CMakeLists中有一些外部项目,该开关将不会传递到其构建命令。
最好的方法是确保我的ExternalProject是并行构建的。如果可能的话,我不想硬编码BUILD_COMMAND。
在构建 CMake 项目时(例如在 Windows 上),我可以通过执行以下命令来进行并行构建:
cmake --build . -- /m
我在使用基于make的外部项目时遇到了同样的问题。最终,我通过cmake缓存变量传递-j8
标志来解决了这个问题。
set(EXTERNAL_BUILD_ARGS "/m" CACHE STRING "flags for external project builds")