CMAKE_FIND_PACKAGE_PREFER_CONFIG

在 3.15 版本中添加。

告诉 find_package() 在没有指定模式的情况下,优先尝试 “Config” 模式,然后再尝试 “Module” 模式。

当使用简化的签名且没有 MODULE 选项时,命令 find_package() 在没有显式模式的情况下运行。在这种情况下,默认情况下,CMake 首先尝试 Module 模式,搜索 Find<pkg>.cmake 模块。如果失败,CMake 然后使用 Config 模式搜索包。

设置 CMAKE_FIND_PACKAGE_PREFER_CONFIGTRUE 以告诉 find_package() 首先使用 Config 模式搜索,然后再回退到 Module 模式。

当开发者编译了通用库的自定义版本并希望将其链接到依赖项目时,此变量可能很有用。如果此变量设置为 TRUE,它将阻止依赖项目调用 find_package() 从系统的 Find<pkg>.cmake 模块中选择默认库,然后再查找开发者自定义构建的库。

一旦设置了此变量,导出的 <pkg>Config.cmake 文件有责任提供与 Find<pkg>.cmake 模块相同的结果变量,以便依赖项目可以互换使用它们。