OpenHarmony的编译构建体系比较复杂,涉及的编译目标及用到的编译工具也比较多,本节尝试从3个不同的角度对此进行介绍。
编译构建所用到的工具如表2-2所示。
表2-2 编译构建所用到的工具
系列Python脚本的作用如表2-3所示。
表2-3 系列Python脚本的作用
其中非常重要的是product目录下的JSON配置文件,相关配置如下:
其中,约定了开发板类型、内核类型、编译器,然后定义了需要的subsystem。对于每个subsystem,又定义了其包含的component,以及每个component所附带的编译feature。
另外一个重要的构建配置文件是config.ini。在这个文件中,配置了各个工具链所在的路径。同时也定义了在进入每个子系统构建时所使用的Gn及Ninjia工具的命令格式。另外,这个配置文件还定义了测试构建对象及ndk构建对象。
OpenHarmony采用的编译器为LLVM。需要注意的是,华为LLVM进行了修改适配,需要从OpenHarmony的repo库下载对应的修改后的LLVM。