cmake - 如何使用 ExternalProject_Add 指定目标?

标签 cmake external-project

是否可以在使用 ExternalProject 时只构建特定目标?特别是,我只需要下载和构建 OpenCoarrays 库的 MPI 版本。我试过了

ExternalProject_Add(
  OpenCoarrays-fallback
  EXCLUDE_FROM_ALL 1
  URL https://github.com/sourceryinstitute/opencoarrays/archive/1.0.1.tar.gz
  BUILD_COMMAND make caf_mpi
)

但它同时构建串行和 MPI 版本。如果不可能,也欢迎任何 hack。

最佳答案

make install 安装 OpenCoarrays 的所有流程,因此即使您在构建阶段仅构建 caf_mpicaf_single在安装阶段自动构建。

对于仅安装 caf_mpi 库流程,您可以尝试使用 ExternalProject_add 命令的 PATCH_COMMAND 参数修改包源。

例如,您可以将 src/CMakeLists.txt 文件的内容替换为这个:

add_subdirectory(mpi)

这可能会奏效。

关于cmake - 如何使用 ExternalProject_Add 指定目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31785165/

相关文章:

c++ - 使用 biicode cmake 在 Debug模式下构建 C++

cmake - 为ExternalProject_Add 设置WORKING_DIRECTORY CONFIGURE_COMMAND

cmake - 将当前编译器转发到 ExternalProject

cmake - 如何让ExternalProject_Add下载库?

CMake - 包含第三方文件

c++ - cmake、conan 和 qt hello world 项目构建错误

c++ - 条件传递链接库

c++ - 如何编译: Synergy on mac (new toolchain from 2017)

c++ - 将 CMake 变量传递给 ExternalProject_Add

cmake - 在 ExternalProject_Add 命令中 INSTALL_DIR 有什么用?