CMake跨平台构建从入门到精通
📚 共计 30 章节
第01章
CMake入门
CMake是什么 · 为什么需要CMake · 核心思想 · 安装与验证
概念
环境
第02章
第一个CMake项目
CMakeLists.txt · cmake_minimum_required · project · add_executable · 构建运行
实战
入门
第03章
CMake语法基础
注释 · 命令调用 · 变量 · 列表 · 流程控制 · 函数与宏
语法
核心
第04章
变量与缓存
普通/缓存/环境变量 · set/unset · 作用域 · ccmake
变量
缓存
第05章
列表操作
list命令详解 · APPEND/INSERT/REMOVE_ITEM/LENGTH/GET · 列表与字符串互转
列表
实用
第06章
数学与字符串
math · string (TOLOWER/TOUPPER/REPLACE/REGEX) · 文件路径操作
字符串
数学
第07章
文件操作
file命令 (READ/WRITE/APPEND/DOWNLOAD/GLOB/COPY) · 配置文件模板
文件
I/O
第08章
流程控制
if/elseif/else/endif · while · foreach · break/continue
逻辑
循环
第09章
函数与宏
function/macro定义 · 参数处理(ARGC/ARGV/ARGN) · return
函数
宏
第10章
目标与属性
add_executable/library · target_include/link · 目标属性
目标
属性
第11章
库的构建
静态/动态库 · SHARED/STATIC/MODULE/OBJECT · BUILD_SHARED_LIBS
库
构建
第12章
查找包
find_package · Find模块 · Config模式 · pkg-config · 编写Find模块
包管理
查找
第13章
生成器表达式
语法 · 条件表达式 · 目标相关 · 编译特性表达式
表达式
高级
第14章
编译选项与特性
target_compile_options/definitions/features · C++标准设置
编译
标准
第15章
安装与打包
install (TARGETS/FILES/DIRECTORIES/EXPORT) · CPack · 生成安装包
安装
打包
第16章
测试
enable_testing · add_test · CTest · 测试夹具 · 测试属性
测试
CTest
第17章
自定义命令与目标
add_custom_command/target · 生成源文件 · 构建后操作
自定义
构建
第18章
外部项目
ExternalProject_Add · FetchContent · 依赖管理 · 第三方库集成
外部
依赖
第19章
工具链与交叉编译
CMAKE_TOOLCHAIN_FILE · 系统/处理器检测 · 交叉编译器 · sysroot
交叉编译
工具链
第20章
预设与缓存
CMakePresets.json · CMakeUserPresets.json · 预设继承 · 缓存初始化
预设
缓存
第21章
模块化与组织
add_subdirectory · 子项目 · 目录作用域 · 变量传递 · 大型项目结构
模块
组织
第22章
接口库与别名
INTERFACE库 · ALIAS目标 · 纯头文件库 · 传递依赖
接口
别名
第23章
生成器
Visual Studio · Xcode · Ninja · Makefile · 生成器特定设置
生成器
IDE
第24章
平台检测
WIN32/APPLE/UNIX/LINUX · 编译器ID · 架构 · 操作系统版本
平台
检测
第25章
编译特性检测
CheckIncludeFile · CheckSymbolExists · CheckCXXCompilerFlag · CheckSourceCompiles
检测
特性
第26章
代码生成
configure_file · 模板文件 · 版本头文件 · 配置头文件
生成
模板
第27章
Sanitizer与调试
AddressSanitizer · UndefinedBehaviorSanitizer · ThreadSanitizer · 调试符号
调试
Sanitizer
第28章
性能优化
LTO/IPO · PCH预编译头 · Unity构建 · 并行构建 · ccache
优化
性能
第29章
IDE集成
VS Code · CLion · Visual Studio · Qt Creator · CMake Tools
IDE
集成
第30章
实战项目
从零构建跨平台C++项目 · 库+可执行+测试+安装+CPack+CI
实战
综合