gpt4 book ai didi

cmake - 可选的 add_subdirectory(如 find_package)

转载 作者:行者123 更新时间:2023-12-02 02:51:30 24 4
gpt4 key购买 nike

在一个项目中,我有一个外部依赖项(一个库)。这是可选的,但不太可能已经在系统上,并且可能会发生很大变化

所以我所做的是 find_package 库,如果找不到(包括特定版本)我从 Github 下载它并调用 add_subdirectory (下载确保,版本正确)

然而,由于该库的未满足依赖关系导致整个构建失败,这可能会失败。

有没有办法尝试包含子目录并捕获失败而不导致构建失败?

注意:失败来自子模块中的 find_package(...REQUIRED)

最佳答案

您可以修改子包的 CMakeLists.txt 以检查它是否作为另一个项目的一部分构建,然后优雅地处理其未满足的依赖项。

检查该用途

if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
# standalone build
else()
# build as subdirectory of main project
endif()

要早点回来试试return() .

如果您不能更改子包,我看到的唯一方法是检查主 CMakeLists.txt 中的所有依赖项,只有当所有依赖项都满足时,才调用 add_subdirectory()

关于cmake - 可选的 add_subdirectory(如 find_package),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51999609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com