CMAKE_DISABLE_FIND_PACKAGE_<PackageName>

用于禁用 find_package() 调用。

项目中每个非 REQUIRED find_package() 调用都可以通过将变量 CMAKE_DISABLE_FIND_PACKAGE_<PackageName> 设置为 TRUE 来禁用。这可用于在安装了可选包的情况下构建项目,而无需使用该包。

此开关应在初始 CMake 运行期间使用。否则,如果该包已经在之前的 CMake 运行中找到,则存储在缓存中的变量仍然存在。在这种情况下,建议使用缓存编辑器或 cmake -U 从缓存中删除该包的缓存变量。

请注意,此变量可能导致项目内的不一致结果。考虑一下从项目中的两个不同位置通过 find_package() 请求依赖项的情况。如果第一次调用没有 REQUIRED 关键字,当 CMAKE_DISABLE_FIND_PACKAGE_<PackageName> 为该依赖项设置为 true 时,它将找不到该依赖项。项目将继续进行,假设该依赖项不可用。如果项目中的第二次调用确实具有 REQUIRED 关键字,则它可能会成功。同一项目的两个不同部分现在对相同的依赖项看到了相反的结果。

另请参阅 CMAKE_REQUIRE_FIND_PACKAGE_<PackageName> 变量。