如果我在CMakeLists.txt中找到find_package,是否必须在已安装的config.cmake中找到find_dependency?

问题描述 投票:0回答:1

我正在使用CMake来构建和安装特定的库foo

我的库依赖于其他库bar,它具有配置CMake脚本,所以我有:

find_package(bar REQUIRED)
target_link_libraries(foo PUBLIC bar::bar)

就建筑而言。对于安装,我有适当的install()命令,包括导出,版本配置以及所有这些内容。这generates包的-config.cmake文件(以及版本配置文件),因此我不需要在存储库中保留一个文件,也不需要在CMakeLists.txt中逐行生成一个文件>

现在,CMake有一个名为find_dependency()的模块,该模块的documentation建议在软件包配置文件中使用。但是-我没有在此处明确添加。我是不是该?更一般而言:在哪种情况下,我应该手动确保程序包配置文件的各个find_dependency()具有一个find_package()

我正在使用CMake构建和安装特定的库foo。我的库依赖于其他库bar(具有配置CMake脚本),所以我有:find_package(bar bar Required)...

build cmake installation dependencies dependency-management
1个回答
0
投票

首先,CMake不支持find_package()的“传递”行为(检查this question)。

© www.soinside.com 2019 - 2024. All rights reserved.