|
@@ -1,29 +1,43 @@
|
|
|
-## 首先说明
|
|
|
+# 信创版本厂商源码编写事项
|
|
|
|
|
|
-* DeviceAdapter/CMakeLists.txt **不允许改动**
|
|
|
-* DeviceAdapter/include **文件夹内容不允许改动**,主要是我行提供的适配器头文件
|
|
|
-* `RVC_INTEGRATE_BUILD`用于判断是否处于我行集成编译环境,厂商在编写 CMakeLists.txt 文件时,对于一些输出逻辑的声明等,可以通过 `if(NOT RVC_INTEGRATE_BUILD)`来添加自己的逻辑
|
|
|
-* 其他注意事项请看模板内相关 CMakeLists.txt 的注释内容和编码规范文档
|
|
|
+**版本**:V1.0.0
|
|
|
+
|
|
|
+**最后更新日期**:2020年12月8日19点39分
|
|
|
+
|
|
|
+## 首要说明
|
|
|
+
|
|
|
+* **不允许改动 **DeviceAdapter/CMakeLists.txt
|
|
|
+* **不允许改动 **DeviceAdapter/include 文件夹内容,主要是我行提供的适配器头文件
|
|
|
+* **厂商文件夹**(*比如DevAdapter/keba*)下的任何内容均可以改动,只要你清楚你改动内容会造成哪些影响,但是有些要求声明的语句必须要保留(详见提供的Demo文件夹 cmbsz)
|
|
|
+
|
|
|
+## 特别说明
|
|
|
+
|
|
|
+* `rvc_dev_target_install`语句调用
|
|
|
+ * 第一次说明的时候要求所有的适配器和提供源码的依赖库的CMakeLists.txt文件的最后必须加上面这条语句
|
|
|
+ * 现更正为:**如果生成的时静态库文件(.a类型文件),则无需添加此条语句!!!!**
|
|
|
|
|
|
## 编译模式
|
|
|
|
|
|
* 通过CMake管理构建和编译
|
|
|
-* 我行编译环境与其他编译环境通过`RVC_INTEGRATE_BUILD`判断
|
|
|
+* 我行编译环境与其他编译环境的区分通过`RVC_INTEGRATE_BUILD`判断
|
|
|
+ * `RVC_INTEGRATE_BUILD`用于判断是否处于我行集成编译环境,厂商在编写 CMakeLists.txt 文件时,对于一些输出逻辑的声明等,可以通过 `if(NOT RVC_INTEGRATE_BUILD)`来添加自己的逻辑
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
### 我行编译环境的特殊点
|
|
|
|
|
|
-我行的源码管理工具不允许上传二进制库文件(主要是**.so**库),为更好的管理厂商提供的库文件,我们会将厂商提供的几个文件夹:
|
|
|
+#### 库管理
|
|
|
+
|
|
|
+我行的源码管理工具不允许上传二进制库文件(主要是**.so**库),为更好的管理厂商提供的库文件,行内在编译之前会将厂商提供的几个文件夹:
|
|
|
|
|
|
* assets
|
|
|
* lib
|
|
|
* bin
|
|
|
* include
|
|
|
|
|
|
-移动要其他地方管理,其他适配器工程文件夹和deps文件夹保持不变
|
|
|
+剪切到他处进行管理,其他适配器工程文件夹和deps文件夹保持不变
|
|
|
|
|
|
-所以厂商在引用上诉这些文件目录的路径时,无比使用我们提供的宏,见[路径引用请使用我们提供的宏,不要用`.`开头的相对路径,更不要使用绝对路径](#路径引用请使用我们提供的宏,不要用`.`开头的相对路径,更不要使用绝对路径)
|
|
|
+所以厂商在引用上诉这些文件目录的路径时,务必请使用我们提供的宏,而不要使用相对路径,见[路径引用请使用我们提供的宏,不要用`.`开头的相对路径,更不要使用绝对路径](#路径引用请使用我们提供的宏,不要用`.`开头的相对路径,更不要使用绝对路径)
|
|
|
|
|
|
|
|
|
|
|
@@ -45,9 +59,9 @@ target_link_directories
|
|
|
|
|
|
这种声明的作用范围是针对工程目标的
|
|
|
|
|
|
-### 已部分引入头文件目录和链接库目录,厂商无需单独引入
|
|
|
+### 已引入部分头文件和链接库目录,厂商无需单独引入
|
|
|
|
|
|
-已声明在我行定义的`rvc_dev_config_library`CMake宏里,主要有:
|
|
|
+已声明在我行定义的`rvc_dev_config_library`CMake宏里,已经对当前工程目标引入了如下路径:
|
|
|
|
|
|
* 头文件目录
|
|
|
|
|
@@ -63,9 +77,9 @@ DevAdapter/lib/gcc_aarch64
|
|
|
DevAdapter/{厂商文件夹}/lib/gcc_aarch64
|
|
|
```
|
|
|
|
|
|
-### 路径引用请使用我们提供的宏,不要用`.`开头的相对路径,更不要使用绝对路径
|
|
|
+### 路径引用请使用我们提供的宏,不要用`..`开头的相对路径,更不要使用绝对路径
|
|
|
|
|
|
-宏定义如下:
|
|
|
+行内提供的宏定义如下:
|
|
|
|
|
|
* **DEVADAPTER_CURRENT_INCLUDES_DIR**
|
|
|
* 实际指向:**`/DevAdapter/include`**
|
|
@@ -95,11 +109,29 @@ DevAdapter/{厂商文件夹}/lib/gcc_aarch64
|
|
|
* 实际指向:**`/DevAdapter/{当前厂商目录}/bin/gcc_aarch64`**
|
|
|
* 说明:存放当前厂商提供的执行库文件,Linux下一般不应该有,安装时会拷贝到我行应用程序运行目录的dep文件夹下
|
|
|
|
|
|
+## 大小写敏感
|
|
|
+
|
|
|
+* **适配器文件名**:适配器名称请以提供的Demo适配器名称为准,不要随意改动
|
|
|
+* **厂商名称**:厂商名称一旦确定,就不可更改
|
|
|
|
|
|
+```cmake
|
|
|
+rvc_dev_define_module("{此处填写的适配器名称需注意}")
|
|
|
+set(${MODULE_PREFIX}_VENDOR "{当前厂商名称}")
|
|
|
+```
|
|
|
+
|
|
|
+| 厂商 | 简称 |
|
|
|
+| ---- | ------- |
|
|
|
+| 科堡 | keba |
|
|
|
+| 南天 | nantian |
|
|
|
+| 广电 | grg |
|
|
|
+| 恒银 | cw |
|
|
|
+| 长城 | gwi |
|
|
|
+
|
|
|
+厂商文件夹名称、适配器的`Vendor`字段请与如上表格保持一致。
|
|
|
|
|
|
## 错误示范
|
|
|
|
|
|
-下方是在某个适配器工程的CMakeLists.txt文件的一部分
|
|
|
+下方是在某个适配器工程的CMakeLists.txt文件的一部分内容:问题详见注释处
|
|
|
|
|
|
```cmake
|
|
|
set(INCLUDE_PINPAD ../../include
|
|
@@ -125,3 +157,16 @@ link_directories(${VENDOR_CURRENT_LIB_DIR})
|
|
|
# 2. 不能使用 link_directories,改用 target_link_directories
|
|
|
```
|
|
|
|
|
|
+其他注意事项请看模板内相关 CMakeLists.txt 的注释内容和编码规范文档
|
|
|
+
|
|
|
+## 提交要求
|
|
|
+
|
|
|
+1. 仅需提供厂商文件夹,无需提供整个DevAdapter文件夹
|
|
|
+
|
|
|
+2. 提供的厂商文件夹以厂商名称命名,而不是我行提供的Demo名称”cmbsz"
|
|
|
+
|
|
|
+3. 提供的内容注意去掉无关文件:生成的日志文件、CMake构建残留文件、有源码的适配器库生成文件或依赖库文件、我行提供的Demo(空文件夹也不允许,没用就删掉)
|
|
|
+
|
|
|
+4. 【新】厂商文件夹首层目录提供**CHANGELOG**文件,该文件需要记录几个重要元素:版本变更记录,提交日期,版本号等
|
|
|
+
|
|
|
+
|