CMake模块处理流程:文件查找、解析与加载
该思维导图描述了一个模块处理流程。流程首先清空模块列表`ALL_MODULES`,然后递归查找`local.cmake`文件。 对于每个找到的`local.cmake`文件,读取其内容,检查`MODULE_START`和`MODULE_END`标记是否成对出现。若成对出现,则分割成多个模块定义块,每个块写入临时文件并包含执行,创建模块结构体,填充属性,添加到`ALL_MODULES`,最后删除临时文件。若标记不成对,则流程终止。 整个流程通过循环遍历所有`local.cmake`文件和模块定义块来完成模块的加载和处理。
源码
# CMake模块处理流程
## 开始流程 A
### 初始化模块处理 B
#### 清空 ALL_MODULES C
#### 文件查找 D
##### file GLOB_RECURSE 查找 local.cmake 文件 E
###### 记录查找结果 F
## 遍历 local.cmake 文件 G
### 获取模块信息 H
#### 获取模块目录名 I
#### 获取文件名 J
## 文件内容处理 K
### 读取 local.cmake 文件内容 L
### 模块标记检查 M
#### 检查 MODULE_START 和 MODULE_END 是否成对 N
##### 至少存在一对 O
###### 标记不成对 Z
###### 标记成对 P
## 模块分割与处理 Q
### split_module_cmake 分割模块定义块 R
### 遍历每个模块定义块 S
#### 处理模块定义块 T
##### 创建临时文件 U
##### 写入模块定义块到临时文件 V
##### include 包含临时文件 W
##### 创建模块结构体 X
##### fill_module_attribute 填充模块属性 Y
##### 将模块结构体添加到 ALL_MODULES 列表 Z
##### 删除临时文件 AA
##### 返回遍历模块定义块 S
#### 完成模块处理 AB
## 继续遍历 local.cmake 文件 AC
### 处理完所有文件 AD
图片
