1.5.4.2 hb set流程
源码:
def run(self):
if not self.args_dict['all'].arg_value:
self.set_product()
self.set_parameter()
如果没有参数all,则需要选择product,并处理参数。
def set_product(self):
self.args_resolver.resolve_arg(self.args_dict['product_name'], self)
def set_parameter(self):
self.args_resolver.resolve_arg(self.args_dict['all'], self)
arg解析函数:
-
product_name : resolve_product_name()
处理流程
生成的配置文件位于
- out/hb_args/buildargs.json
- out/hb_args/setdargs.json
- ohos_config.json
-p参数如果为空,通过menu菜单选择产品,否则,获取产品信息,出错则退出。
-
-
获取产品信息
-
获取产品信息源码位于build/hb/util/product_util.py,get_product_info()流程:
分析两个目录下的配置json,匹配产品名称和公司名称:
厂商配置目录vendor
鸿蒙内置配置目录productdefine/common/products
-
-
获取设备信息
-
获取设备信息源码位于build/hb/util/product_util.py,get_device_info()流程:
分析产品信息的json文件,从中获取设备信息。
-
-
菜单menu
-
menu源码位于/build/hb/services目录下:
./build/hb/services/
├── interface
│ ├── menu_interface.py
├── menu.py
选择产品select_product函数流程
-
all : resolve_set_parameter()
处理流程:
-
-
选择编译选项
-
选择编译选项的源码位于build/hb/services/menu.py,函数名select_compile_option(),流程:
参数及可选值:
target_cpu:arm,arm64,x86_64,x64
target_os:android,ios
build_type: release,profile,debug
log_level:info,debug
runtime_mode:release,debug,profile
build_variant:user,root