README.md
1# components_deps_analyzer.py
2
3## 功能介绍
4
5基于vendor下的config.json、xml文件中的开源部件集、BUILD.gn文件,分析是否存在对闭源部件的依赖以及是否存在对非必选部件的无条件依赖。
6
7结果以json格式进行存储。
8
9## 支持产品
10
11config.json文件主要是关于rk3568系列,已测试产品包括rk3568、rk3568_mini_system、pc_mini_system、tablet_mini_system、phone_mini_system的config.json文件
12
13## 使用说明
14
15前置条件:
16
171. 获取BUILD.gn文件
181. 获取包含开源部件集的xml文件
191. 获取包含部件集定义的config.json文件
201. 获取BUILD.gn文件对应的name
21
22命令介绍:
23
241. `-h`或`--help`命令查看帮助
25 ```shell
26 > python components_deps_analyzer.py --help
27 usage: components_deps_analyzer.py [-h] -p COMPONENTS_GN_PATH_LIST -g GN_NAME -c CONFIG_PATH -o OPEN_COMPONENT_XML_PATH [-r RESULT_JSON_NAME]
28
29 analyze components deps.
30
31 optional arguments:
32 -h, --help show this help message and exit
33 -p COMPONENTS_GN_PATH_LIST, --components_gn_path_list COMPONENTS_GN_PATH_LIST
34 path of pr BUILD.gn
35 -g GN_NAME, --gn_name GN_NAME
36 gn file corresponding name
37 -c CONFIG_PATH, --config_path CONFIG_PATH
38 path of config_file
39 -o OPEN_COMPONENT_XML_PATH, --open_component_xml_path OPEN_COMPONENT_XML_PATH
40 open component name set
41 -r RESULT_JSON_NAME, --result_json_name RESULT_JSON_NAME
42 name of output_json
43
44
45 ```
461. 使用示例
47 ```shell
48 python components_deps_analyzer.py -p BUILD.gn,pkgs/BUILD.gn -g third_party_curl,third_party_zlib -c config_path -o .\gn_xml\ohos.xml
49 ```
50
51## 输出格式介绍(result.json)
52
53```
54[
55 {
56 "file_path": BUILD.gn文件路径,
57 "error": [
58 {
59 "line": 行号,
60 "code": 行号对应代码,
61 "rule": 触发规则,
62 "detail": 详细说明
63 },
64 ...
65 ]
66 },
67 ...
68]
69```