cmake中find_dependency和find_package之间的区别?

时间:2018-05-09 23:07:40

标签: cmake

在package-Config.cmake中,如果我执行find_package而不是find_dependency,那对我的应用程序会有什么影响?在什么情况下它会破裂?

1 个答案:

答案 0 :(得分:3)

根据documentationfind_dependency只是find_package的封套:

  

它旨在用于包配置文件(<package>Config.cmake)。 find_dependency转发传递给原始find_package()调用的 QUIET REQUIRED 的正确参数。指定的任何其他参数都将转发到find_package()

     

如果找不到依赖项,它会设置一条信息性诊断消息,并调用return()来结束对调用包配置文件的处理,并返回加载它的find_package()命令。

如果您使用find_package(REQUIRED)而不是find_dependency,并且找不到包,那么用户很难理解错误与外包有关,不仅仅是内心的。此外,如果find_package的外部调用不使用 REQUIRE 选项,则使用该选项执行内部调用是不一致的。