1. message 命令
我们可以通过消息输出,来判断 CMake 执行流程、判断变量值。
我们使用 message
命令,输出消息。
message
命令格式:
message([<mode>] "message text" ...)
<mode>
表示模式,可以为: STATUS
, WARNING
, AUTHOR_WARNING
, SEND_ERROR
, FATAL_ERROR
, DEPRECATION
, NOTICE
, VERBOSE
, DEBUG
, TRACE
案例: 不同级别的消息
cmake_minimum_required(VERSION 3.0.0)
# 为了分行确定输出内容
message("======================================")
message("1. NONE")
message(NOTICE "2. NOTICE")
message(STATUS "3. STATUS")
message(WARNING "4. WARNING")
message(DEPRECATION "5. DEPRECATION")
message(AUTHOR_WARNING "6. AUTHOR_WARNING")
message(SEND_ERROR "7. SEND_ERROR")
message(FATAL_ERROR "8. FATAL_ERROR")
message(VERBOSE "9. VERBOSE")
message(DEBUG "10. DEBUG")
message(TRACE "11. TRACE")
message("======================================")
(NONE)
或 NOTICE
=> ‘通知消息’ 用于输出信息。
STATUS
=> ‘状态消息’ 有 --
,看起来更重要。
WARNING
、AUTHOR_WARNING
、DEPRECATION
=> ’警告消息‘ 不同时候使用不同的警告;程序会继续执行。
发出警告的消息,AUTHOR_WARNING
用于开发时的警告,用 -Wno-dev
忽略,WARNING
为一般警告,程序可以继续执行,表示使用者需要注意,DEPRECATION
表示该功能弃用的警告。
SEND_ERROR
、FATAL_ERROR
=> ‘错误消息’。
SEND_ERROR
会继续执行,但是会跳过生成的步骤,FATAL_ERROR
终止程序执行。
VERBOSE
、DEBUG
、TRACE
=> 不常用
2. 输出一般信息
cmake_minimum_required(VERSION 3.0.0)
# 为了分行确定输出内容
message("")
message("1. PROJECT_BINARY_DIR = ${PROJECT_BINARY_DIR}")
message("2. PROJECT_SOURCE _DIR = ${_DIR}")
message("3. CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}")
message("4. CMAKE_CURRRENT_BINARY_DIR = ${CMAKE_CURRRENT_BINARY_DIR}")
message("5. CMAKE_CURRENT_LIST_FILE = ${CMAKE_CURRENT_LIST_FILE}")
message("6. CMAKE_CURRENT_LIST_LINE = ${CMAKE_CURRENT_LIST_LINE}")
message("7. CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
message("8. CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")
message("9. EXECUTABLE_OUTPUT_PATH = ${EXECUTABLE_OUTPUT_PATH}")
message("10. LIBRARY_OUTPUT_PATH = ${LIBRARY_OUTPUT_PATH}")
message("11. PROJECT_NAME = ${PROJECT_NAME}")
message("12. PROJECT_VERSION_MAJOR = ${PROJECT_VERSION_MAJOR}")
message("13. PROJECT_VERSION_MINOR = ${PROJECT_VERSION_MINOR}")
message("14. PROJECT_VERSION_PATCH = ${PROJECT_VERSION_PATCH}")
message("15. CMAKE_SYSTEM = ${CMAKE_SYSTEM}")
message("16. CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
message("17. CMAKE_SYSTEM_VERSION = ${CMAKE_SYSTEM_VERSION}")
message("18. BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}")
message("19. CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")
message("20. CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
message("21. CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}")
message("")