CMAKE_FIND_PACKAGE_PREFER_CONFIG

版本 3.15 新增。

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

命令 find_package() 在使用简化的签名且没有 MODULE 选项时,不使用显式模式。在这种情况下,默认情况下,CMake 首先尝试 Module 模式,通过搜索 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 模块相同的变量结果,以便依赖项目可以互换使用它们。