如何使用ExternalProject_Add指定目标?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用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版本。如果不可能,也欢迎任何黑客攻击。

答案

make install安装所有OpenCoarrays流,所以即使你在构建阶段只构建caf_mpicaf_single也会在安装阶段自动构建。

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

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

add_subdirectory(mpi)

可能这会奏效。

以上是关于如何使用ExternalProject_Add指定目标?的主要内容,如果未能解决你的问题,请参考以下文章

如何将环境变量传递给 ExternalProject_Add CONFIGURE_COMMAND?

ExternalProject_Add 使用 pybind11 进行 CMake 项目的智能方法

CMake ExternalProject_Add() 和 FindPackage()

cmake:ExternalProject_Add() 不应用 cmake 参数

CMake 使 add_library 依赖于 ExternalProject_Add

CMake ExternalProject_Add 中的 URL 问题