CMAKE_DISABLE_FIND_PACKAGE_<PackageName>

用于禁用 find_package() 调用的变量。

项目中每一个非 REQUIREDfind_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> 变量。