移植案例与原理 - build lite配置目录全梳理

命令行工具hb(HarmonyOS|OpenHarmony Build 编译构建系统的缩写)都很熟悉了。这是一个基于gn和ninja的构建系统,以支持OpenHarmony组件化开发为目标,提供以下基本功能:

  • 支持按组件拼装产品并编译。

  • 独立构建芯片解决方案厂商源码。

  • 独立构建单个组件

工具hb对应的开源代码仓为build lite,代码目录如下:

build/lite
├── components                  # 组件描述文件
├── figure                      # readme中的图片
├── hb                          # hb pip安装包源码
├── make_rootfs                 # 文件系统镜像制作脚本
├── config                      # 编译配置项
│   ├── component               # 组件相关的模板定义
│   ├── kernel                  # 内核相关的编译配置
│   └── subsystem               # 子系统编译配置
├── platform                    # ld脚本
├── testfwk                     # 测试编译框架
└── toolchain                   # 编译工具链配置,包括:编译器路径、编译选项、链接选项等

本文主要梳理build lite 轻量级编译构建系统涉及的配置目录。有些知识点,只能从代码中获取,官方文档里没有提供很详细的说明,希望此文可以对此进行补充。

我们先看些相关的文件的代码片段。

1、build\lite\ohos_var.gni

文件build\lite\ohos_var.gni定义了所有部件的全局变量,该文件还用于读取产品解决方案的配置文件config.json中的配置项,解析为gn变量。该文件被文件
openharmony\build\lite\config\BUILDCONFIG.gn包含导入import。该文件的代码片段如下,我们主要看下配置的目录。⑴处表明如果产品解决方案的配置文件config.json中定义了“vendor_adapter_dir”,则环境变量ohos_vendor_adapter_dir、ohos_board_adapter_dir均设置为所配置的目录。这个是开发板适配目录,从代码中的注释“To be deleted, and will use board config.”可以看出,不建议使用这个配置项,要删除,只是为了兼容,还在继续保留着吧。实现同样功能的配置项是开发板配置文件config.gni中的配置项board_adapter_dir,下文会详细分析。

⑵处为产品适配目录“product_adapter_dir”,一些和产品相关的需要适配的部件,会把适配文件放在在配置的目录内。⑶处third_party_dir用于维护第三方软件的目录,虽然我们都知道openharmony的第三方目录为third_party,部分子系统部件需要明确的指定这个目录。

    if (product_path != "") {
    product_config = read_file("${product_path}/config.json", "json")

    # Board selected by product.
    board_name = product_config.board
    device_company = product_config.device_company

    # Supported kernel: "liteos_a", "liteos_m", "linux"
    ohos_kernel_type = product_config.kernel_type
    if (defined(product_config.kernel_is_prebuilt)) {
        ohos_kernel_is_prebuilt = product_config.kernel_is_prebuilt
    }

    # To be deleted, and will use board config.
⑴  if (defined(product_config.vendor_adapter_dir)) {
        ohos_vendor_adapter_dir = product_config.vendor_adapter_dir
        ohos_board_adapter_dir = ohos_vendor_adapter_dir
    }
⑵  ohos_product_adapter_dir = product_config.product_adapter_dir
⑶  ohos_third_party_dir = product_config.third_party_dir
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值