CMake构建系统从入门到精通
📚 共计 30 章节
第01章
CMake入门
CMake是什么 · 为什么选择CMake · 核心思想 · 安装与验证
概念
环境
第02章
第一个CMake项目
创建CMakeLists.txt · cmake_minimum_required · project · add_executable · 构建与运行
实战
入门
第03章
CMake语法基础
注释 · 命令调用 · 变量 · 列表 · 字符串 · 数学表达式 · 流程控制
语法
核心
第04章
变量与缓存
普通变量 · 缓存变量 · 环境变量 · set · option · 变量作用域
变量
缓存
第05章
列表操作
list命令详解 · 增删改查 · 排序 · 去重 · 转换字符串
列表
实用
第06章
数学与字符串
math · string详解 · 查找替换 · 大小写转换 · 正则匹配
字符串
运算
第07章
流程控制
if/elseif/else · while · foreach · break/continue
逻辑
循环
第08章
函数与宏
function · macro · 参数处理 · 返回值 · 重载 · 递归
函数
宏
第09章
生成器表达式
基础 · 条件表达式 · 路径操作 · 编译特性查询 · 调试技巧
表达式
高级
第10章
目标与属性
add_library · add_executable · 目标属性 · 设置/获取 · 属性继承
目标
属性
第11章
库的构建
静态库 · 动态库 · 对象库 · 接口库 · 导入库 · 链接
库
链接
第12章
头文件与包含路径
target_include_directories · include_directories · 系统头文件 · 私有/公共/接口
头文件
路径
第13章
链接库与依赖
target_link_libraries · 链接类型 · 传递依赖 · 循环依赖 · 链接顺序
依赖
链接
第14章
编译选项与特性
target_compile_options · target_compile_features · C++标准 · 编译器检查
编译
特性
第15章
定义与编译定义
target_compile_definitions · add_definitions · 条件编译 · 平台相关定义
宏定义
条件
第16章
文件操作
file命令详解 · 读写 · 下载 · 打包 · 路径操作 · glob匹配
文件
IO
第17章
目录与子项目
add_subdirectory · 子项目构建 · 跨目录变量 · 目录作用域
子项目
结构
第18章
查找包
find_package · Config模式 · Module模式 · 编写Find模块 · 查找路径
包管理
查找
第19章
外部依赖管理
FetchContent · ExternalProject · CPM · vcpkg · Conan集成
依赖
集成
第20章
测试
enable_testing · add_test · CTest · Google Test · 测试覆盖率
测试
CTest
第21章
安装与打包
install命令 · 安装目标/文件 · CPack配置 · 生成安装包
安装
打包
第22章
导出与导入
export · install(EXPORT) · 包配置文件 · find_package集成
导出
模块
第23章
自定义命令与目标
add_custom_command · add_custom_target · 生成文件 · 构建后操作
自定义
构建
第24章
工具链与交叉编译
工具链文件 · CMAKE_TOOLCHAIN_FILE · 系统/处理器检测 · 交叉编译配置
工具链
交叉编译
第25章
预设与配置
CMakePresets.json · 配置预设 · 构建预设 · 测试预设 · 工作流预设
预设
配置
第26章
IDE集成
Visual Studio · Xcode · CLion · VS Code · Qt Creator
IDE
开发
第27章
性能优化
并行构建 · ccache · 预编译头文件 · Unity构建 · 增量构建
优化
速度
第28章
调试CMake
message · cmake --trace · --debug-output · 错误排查
调试
诊断
第29章
大型项目实战
项目结构设计 · 模块化构建 · 版本管理 · 持续集成 · 文档生成
实战
架构
第30章
CMake高级技巧
自定义模块 · 生成器表达式高级用法 · 策略管理 · 语言扩展 · 最佳实践
高级
技巧