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>,则它将找不到该依赖项。项目将继续假定该依赖项不可用。如果项目其他地方的第二个调用确实包含 REQUIRED 关键字,则它可以成功。那么同一项目中的两个不同部分将看到相同的依赖项结果相反。

另请参阅 CMAKE_REQUIRE_FIND_PACKAGE_<PackageName> 变量。