我正在使用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)...
首先,CMake不支持find_package()的“传递”行为(检查this question)。