CMake包管理与依赖查找实战

📚 共计 30 章节
01
CMake初识
什么是CMake · CMake与Makefile的关系 · 核心价值 · 安装CMake
入门概念
02
第一个CMake项目
创建CMakeLists.txt · cmake_minimum_required · project · add_executable · 构建与运行
实战Hello
03
CMake基础语法
注释 · 变量 · 列表 · 命令调用 · 条件判断 · 循环
语法核心
04
CMake变量与缓存
普通变量 · 缓存变量 · 环境变量 · set与unset · 变量作用域
变量缓存
05
生成器与构建类型
生成器概念 · Visual Studio · Unix Makefiles · Ninja · CMAKE_BUILD_TYPE
生成器构建
06
CMake目标与属性
目标概念 · 目标属性 · set_target_properties · get_target_properties · 目录属性
目标属性
07
库的创建与链接
add_library · 静态/动态库 · target_link_libraries · PUBLIC/PRIVATE/INTERFACE
链接
08
CMake头文件管理
target_include_directories · SYSTEM关键字 · 生成器表达式
头文件包含
09
CMake查找依赖
find_package基础 · Module模式与Config模式 · FindXXX.cmake脚本
查找依赖
10
CMake Config模式
Config模式原理 · <Package>Config.cmake文件 · find_package搜索路径
Config进阶
11
编写Config文件
configure_package_config_file · write_basic_package_version_file · 安装Config文件
打包Config
12
CMake FetchContent
FetchContent_Declare · FetchContent_MakeAvailable · 管理外部依赖
获取外部
13
CMake ExternalProject
ExternalProject_Add · 下载 · 补丁 · 构建外部项目
外部项目构建
14
CMake CPM
CPM.cmake简介 · CPMAddPackage · 轻量级依赖管理
CPM轻量
15
CMake vcpkg
vcpkg集成 · CMAKE_TOOLCHAIN_FILE · 查找vcpkg包
vcpkg包管理
16
CMake Conan
Conan基础 · conanfile.txt · CMakeDeps生成器 · 集成到CMake
Conan依赖
17
CMake Hunter
Hunter包管理器 · HunterGate · hunter_add_package
Hunter包管理
18
子目录与嵌套项目
add_subdirectory · 子项目隔离 · target_scope
嵌套结构
19
接口库与对象库
INTERFACE库 · OBJECT库 · 纯头文件库管理
接口对象
20
生成器表达式
$<...>语法 · 条件编译 · 平台判断 · 配置判断
表达式高级
21
自定义命令与目标
add_custom_command · add_custom_target · 构建后处理
自定义构建
22
安装与打包
install命令 · CPack配置 · 生成安装包
安装CPack
23
测试集成
enable_testing · add_test · CTest · 测试依赖管理
测试CTest
24
第三方库实战
Boost · OpenCV · Eigen · fmt库的查找与集成
实战第三方
25
跨平台编译
平台判断 · 编译器检测 · 系统库查找 · 跨平台注意事项
跨平台兼容
26
CMake与Python集成
find_package(Python) · pybind11 · 构建Python扩展
Pythonpybind11
27
CMake与CUDA
enable_language(CUDA) · CUDA架构设置 · 混合编译
CUDAGPU
28
性能优化
并行构建 · ccache集成 · 预编译头文件 · 构建分析
优化ccache
29
最佳实践
项目结构规范 · 变量命名 · 模块化设计 · 文档生成
规范结构
30
实战项目
从零构建完整C++项目 · 依赖管理 · 测试 · 安装 · 打包
综合项目