CMake 消息打印
如果你想在 CMake 配置/构建过程中打印一些提示信息或调试信息,可以使用 CMake 提供的 message() 函数。
下面将介绍 message() 函数的语法、消息类型,并通过一些示例演示如何使用它来打印消息。
语法
CMake 中 message() 函数的语法如下:
message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)
可以用下述可选的关键字指定消息的类型:
消息类型 | 描述 |
---|---|
无类型 | 重要消息 |
STATUS | 非重要消息 |
WARNING | CMake 警告,会继续执行 |
AUTHOR_WARNING | CMake 警告(dev),会继续执行 |
FATAL_ERROR | CMake 错误,终止所有处理过程 |
SEND_ERROR | CMake 错误,继续执行,但是会跳过生成的步骤 |
CMake 的命令行工具会在 stdout 上显示 STATUS
消息,在 stderr 上显示其他所有消息。CMake 的 GUI 会在它的 log 区域显示所有消息。交互式的对话框(ccmake 和 CMakeSetup)将会在状态行上一次显示一条 STATUS
消息,而其他格式的消息会出现在交互式的弹出式对话框中。
CMake 警告和错误消息的文本显示使用的是一种简单的标记语言。文本没有缩进,超过长度的行会回卷,段落之间以新行做为分隔符。
示例
1、输出 错误 FATAL_ERROR
message(FATAL_ERROR "FATAL: In-source builds are not allowed.
You should create a separate directory for build files.")
2、输出警告 WARNING
message(WARNING "OpenCV requires Android SDK tools revision 14 or newer.")
3、输出正常 STATUS
message(STATUS "Can't detect runtime and/or arch")
4、输出变量的值
先定义一个变量 USER_NAME
,然后使用 STATUS 打印此变量值。
SET(USER_NAME, "GetIot.tech")
MESSAGE( STATUS "The user name = ${USER_NAME}.")
总结
CMake 提供了 message() 函数用于打印消息,它的作用相当于 C 语言中的 printf
、C++ 中的 std::cout
和 Qt 中的 qDebug()
。我们可以使用 message() 函数打印变量,或者其他提示信息,可以帮助我们了解 CMake 的构建过程,以及其中一些变量或者用户的变量的值。