基本信息
1. 目录结构
ucs
├── appBaseLibs # 应用框架基础库主目录
├── appExtension # 应用中可用于界面中配置加载的 QT UI 扩展库主目录
├── appFramework # 应用主功能业务逻辑框架插件主目录
├── appTest # 应用测试插件主目录
├── buildchain # 应用框架编译链主目录
├── cmake # cmake自定义函数模块目录
├── config # 应用框架编译配置文件目录
├── deploy # 应用部署文件目录
├── deps # 应用框架编译及运行时依赖库目录
├── doc # 文档目录
└── README.md # README.md文件
为了方便代码编译和管理, UCS对源码工程目录进行了一定的规划和设计. 如上所示.
appBaseLibs
存放本项目中开发的公共基础库, 比如在多个插件中都可以用到的eaEvent库.
其编译后的库和头文件需要安装到 ./deps/workspace/install 目录下, 可以供其他插件编译和运行时依赖.
appExtension
存放本项目中开发的QT UI扩展库, 编译后生成的库文件需要安装到 ./deploy/bin/app/models 目录下, 供QT插件框架加载.
appFramework
应用的各类主要功能和业务逻辑插件目录, 编译后需要对生成的插件库及其他指定资源通过bundle打包处理, 并将打包后的插件安装到 ./deploy/bin/app/bundles 目录. 应用运行时会自动将 bundles 目录下的插件提取到 ./deploy/bin/app/codeCache 缓存目录中进行加载.
appTest
应用测试插件目录, 编译后需要对生成的插件库及其他指定资源通过bundle打包处理, 并将打包后的插件安装到 ./deploy/bin/app/devbundles 目录. 应用运行时会自动将 devbundles 目录下的插件提取到 ./deploy/bin/app/codeCache 缓存目录中进行加载.
buildchain
UCS编译工具使用的是cmake, buildchain目录下存放不同平台下的cmake的编译工具链配置.
cmake
存放一些自定义的cmake函数模块等.
config
存放一些不同平台下的环境配置文件,如 Qt5DIR 主目录配置等.
deploy
应用的部署目录, 包括各类插件、配置文件、资源文件、运行脚本、日志文件等.
deps
应用框架编译及运行时依赖库目录. 其中
framework目录存放OSP等框架依赖库, 以及bundle打包工具等;
thridparty目录存放第三方开源库依赖库;
workspace目录存放UCS项目中开发的依赖库.
doc
文档目录.
2. 编译系统
UCS 编译系统使用的是 cmake , 为了方便每个插件或库都可以单独进行编译和打包, 每个插件或库都是独立的一个cmake工程, 并单独编写了cmake工程文件(CMakeLists.txt)、编译脚本(make.sh)以及打包脚本(bundle.sh). 同时也编写了统一的顶层编译脚本(make.sh), 方便统一编译和打包.
在appBaseLibs、appExtension、appFramework、appTest目录下均提供了统一编译脚本(make.sh)以及清理脚本(clean.sh).
3. 开发说明
在目前的功能和业务架构基础上, UCS 的开发类型大致可分为以下三类:
公共库, 作为其他库或插件的依赖.
OSP插件, 实现应用的某项功能或业务的独立模块, 可与其他插件进行服务调用和通信, 由OSP插件框架统一加载、启动、停止和卸载, 管理其生命周期.
QT插件库, 用于底盘、上桩等不同业务逻辑的定制, 可根据xml配置进行加载显示.
可根据具体业务需要, 选择合适的开发类型进行开发. 选定开发类型后可参考对应类型主目录下的样例工程, 进行项目的创建和开发, 目录分布如下:
公共库, 位于 appBaseLibs 目录.
OSP插件, 位于 appFramework 和 appTest 目录.
QT插件库, 位于 appExtension 目录.