CMAKE_FIND_PACKAGE_PREFER_CONFIG¶
版本 3.15 新增。
指示 find_package() 在未指定模式时,优先尝试“Config”模式而非“Module”模式。
当使用简化的签名且不带 MODULE 选项时,find_package() 命令会无显式模式地运行。在这种情况下,默认情况下,CMake 首先通过搜索 Find<pkg>.cmake 模块来尝试 Module 模式。如果失败,CMake 然后会使用 Config 模式搜索该包。
将 CMAKE_FIND_PACKAGE_PREFER_CONFIG 设置为 TRUE,以指示 find_package() 在回退到 Module 模式之前,首先使用 Config 模式进行搜索。
当开发者编译了常用库的自定义版本并希望将其链接到依赖项目时,此变量可能非常有用。如果此变量设置为 TRUE,它将阻止依赖项目的 find_package() 调用在找到开发者自定义构建的库之前,选择由系统 Find<pkg>.cmake 模块定位的默认库。
一旦设置了此变量,导出(exported)的 <pkg>Config.cmake 文件就有责任提供与 Find<pkg>.cmake 模块相同的变量,以便依赖项目可以互换地使用它们。