CMake 014:注释与 Message 实战
- 一、CMake 注释:代码的 “说明书” 与 “遮罩层”
- 1.1 行注释:# 号极简写法
- 1.2 块注释:#[[]] 整块包裹(CMake 3.0+ 支持)
- 二、CMake message:工程日志的 “输出中枢”
- 2.1 基础用法:极简输出,开箱即用
- 2.2 核心价值:不止于 “打印”
- 三、实战演示:103message 项目快速跑通
- 运行方式
- 四、总结 ✨
在 CMake 工程化开发中,清晰的注释与可控的日志输出,是提升项目可读性、可维护性的两大基石。本篇将带你吃透 CMake 两种核心注释用法,彻底掌握 message 日志的基础玩法与进阶思路,让你的 CMake 脚本更专业、更易协作 ✨
一、CMake 注释:代码的 “说明书” 与 “遮罩层”
CMake 注释承担着代码说明、临时屏蔽、文档记录的作用,支持两种写法,适配单行与整块场景,用法简洁又强大 🎯
1.1 行注释:# 号极简写法
这是 CMake 最基础、最通用的注释方式,与 Shell、Python 等脚本语言完全一致。
语法:以
#开头,#至行尾的所有内容均为注释执行逻辑:CMake 预处理阶段,会直接删除
#到行尾的内容使用规范:
单独成行,用于说明整段代码作用
置于行尾,用于标注单行代码细节
严禁插在代码中间,避免误注释有效逻辑
# 这是一整行的注释,用于说明下方代码功能 project(CommentDemo) # 行尾注释,标注项目定义1.2 块注释:#[[]] 整块包裹(CMake 3.0+ 支持)
大型工程中,单行注释效率太低,CMake 3.0 推出块注释,对标 C 语言/* */多行注释,完美适配大段说明、临时屏蔽代码场景 🚀
语法:
#[[ 注释内容 ]],两个左中括号到两个右中括号之间的所有内容均为注释核心优势:
支持多行注释,无需每行加
#可嵌入代码任意位置,不破坏原有语法结构
预处理时直接删除括号内全部内容
#[[ 这是整块注释 支持多行书写 常用于函数说明、版本记录、临时屏蔽代码段 ]] message("正常执行的代码") message(#[[ 中间嵌入注释 ]] "嵌入注释不影响执行")✅ 关键提醒:块注释依赖 CMake 3.0 及以上版本,工程开头需指定最低版本:
cmake_minimum_required(VERSION 3.20)二、CMake message:工程日志的 “输出中枢”
message 是 CMake 内置的日志打印命令,调试排查、状态提示、依赖检查全靠它,堪称 CMake 工程的 “喊话器” 📢
2.1 基础用法:极简输出,开箱即用
无需复杂配置,直接传参即可输出内容,支持多参数拼接,用法超灵活:
语法:
message([参数1] [参数2] ...)特性:多参数会自动拼接,无空格分隔
引号规则:无空格的字符串可省略引号,含空格必须加引号
# 基础单参数输出 message("Hello CMake") # 多参数自动拼接输出:参数1参数2参数3 message(参数1 参数2 参数3) # 含空格需加引号 message("Hello CMake Message")2.2 核心价值:不止于 “打印”
调试利器:实时查看变量、流程状态,快速定位配置问题
用户提示:告知调用者构建进度、成功 / 失败状态
日志分级:支持级别控制,区分调试日志与发行日志(进阶)
依赖追踪:专属机制用于库、头文件查找过程打印,让依赖配置更透明
三、实战演示:103message 项目快速跑通
以103message演示项目为例,整合注释 + message 基础用法,直接复制可用 ✅
# 指定最低 CMake 版本,支持块注释 cmake_minimum_required(VERSION 3.20) # 定义项目名称 project(MessageDemo) #[[ ==================== message 基础用法演示 1. 单参数输出 2. 多参数拼接 3. 注释嵌入 ==================== ]] # 单参数测试 message("参数一") # 多参数拼接测试:输出 P1P2P3 message(P1 P2 P3) # 无空格字符串可省略引号 message(123456) # 嵌入块注释,不影响执行 message(#[[ 嵌入注释 ]] "正常输出内容")运行方式
新建
103message文件夹,创建CMakeLists.txt粘贴上述代码Windows:Shift + 右键打开 PowerShell,执行:
cmake-S.-B build- Linux:直接在 Shell 执行相同命令,即可看到日志输出
四、总结 ✨
注释:
#搞定单行,#[[ ]]搞定整块,3.0+ 版本全覆盖message:多参数自动拼接,基础输出零成本,大型工程可扩展分级、依赖日志
规范使用注释与 message,能让 CMake 脚本从 “能用” 变 “好用”,团队协作更顺畅
下一篇将深入 message 日志级别、依赖查找专属打印,把 CMake 日志玩到极致,敬请期待 👋