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_CONFIG
为 TRUE
以告诉 find_package()
首先使用 Config 模式搜索,然后再回退到 Module 模式。
当开发者编译了通用库的自定义版本并希望将其链接到依赖项目时,此变量可能很有用。如果此变量设置为 TRUE
,它将阻止依赖项目调用 find_package()
从系统的 Find<pkg>.cmake
模块中选择默认库,然后再查找开发者自定义构建的库。
一旦设置了此变量,导出的 <pkg>Config.cmake
文件有责任提供与 Find<pkg>.cmake
模块相同的结果变量,以便依赖项目可以互换使用它们。