cmake(三)CMake输出自定义信息

一  message函数

①  清理上次构建产物

②   message函数

1)CMake 的命令行工具会在 'stdout' 上显示 'STATUS' 消息,在 stderr 上显示'其他所有'消息

2)CMake '警告和错误消息'的文本显示使用的是一种'简单的标记语言';文本'没有缩进',超过长度的行会'回卷',段落之间以'新行'做为'分隔符'

+++++++++'消息不同级别的行为'+++++++++

 (无) = '重要'消息;
 STATUS = '非重要'消息;-->'常用'
 WARNING = CMake '警告', 会继续执行;
 AUTHOR_WARNING = CMake 警告 (dev), 会'继续'执行;
 SEND_ERROR = CMake 错误, '继续执行',但是会'跳过生成的步骤';-->'常用'
 FATAL_ERROR = CMake 错误, '终止所有'处理过程; -->'常用'

cmake的内置变量

'典型场景': 使用message函数作为 "调试输出",获取内置变量的'精准值'

③  如下的操作

使用命令"cmake .." -->'习惯'将cmake输出到'build目录'

④  演示message无参STATUS级别的用法

1)修改CMakeLists.txt文件

1)'无参' -->'不指定'消息的'级别'

2)在'build'目录下'修改'CMakeLists文件

2)测试

思考: 'cmake3 ..'会'只找'该级目录下的'一级'CMakeLists.txt文件,'还是'包括子目录下的'CMakeLists.txt'文件,'分别构建'

⑤  测试SEND_ERROR

1)清理环境,修改CMakeLists.txt文件

2)修改后的内容

3)测试

从输出的结果来看: 'SEND_ERROR'发送了'错误'信息,而且'跳过生成(核心Makefile)'过程

⑥  测试FATAL_ERROR

细节: 把'FATAL_ERROR'放在'SEND_ERROR'的下面-->分析'二者顺序'对结果的'影响'

1)清理环境,修改文件

2)内容1测试1

备注: 演示'不是太完美',后续可以在'FATAL_ERROR'再加一个'无参'或者'STTAUS'级别的message

3)内容2测试2

操作: '掉换'二者的'顺序'

⑦  message打印内置变量

cmake_minimum_required(VERSION 3.18)

project(show_vars VERSION 1.0.1)

# 为了分行确定输出内容
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("")

 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值