当前位置:   article > 正文

harmonyOS编译流程_harmony os build

harmony os build

在编译的时候,需要扫描相应的子系统配置文件,子系统配置文件包含以下三个文件,定义了子系统的名称和所在路径。

  1. build文件夹下的subsystem_config.json文件,主要包含子系统名称与路径信息,在preloader阶段被加载,根据子系统名称和路径信息查找该路径下的ohos.build文件。
  2. product配置文件,在productdefine/common/products文件夹下,文件名为{产品名称}.json,在preloader阶段被加载。该配置文件主要包含产品名称,产品厂商,产品设备名,产品类型,产品对应子系统路径,产品所包含的部件等信息。配置该产品对应子系统时在该文件中添加product_build_path表示产品子系统目录,preloader阶段从该目录下加载对应子系统部件配置信息。
  3. device配置文件,在productdefine/common/device文件夹下,文件名为{产品设备名称}.json,在preloader阶段被加载。该配置文件主要包含设备名称,设备厂商,设备的目标os与目标cpu,设备对应子系统路径等信息。配置该设备对应子系统时在该文件中添加device_build_path表示设备子系统目录,preloader阶段从该目录下加载对应子系统部件配置信息。

现在支持在产品和设备配置的时候添加产品和设备对应的子系统路径,扫描时扫描对应目录下的子系统部件配置信息。

1、 gn gen
2、通过–dotfile指定根gn文件 build/lite/.gn
.gn文件的内容
**The location of the build configuration file. #1.完成gn的配置工作
buildconfig = “//build/lite/config/BUILDCONFIG.gn”
**The source root location. #2.完成gn的编译工作
root = “//build/lite”
3、构建编译 build/lite/BUILD.gn
有三个概念贯彻整个鸿蒙系统,子系统(subsystems),组件(components),功能(features).
先找到product_path下的 配置文件 config.json,里面配置了项目所要使用的子系统和组件.
再遍历项目所使用的组件是否能再 //build/lite/components/*.json组件集中能找到.
将找到的组件targets加入到编译列表deps中.targets指向了要编译的组件目录.例如内核组件时指向了://kernel/liteos_a:kernel,
4、结果文件
那么执行完gn gen 都会生成哪些文件和目录呢?
out/rk3568/
args.gn build.ninja build.ninja.d toolchain.ninja
其中build.ninja.d文件是所有BUILD.gn的依赖集合

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/265717
推荐阅读
相关标签
  

闽ICP备14008679号