CMAKE_FIND_PACKAGE_PREFER_CONFIG

3.15 版中添加。

告诉 find_package(),如果没有指定模式,请在“Module”模式之前尝试“Config”模式。

命令 find_package() 在未带有 MODULE 选项的精简签名的情况下,在没有一个明确模式的情况下操作。在这种情况下,默认情况下,CMake 首先通过搜索 Find<pkg>.cmake 模块来尝试模块模式。如果失败,CMake 会然后使用 Config 模式搜索此模块。

CMAKE_FIND_PACKAGE_PREFER_CONFIG 设置为 TRUE,以告诉 find_package() 在回退到模块模式之前,首先使用 Config 模式搜索。

当开发人员编译一个通用库的自定义版本并希望将其链接到一个依赖项目时,这个变量可能有用。如果该变量被设置为 TRUE,这将阻止依赖项目对 find_package() 的调用,在系统的 Find<pkg>.cmake 模块找到默认库之后再找到开发人员自定义 build 的库。

一旦设置了这个变量,导出的 <pkg>Config.cmake 文件就有责任提供与 Find<pkg>.cmake 模块相同的结果变量,以便依赖项目能够对其进行互换。