Build 如果外部项目未能正确生成和安装,则阻止代码编译

Build 如果外部项目未能正确生成和安装,则阻止代码编译,build,cmake,Build,Cmake,有没有办法告诉CMake系统,在正确构建和安装依赖项(外部项目)之前,我不希望进一步编译 假设一个项目依赖于系统中可能存在或不存在的其他库。如果没有,我使用ExternalProject\u Add下载并安装它。然而,即使configure部分进行得很好,但是在键入make之前,构建外部项目是不会发生的。现在,如果构建依赖项失败,那么编译代码就没有意义了。我发现添加一些依赖项可能会有所帮助,但这个答案在配置时定义了依赖项,所以它与我的情况无关 任何想法?ExternalProject\u Add

有没有办法告诉CMake系统,在正确构建和安装依赖项(外部项目)之前,我不希望进一步编译

假设一个项目依赖于系统中可能存在或不存在的其他库。如果没有,我使用
ExternalProject\u Add
下载并安装它。然而,即使configure部分进行得很好,但是在键入
make
之前,构建外部项目是不会发生的。现在,如果构建依赖项失败,那么编译代码就没有意义了。我发现添加一些依赖项可能会有所帮助,但这个答案在配置时定义了依赖项,所以它与我的情况无关


任何想法?

ExternalProject\u Add
将生成用于构建依赖关系的自定义目标。如果您不希望在构建依赖项失败的情况下构建目标,请从该目标到外部项目的目标

ExternalProject_Add(my_external_lib [...])
add_executable(my_program [...])
add_dependencies(my_program my_external_lib)

通常,您需要运行superbuild来安装依赖项,因此,如果superbuild失败,您就不会构建项目。你能解释一下你到底是如何使用
ExternalProject\u Add
?可能没有什么例子。