CMAKE_FIND_PACKAGE_PREFER_CONFIG

版本 3.15 新增。

指示 find_package() 在未指定模式时,优先尝试 "Config" 模式,然后再尝试 "Module" 模式。

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

CMAKE_FIND_PACKAGE_PREFER_CONFIG 设置为 TRUE,以指示 find_package() 先使用 Config 模式搜索,然后再回退到 Module 模式。

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

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