假设我在CMake文件中写这个:
find_path(ISL_INCLUDE_DIR NAMES isl)
如何找到CMake搜索的位置以查找名为isl
的库,以及为什么搜索这些路径?
非解决方案:
strace -e file -f cmake
。这肯定告诉我CMake在哪里进行探测(以及许多不相关的额外信息),但它没有告诉我为什么CMake决定查看特定目录。
阅读find_path
documentation。这有点好一些:结合ccmake
,我可以形成关于被探测内容的假设,然后检查并查看变量是否排列。但这还不够,原因如下:(1)我注意到CMake将搜索与 CMake安装本身相关的include / library目录(例如,如果我使用的话) conda要安装CMake,conda分发的CMake会自动选择conda includes / libraries)。我没有在文档中看到任何表明应该发生的事情。 (2)CMake只会提供有关持久变量的信息,而不是像CMAKE_PREFIX_PATH
那样对分辨率非常重要的瞬态信息。
--debug-output
或--trace
。这些似乎提供了太多信息,我不知道该寻找什么。我想要的是让CMake在执行find_path
时告诉我正在查看的每个目录的方法,为什么它正在考虑该目录,以及它最终决定适合哪个目录。这有可能吗?