当我们最初使用CMake进行配置时,我们会收到一些关于find_package()
指令的消息,例如:
-- Found CUDAToolkit: /usr/local/cuda/include (found suitable version "12.0.140", minimum required is "10.1")
或:
-- Found Python: /usr/bin/python3.11 (found version "3.11.2") found components: Interpreter
但是对于其他包,我们找到_package -默认情况下不打印任何内容。
除了自己打印这样的消息之外,有没有一种方法可以告诉CMake为它找到的每个包打印一些消息?
注意:在这个related question中,提到了命令行选项-D CMAKE_FIND_DEBUG_MODE=ON
;但这会打印出大量我不想要的调试信息。
2条答案
按热度按时间pzfprimi1#
tl;dr:从CMake 3.26开始-没有自定义Find脚本。
您作为示例给出的包具有自定义的Find脚本,例如:
FindCUDAToolkit.cmake
,作为CMake发行版的一部分,它实现了这种行为。如果您为自己的包编写这样的脚本,它可以做到这一点;但是-鸡和蛋的问题:在使用查找脚本之前,您需要您的软件包,或者至少需要有人独立下载并使用您的查找脚本。现在,相信@fabian的评论和CMake文档没有提到这一点,我已经提交了针对CMake的issue 24936来添加此功能。
bt1cpqcv2#
您可以使用
message
命令打印找到的内容,以下是一个示例:有关
message
命令的更多信息,请参阅CMake Docunmetation。