由于各个芯片厂商发布SDK所使用的编译方式各不相同,开发者在开发过程中需要学习和适应不同编译环境,导致开发精力被分散。OneOS环境可以编译其他SDK应用代码,让开发者忽略编译影响,从而将精力聚焦在功能开发中。是不是很香~那么下面就跟着小编以展锐8910DM为例,学习如何把第三方SDK导入OneOS编译系统吧!
注意:以下分析基于8910_Module_V1.4和OneOS 2.0版本。
在正式导入前,让我们一起来了解第三方编译规则和OneOS Scons编译框架。
第三方编译规则
8910DM SDK使用的是cmake/ninja编译工具,它的编译脚本launch.bat首先配置了环境变量、编译链接工具、创建编译输出目录等:
为了保持SDK编译一致性,这些工具同样需要在OneOS中使用。接下来查看SDK编译链接目标及其规则。
cmake编译命令会把编译规则做初步解析,拷贝一些cmake文件,创建编译目标文件夹,并将原来的cmake编译规则转成ninja编译规则。cmake规则文件是CMakeLists.txt,而ninja 是build.ninja和rules.ninja。直接从build.ninja中可以找到链接目标及规则,例如编译C文件:
链接库文件:
Ninja编译使用的都是自定义命令,具体定义位于rules.ninja,如下:
build.ninja的语法规则比较直白,build后面跟着目