message 函数被用于向用户显示信息。这个函数可以在 CMake 运行时输出各种级别的消息,包括状态消息、警告、错误等。
message 函数的语法
message([<mode>] "message to display" ...)
<mode>可选的参数,指定消息的类型。可能的值包括:STATUS: 显示一般信息。WARNING: 显示警告信息,但不会停止 CMake 的配置或生成过程。AUTHOR_WARNING: 类似于WARNING,但通常用于项目作者的特定警告。SEND_ERROR: 显示错误信息并继续运行,但会跳过生成步骤。FATAL_ERROR: 显示错误信息并立即终止所有 CMake 处理。
"message to display"是要显示的消息文本。...表示可以附加多个消息字符串,CMake 会自动将它们连接起来。
使用示例
# 显示常规状态信息
message(STATUS "This is a STATUS message.")
# 显示警告信息,CMake处理会继续
message(WARNING "This is a WARNING message.")
# 显示开发者警告信息,CMake处理会继续
message(AUTHOR_WARNING "This is an AUTHOR_WARNING message.")
# 显示错误信息,CMake处理会继续,但不会生成任何内容
message(SEND_ERROR "This is a SEND_ERROR message.")
# 显示致命错误信息,CMake处理会立即停止
message(FATAL_ERROR "This is a FATAL_ERROR message.")
输出到不同的地方
STATUS消息会被输出到 stdout,这对于用户跟踪配置过程中的常规信息很有用。WARNING、AUTHOR_WARNING、SEND_ERROR和FATAL_ERROR消息会被输出到 stderr,这可以让错误和警告信息更加突出。
注意
- 使用
FATAL_ERROR会立即停止 CMake 的进程。 - 当使用
SEND_ERROR时,CMake 会尝试继续运行以便收集更多的错误信息,但是不会尝试去生成项目。 STATUS消息不应该包含任何关键的配置信息,因为用户可能不会注意到这些消息。