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> 变量。