如何用ExternalProject_Add指定目标?

How to specify target with ExternalProject_Add?

使用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)

可能这会奏效。