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