本章的主要内容如下:
- 使用函数和宏重用代码
 - 将CMake源代码分成模块
 - 编写函数来测试和设置编译器标志
 - 用指定参数定义函数或宏
 - 重新定义函数和宏
 - 使用废弃函数、宏和变量
 - add_subdirectory的限定范围
 - 使用target_sources避免全局变量
 - 组织Fortran项目
 
前几章中,我们已经使用了一些CMake构建块来配置和构建的项目。本章中,我们将讨论如何组合这些构建块,并引入抽象,并最小化代码重复、全局变量、全局状态和显式排序,以免CMakeLists.txt文件过于庞大。目标是为模块化CMake代码结构和限制变量范围提供模式。我们将讨论一些策略,也将帮助我们控制中大型代码项目的CMake代码复杂性。
