CMake Cookbook recipes.
当前项目代码仓暂无内容
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
CMake Cookbook
这个仓库汇集了由Packt出版社出版的《CMake Cookbook》一书中各章节示例的源代码,该书作者是Radovan Bast和Roberto Di Remigio。
目录
第1章:从简单的可执行文件到库
- 1. 将单个源文件编译为可执行文件
- 2. 切换生成器
- 3. 构建和链接静态库与动态库
- 4. 使用条件控制编译
- 5. 向用户提供选项
- 6. 指定编译器
- 7. 切换构建类型
- 8. 控制编译器标志
- 9. 设置语言标准
- 10. 使用流程控制构造
第2章:检测环境
第3章:检测外部库和程序
- 1. 检测Python解释器
- 2. 检测Python库
- 3. 检测Python模块和包
- 4. 检测BLAS和LAPACK数学库
- 5. 检测OpenMP并行环境
- 6. 检测MPI并行环境
- 7. 检测Eigen库
- 8. 检测Boost库
- 9. 检测外部库:使用
pkg-config - 10. 检测外部库:编写find-module
第4章:创建和运行测试
- 1. 创建简单单元测试
- 2. 使用Catch2库定义单元测试
- 3. 使用Google Test库定义单元测试
- 4. 使用Boost.Test库定义单元测试
- 5. 使用动态分析检测内存缺陷
- 6. 测试预期失败
- 7. 对长时间测试设置超时
- 8. 并行运行测试
- 9. 运行子集测试
- 10. 使用测试工装
第5章:配置时间和构建时间操作
- 1. 使用跨平台文件操作
- 2. 配置时运行自定义命令
- 3. 构建时运行自定义命令:I. 使用
add_custom_command - 4. 构建时运行自定义命令:II. 使用
add_custom_target - 5. 对特定目标在构建时运行自定义命令
- 6. 探查编译和链接
- 7. 探查编译器标志
- 8. 探查执行
- 9. 使用生成器表达式精细化配置和编译
第6章:生成源代码
- 1. 配置时生成源文件
- 2. 使用Python在配置时生成源代码
- 3. 使用Python在构建时生成源代码
- 4. 记录项目版本信息以实现可重现性
- 5. 从文件中记录项目版本
- 6. 在配置时记录Git哈希值
- 7. 在构建时记录Git哈希值
第七章:构建项目结构
- 1. 使用函数和宏实现代码重用
- 2. 将 CMake 源文件拆分为模块
- 3. 编写测试并设置编译器标志的函数
- 4. 带命名参数定义函数或宏
- 5. 重新定义函数和宏
- 6. 废弃函数、宏和变量
- 7. 利用
add_subdirectory限制作用域 - 8. 使用
target_sources避免全局变量 - 9. 整理 Fortran 项目
第八章:超构建模式
第九章:混合语言项目
- 1. 构建使用 C/C++ 库的 Fortran 项目
- 2. 构建使用 Fortran 库的 C/C++ 项目
- 3. 使用 Cython 构建 C++ 和 Python 项目
- 4. 使用 Boost.Python 构建 C++ 和 Python 项目
- 5. 使用 pybind11 构建 C++ 和 Python 项目
- 6. 使用 Python CFFI 混合 C, C++, Fortran 和 Python 项目
第十章:编写安装程序
第十一章:打包项目
- 1. 生成源码包和二进制包
- 2. 通过 PyPI 分发由 CMake 和 pybind11 构建的 C++/Python 项目
- 3. 通过 PyPI 分发由 CMake/CFFI 构建的 C/Fortran/Python 项目
- 4. 将简单项目作为 Conda 包分发
- 5. 将带有依赖的项目作为 Conda 包分发
第十二章:构建文档
第十三章:替代生成器与交叉编译
第十四章:测试仪表板
- 1. 向 CDash 仪表板部署测试
- 2. 向 CDash 仪表板报告测试覆盖率
- 3. 使用 AddressSanitizer 并向 CDash 报告内存缺陷
- 4. 使用 ThreadSanitizer 并向 CDash 报告数据竞争