如何告诉CMake输出程序包搜索路径?

时间:2019-01-21 16:08:12

标签: windows cmake

我正在Windows上编译libdwarf。在其根CMakeLists.txt中,它尝试通过以下方式找到LibElf

find_package(LibElf REQUIRED)

LibElf不使用CMAKE,而且我还没有配置它以任何方式进行注册,因此find_package当然会失败。我希望CMake在运行时打印出所有要搜索LibElf的路径。我如何告诉CMake输出?我已经尝试过--trace,但这只是向我展示了我的CMakeLists.txt文件的执行流程-而不是CMake自身当前正在寻找软件包的位置。

我知道documentation for find_package描述了CMake的搜索位置,但是我可以使用各种变量,环境变量和注册表设置来修改该行为。我想对我刚刚提到的那些项进行所有修改后,看看CMake到底在哪里。

我应该注意,libdwarf包含一个cmake/FindLibElf.cmake模块。也许我要的是不可能FindLibElf.cmake随心所欲地做什么吗?

1 个答案:

答案 0 :(得分:0)

CMake有一个未记录的变量CMAKE_FIND_DEBUG_MODE,将该变量设置为非false会导致输出大量关于find_package和其他{{1 }}命令。

可以在命令行中设置变量:

find_*

或在cmake -DCMAKE_FIND_DEBUG_MODE=1 <...> 中:

CMakeLists.txt

可以在CMake testsmailing中找到变量的使用。