CMake与CPack:从构建到打包的完全指南

📚 共计 30 章节
01
CMake初识
CMake是什么?为什么选择CMake?核心哲学与优势。
概念入门
02
环境搭建
CMake安装 (Win/Linux/macOS),工具链配置,IDE集成。
工具配置
03
第一个CMake项目
编写CMakeLists.txt,cmake配置构建,目录分离。
实战基础
04
CMake语法基础
注释、命令、变量、列表、流程控制、函数与宏。
语法核心
05
目标与属性
add_executable/add_library,目标属性查看与设置。
目标属性
06
库的构建与管理
静态/动态库,BUILD_SHARED_LIBS,版本号SOVERSION。
链接
07
头文件与包含路径
target_include_directories,PUBLIC/PRIVATE/INTERFACE。
头文件作用域
08
链接库与依赖管理
target_link_libraries,传递依赖,私有/公共库。
链接依赖
09
查找依赖包
find_package,Config/Module模式,FindXXX.cmake编写。
查找模块
10
生成器表达式
Generator Expressions基础,条件编译,$<...>语法。
表达式高级
11
编译选项与特性
target_compile_options/features,C++标准设置。
编译标准
12
自定义命令与目标
add_custom_command/target,构建中执行脚本。
自定义构建
13
安装规则
install命令详解,安装目标/文件/目录,CMAKE_INSTALL_PREFIX。
安装部署
14
测试框架集成
enable_testing,add_test,CTest集成与报告。
测试CTest
15
CPack入门
CPack是什么?工作流程,支持格式 (ZIP/TGZ/DEB/RPM/NSIS)。
打包CPack
16
CPack配置基础
CPACK_GENERATOR,CPACK_PACKAGE_NAME,版本等核心变量。
配置变量
17
CPack与安装规则联动
基于cmake --install,安装规则是打包的前提。
联动原理
18
CPack生成器详解 (上)
ZIP/TGZ配置,跨平台压缩包,权限与符号链接。
ZIPTGZ
19
CPack生成器详解 (下)
DEB/RPM配置,依赖声明,维护者脚本。
DEBRPM
20
CPack生成器详解 (NSIS)
Windows安装包,NSIS模板,快捷方式与菜单。
NSISWindows
21
CPack组件安装
COMPONENT参数,CPACK_COMPONENTS_ALL,按组件打包。
组件模块
22
CPack变量与高级配置
图标,许可证,CPACK_STRIP_FILES等高级变量。
高级定制
23
CPack与CTest集成
打包前自动测试,CPACK_INSTALL_CMAKE_PROJECTS使用。
集成自动化
24
多配置生成器
CMAKE_CONFIGURATION_TYPES,Debug/Release打包。
多配置类型
25
跨平台构建策略
工具链文件,交叉编译场景下CMake/CPack配置。
交叉编译工具链
26
大型项目组织
add_subdirectory,CMakeLists.txt拆分,include复用。
结构模块
27
FetchContent与外部依赖
FetchContent模块,自动下载第三方库,对比find_package。
依赖Fetch
28
性能优化与调试
--trace/--debug-output,并行构建,ccache集成。
调试优化
29
CI/CD中的CMake与CPack
GitHub Actions/GitLab CI配置,自动测试与发布。
CI/CD自动化
30
实战案例:完整C++项目
源码组织、单元测试、文档生成到多平台打包发布。
实战全流程