OpenHarmony鸿蒙硬件Hi3861-构建系统-BUILD.gn(applications\sample\wifi-iot\app)文件结构解释

说明

本文解释下面路径的 BUILD.gn 文件各部分

\applications\sample\wifi-iot\app\BUILD.gn

内容如下:

import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
        "code_v2.0/std_03:hello_demo",
    ]
}

整体作用

这个BUILD.gn文件是OpenHarmony轻量系统(如Hi3861开发板)中用于 管理应用组件集合 的配置文件

核心作用:指定哪些功能模块需要被 编译并集成到最终固件中

1. import("//build/lite/config/component/lite_component.gni")

作用:导入OpenHarmony轻量系统提供的“组件模板”(lite_component.gni)。

  • 这个模板封装了轻量系统中“组件定义”的通用规则,允许开发者通过lite_component关键字快速定义一个可被系统识别的组件,无需手动编写复杂的构建逻辑。

  • 路径//表示OpenHarmony源码的根目录,build/lite/config/component/是系统内置构建配置的固定路径。

2. lite_component("app") { ... }

  • lite_component:这是从上面导入的模板中提供的关键字,用于定义一个“轻量系统组件”(适用于Hi3861等资源受限设备)。

  • "app":当前组件的名称(可自定义,通常表示“应用程序集合”),构建系统会通过这个名称识别该组件。

  • 大括号{ ... }内是组件的具体配置,核心字段是features。

3. features = [ ... ]

  • 作用:指定当前组件("app")包含哪些“子功能模块”,这些模块会被构建系统编译并最终打包到固件中。
  • 列表中的每一项是一个“模块路径”,格式为:"相对路径或绝对路径:模块名",表示“引入指定路径下的某个模块”。

总结:

它是一个“组件清单”,通过features列表决定哪些应用模块(如MQTT demo、OLED demo等)会被包含在最终的固件中。开发者可以通过注释/取消注释列表中的项,快速切换需要编译的功能(无需修改模块源码,只需调整配置),这在多功能测试或版本裁剪时非常方便。

例如,当前配置仅启用了code_v2.0/std_20mqqt目录下的ems模块,其他模块(如LED、WiFi、OLED相关)均被注释,因此构建时只会编译ems模块对应的功能。


原文出处:/show_1GW2DgFvvEje.html