CMake find_package: 它在哪里找到包?

CMake find_package: where did it find the package?

在我的 CMake 包中,有一个对 find_package 的调用。成功了,太棒了!但是,事实证明它是错误的软件包版本。我现在想去删除那个包。但是,我不知道它在我的系统上到底在哪里,也不知道 CMake 必须在某处找到的 -config.cmake 文件在哪里。有没有办法让 find_package 给我这些信息?或者至少详细地告诉我它在哪里搜索?

虽然这可能在变量 CMAKE_MODULE_PATH 中,但对我来说它是空的。所以我猜它在某处的默认路径中。但是CMake在很多地方搜索包,我没有在我记得的常用位置找到它。

好的,我在这里找到了解决方案:

https://riptutorial.com/cmake/example/21128/debug-find-package---errors

原来有一个特殊的调试标志可以让 find_package 告诉你它在哪里搜索:​​

cmake -D CMAKE_FIND_DEBUG_MODE=ON ..

从 CMake 3.17 开始,cmake command line 原生支持打印 CMake find_* 命令的 all 搜索目录.使用 --debug-find 标志:

cmake --debug-find ..