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
关键字,则它可能会成功。同一项目的两个不同部分随后对同一依赖项看到了相反的结果。