01
CMake概述
什么是CMake,为什么需要CMake,与其他构建系统对比
概念对比
02
环境搭建
Windows/Linux/macOS安装、验证、环境变量
安装跨平台
03
第一个CMake项目
CMakeLists.txt, cmake/make/ninja, 运行可执行文件
入门实战
04
CMake语法基础
注释、命令、变量、列表、控制结构
语法基础
05
变量与缓存
普通/缓存/环境变量, 作用域, set/unset
变量缓存
06
列表操作
list()增删改查、排序、反转、去重
列表实用
07
数学与字符串
math(), string()查找替换大小写正则
运算字符串
08
文件操作
file()读写、下载、压缩、路径操作
文件IO
09
流程控制
if/elseif/else, foreach, while
逻辑循环
10
函数与宏
function(), macro(), 参数, 返回值, 作用域
函数宏
11
目标(Target)概念
add_executable, add_library, 属性, 依赖
目标核心
12
库的构建
STATIC/SHARED/MODULE/OBJECT 库
库类型
13
头文件与包含路径
target_include_directories, PUBLIC/PRIVATE/INTERFACE
头文件路径
14
链接库
target_link_libraries, 传递依赖, 关键字
链接依赖
15
编译选项与宏定义
target_compile_options, definitions, add_compile_options
编译宏
16
生成器表达式
Generator Expressions 语法, 条件编译, 路径
表达式高级
17
查找包
find_package, Config/Module模式, FindXXX.cmake
包管理查找
18
子目录与项目组织
add_subdirectory, 多子项目, 跨目录访问
组织模块
19
安装规则
install(), 目标/文件/目录, DESTDIR, CMAKE_INSTALL_PREFIX
安装部署
20
测试
enable_testing, add_test, CTest, 超时与标签
测试CTest
21
CPack打包
CPACK_XXX变量, cpack, ZIP/TGZ/DEB/RPM/NSIS
打包发布
22
自定义命令与目标
add_custom_command, add_custom_target, 构建时脚本
自定义构建
23
工具链与交叉编译
CMAKE_TOOLCHAIN_FILE, 编译器/链接器/系统根目录
交叉编译工具链
24
预设(Presets)
CMakePresets.json, 配置/构建/测试预设, CI/CD
预设CI
25
依赖管理
FetchContent, ExternalProject_Add, vcpkg/Conan
依赖包管理
26
IDE集成
Visual Studio, Xcode, CLion, VS Code 项目文件
IDE生成
27
调试CMake
message(), --trace, --trace-source, --find-package
调试诊断
28
性能优化
ccache, 并行编译, Unity Build, 减少重复配置
优化加速
29
最佳实践
目录规范, 避免全局污染, 版本管理, 模块化, 文档
规范工程
30
综合实战
从零构建中型C++项目:库、可执行、测试、安装、打包、CI
实战全流程