DFCC/C++项目开发框架
DFC是Dust、Farm和Crop的缩写,为C/C++项目提供了一个开发流。概括地说,Dust是平台源码,Farm是开发平台,Crop是运行环境。首先,Dust是一个基础模块的集合,如通信模块、日志模块、错误管理模块、与外部通讯模块等,用户可以很方便的集成新的模块到Dust中。通过执行Dust中的脚本,可以很方便的生成一个名为Farm的开发平台。Farm提供了简单的接口让用户增加自己的业务代码,通过执行Farm中的脚本,可以生成可执行程序,并将可执行程序、配置文件、辅助工具等打包为发布介质Crop。解压后的Crop将是一个完整的运行环境。
DFC使用一个全局唯一的配置文件dfc.conf,包含各个子模块的配置信息,dust、farm和crop均使用该配置文件。
dust和farm均使用各自build目录下的build.sh脚本完成可执行文件及下游平台的生成。
DFC大体的目录结构:
[root@localhost dust]# tree -L 2
.
|-- README
|-- build
| `-- build.sh //编译dust、发布farm等,输入./build.sh help可得到较为详尽的帮助信息
|-- moduleComm //子模块--通信
|-- moduleErr //子模块--错误管理
|-- moduleLg //子模块--与外部通讯
|-- moduleLog //子模块--日志
|-- moduleMem //子模块--内存泄漏查找
|-- moduleTools //子模块--常用工具库
|-- script //包含各种有用的脚本
`-- platform
|-- dfc.conf //DFC平台唯一的配置文件
|-- main.c //dust平台总模块--源文件
|-- main.h //dust平台总模块--头文件
|-- userapp.c //demo--源文件
|-- userapp.h //demo--头文件
|-- crop_README //crop的README
|-- crop_install.sh //crop的安装脚本
|-- dust2farm.sh //dust到farm的打包脚本,由build.sh调用
|-- farm2crop.sh //farm到crop的打包脚本,由farm_build.sh调用
|-- farm_README //farm的README
|-- farm_build.sh //farm的编译脚本
|-- farm_CMakeLists.txt //farm的cmake总配置文件
`-- farm_src_CMakeLists.txt //farm的cmake用户配置文件
一个较为完整的开发过程如下:
(Dust开发者)
dust_1.0.0 --> ./build.sh dust --> dfc(测试demo) --> 开发完成 --> ./build.sh farm --> farm_1.0.0.tar.gz
(Farm开发者)
farm_1.0.0.tar.gz --> farm_1.0.0 --> ./build.sh farm --> dfc(测试demo) --> 开发完成 --> ./build.sh crop --> crop_1.0.0.tar.gz
(运维人员)
crop_1.0.0.tar.gz --> crop_1.0.0 --> ./install.sh --> 完整的运行环境