6. 打印日志信息
6. 打印日志信息
在CMake中可以用用户显示一条消息,该命令的名字为message:
message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)
(无)
:重要信息STATUS
:非重要信息WARNING
:CMake 警告,会继续执行AUTHOR_WARNING
:CMake 警告 (dev), 会继续执行SEND_ERROR
:CMake 错误, 继续执行,但是会跳过生成的步骤FATAL_ERROR
:CMake 错误, 终止所有处理过程
CMake 的命令行工具会在 stdout 上显示 STATUS 消息,在 stderr 上显示其他所有消息。CMake的 GUI 会在它的 log 区域显示所有消息。
CMake 警告和错误消息的文本显示使用的是一种简单的标记语言。文本没有缩进,超过长度的行会回卷,段落之间以新行做为分隔符。
输出一般日志信息
# 输出一般日志信息
message(STATUS "source path: ${PROJECT_SOURCE_DIR}")
将构建目录的文件清空,重新构建一次:
可以看到,上面 source path: /home/yuzu/cmake_proj/proj5
就是我们要打印的信息
输出警告信息
# 输出警告信息
message(STATUS "source path: ${PROJECT_SOURCE_DIR}")
将构建目录的文件清空,重新构建一次:
这里显式的就是警告信息了,CMake会继续执行,但是跳过生成的步骤
输出错误信息
# 输出错误信息
message(FATAL_ERROR "source path: ${PROJECT_SOURCE_DIR}")
此时 CMake 不会继续执行处理过程,而是终止
这里我使用的 CMakeLists.txt :
cmake_minimum_required(VERSION 3.17)
project(CALC_TEST)
set(CMAKE_CXX_STANDARD 11)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
include_directories(${PROJECT_SOURCE_DIR}/include)
file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
# 指定链接动态库的目录
link_directories(${PROJECT_SOURCE_DIR}/lib)
add_executable(main ${SRC_LIST})
target_link_libraries(main calcso pthread)
# 输出一般日志信息
# message(STATUS "source path: ${PROJECT_SOURCE_DIR}")
# 输出警告信息
# message(WARNING "source path: ${PROJECT_SOURCE_DIR}")
# # 输出错误信息
# message(FATAL_ERROR "source path: ${PROJECT_SOURCE_DIR}")
使用的工程还是先前的:
tree . -L 2
.
├── CMakeLists.txt
├── bin
│ └── main
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ ├── Makefile
│ └── cmake_install.cmake
├── include
│ └── head.h
├── lib
│ └── libcalcso.so
├── main.cpp
└── src
├── add.cpp
├── div.cpp
├── mul.cpp
└── sub.cpp
6 directories, 12 files