Lines Matching refs:self

37     def __init__(self):
39 self.source_root_dir = ""
40 self.gn_root_out_dir = ""
41 self.os_level = ""
42 self.target_cpu = ""
43 self.target_os = ""
44 self.config_output_relpath = ""
45 self.config_output_dir = ""
46 self.target_arch = ""
47 self.subsystem_config_file = ""
48 self.subsystem_config_overlay_file = ""
49 self.platforms_config_file = ""
50 self.exclusion_modules_config_file = ""
51 self.example_subsystem_file = ""
52 self.build_example = ""
53 self.scalable_build = ""
54 self.build_platform_name = ""
55 self.build_xts = ""
56 self.ignore_api_check = ""
57 self.load_test_config = ""
58 self.subsystem_configs = ""
59 self._subsystem_info = ""
60 self.skip_partlist_check = ""
62 def __post_init__(self):
63 self.source_root_dir = self.config.root_path + '/'
64 self.gn_root_out_dir = self.config.out_path if not self.config.out_path.startswith(
65 '/') else os.path.relpath(self.config.out_path, self.config.root_path)
66 self.os_level = self.config.os_level if self.config.os_level else "standard"
67 self.target_cpu = self.config.target_cpu if self.config.target_cpu else "arm"
68 self.target_os = self.config.target_os if self.config.target_os else "ohos"
69 self.config_output_relpath = os.path.join(
70 self.gn_root_out_dir, 'build_configs')
71 self.config_output_dir = os.path.join(
72 self.source_root_dir, self.config_output_relpath)
73 self.target_arch = '{}_{}'.format(self.target_os, self.target_cpu)
74 self.subsystem_config_file = os.path.join(
75 self.config.root_path, 'out/preloader', self.config.product, 'subsystem_config.json')
76 self.platforms_config_file = os.path.join(
77 self.config.root_path, 'out/preloader', self.config.product, 'platforms.build')
78 self.exclusion_modules_config_file = os.path.join(
79 self.config.root_path, 'out/preloader', self.config.product, 'exclusion_modules.json')
80 self.example_subsystem_file = os.path.join(
81 self.config.root_path, 'build', 'subsystem_config_example.json')
82 self.parts_src_file = os.path.join(
83 self.config_output_dir, 'parts_src_flag.json')
84 self.auto_install_file = os.path.join(
85 self.config_output_dir, 'auto_install_parts.json')
86 self.components_file = os.path.join(
87 self.config_output_dir, 'parts_info', 'components.json')
90 self.config.root_path, 'out/preloader', self.config.product, 'compile_standard_whitelist.json')
95 self._check_args()
97 self.build_example = self.args_dict.get('build_example')
98 if not self.build_example:
99 self.example_subsystem_file = ""
100 self.scalable_build = self.args_dict.get('scalable_build')
101 self.build_platform_name = self.args_dict.get('build_platform_name')
102 self.build_xts = self.args_dict.get('build_xts')
103 self.ignore_api_check = self.args_dict.get('ignore_api_check')
104 self.load_test_config = self.args_dict.get('load_test_config')
105 self.skip_partlist_check = self.args_dict.get('skip_partlist_check')
107 self._subsystem_info = subsystem_info.get_subsystem_info(
108 self.subsystem_config_file,
109 self.example_subsystem_file,
110 self.source_root_dir,
111 self.config_output_relpath,
112 self.os_level)
113 overrided_components = self._override_components()
115 self._platforms_info = platforms_loader.get_platforms_info(
116 self.platforms_config_file,
117 self.source_root_dir,
118 self.gn_root_out_dir,
119 self.target_arch,
120 self.config_output_relpath,
121 self.scalable_build)
122 self.variant_toolchains = self._platforms_info.get(
124 self._all_platforms = self.variant_toolchains.keys()
125 self.build_platforms = self._get_build_platforms()
126 self.parts_config_info = load_ohos_build.get_parts_info(
127 self.source_root_dir,
128 self.config_output_relpath,
129 self._subsystem_info,
130 self.variant_toolchains,
131 self.target_arch,
132 self.ignore_api_check,
133 self.exclusion_modules_config_file,
134 self.load_test_config,
137 self.skip_partlist_check,
138 self.build_xts)
139 self.parts_targets = self.parts_config_info.get('parts_targets')
140 self.phony_targets = self.parts_config_info.get('phony_target')
141 self.parts_info = self.parts_config_info.get('parts_info')
142 self.target_platform_parts = self._get_platforms_all_parts()
143 self.target_platform_stubs = self._get_platforms_all_stubs()
144 self.required_parts_targets_list = self._get_required_build_parts_list()
145 self.required_phony_targets = self._get_required_phony_targets()
146 self.required_parts_targets = self._get_required_build_targets()
150 def _merge_components_info(self, components):
163 def _cropping_components(self):
164 src_parts = read_json_file(self.parts_src_file)
166 auto_parts = read_json_file(self.auto_install_file)
168 self.third_party_file = os.path.join(self.config.root_path, "out/products_ext/third_party_allow_list.json")
169 if not os.path.exists(self.third_party_file):
170 self.third_party_file = os.path.join(self.config.root_path, 'build/third_party_allow_list.json')
171 cropping_parts = read_json_file(self.third_party_file)
173 components_data = read_json_file(self.components_file)
180 self._merge_components_info(new_components_data)
181 os.remove(self.components_file)
182 write_json_file(self.components_file, new_components_data)
194 def _check_args(self):
197 if not read_json_file(self.subsystem_config_file):
198 self.subsystem_config_file = os.path.join(
199 self.source_root_dir, 'build/subsystem_config.json')
200 if not read_json_file(self.subsystem_config_file):
203 'build/subsystem_config.json') is written correctly.".format(self.config.product), "2001")
206 if not self.gn_root_out_dir:
208 if not os.path.realpath(self.gn_root_out_dir).startswith(self.source_root_dir):
212 if not read_json_file(self.platforms_config_file):
215 is written correctly.".format(self.config.product), "2004")
218 if not read_json_file(self.example_subsystem_file):
223 def _check_product_part_feature(self):
225 product_preloader_dir = os.path.dirname(self.platforms_config_file)
231 self.source_root_dir, "out/products_ext", "component_feature_whitelist.json"
235 self.source_root_dir, "build/", "component_feature_whitelist.json"
242 part = self.parts_info.get(key)
262 def _check_parts_config_info(self):
264 if not ('parts_info' in self.parts_config_info
265 and 'subsystem_parts' in self.parts_config_info
266 and 'parts_variants' in self.parts_config_info
267 and 'parts_kits_info' in self.parts_config_info
268 and 'parts_inner_kits_info' in self.parts_config_info
269 and 'parts_targets' in self.parts_config_info):
283 def _generate_syscap_files(self):
284 pre_syscap_info_path = os.path.dirname(self.platforms_config_file)
285 system_path = os.path.join(self.source_root_dir, os.path.join(
286 os.path.dirname(self.platforms_config_file), "system/"))
289 syscap_info_list = self.parts_config_info.get('syscap_info')
295 if syscap['component'] not in self.required_parts_targets_list:
304 part = self.parts_info.get(key)
315 if syscap['component'] not in self.required_parts_targets_list:
370 "generate syscap info file to '{}'".format(syscap_info_json), mode=self.config.log_mode)
378 syscap_info_with_part_name_file), mode=self.config.log_mode)
386 target_syscap_for_init_file), mode=self.config.log_mode)
390 def _get_build_platforms(self) -> list:
392 if self.build_platform_name == 'all':
393 build_platforms = self._all_platforms
394 elif self.build_platform_name in self._all_platforms:
395 build_platforms = [self.build_platform_name]
399 ', '.join(self._all_platforms)), "2010")
408 def _generate_infos_for_testfwk(self):
409 infos_for_testfwk_file = os.path.join(self.config_output_dir,
411 parts_info = self.parts_config_info.get('parts_info')
417 for _platform, _parts in self.target_platform_parts.items():
418 result = self._output_infos_by_platform(_parts, parts_info_dict)
423 infos_for_testfwk_file), mode=self.config.log_mode)
431 def _generate_target_platform_parts(self):
432 target_platform_parts_file = os.path.join(self.config_output_dir,
435 self.target_platform_parts,
438 target_platform_parts_file), mode=self.config.log_mode)
446 def _generate_part_different_info(self):
447 parts_different_info = self._get_parts_by_platform()
448 parts_different_info_file = os.path.join(self.config_output_dir,
454 parts_different_info_file), mode=self.config.log_mode)
462 def _generate_platforms_list(self):
463 platforms_list_gni_file = os.path.join(self.config_output_dir,
465 _platforms = set(self.build_platforms)
468 if 'phone' not in self.build_platforms:
473 platforms_list_gni_file), mode=self.config.log_mode)
481 def _generate_auto_install_part(self):
482 parts_path_info = self.parts_config_info.get("parts_path_info")
489 self.config_output_dir, "auto_install_parts.json")
492 auto_install_list_file), mode=self.config.log_mode)
500 def _generate_src_flag(self):
501 parts_src_flag_file = os.path.join(self.config_output_dir,
504 self._get_parts_src_list(),
508 self.config_output_dir), mode=self.config.log_mode)
516 def _generate_required_parts_targets_list(self):
517 build_targets_list_file = os.path.join(self.config_output_dir,
520 list(self.required_parts_targets.values()))
522 build_targets_list_file), mode=self.config.log_mode)
530 def _generate_required_parts_targets(self):
531 build_targets_info_file = os.path.join(self.config_output_dir,
533 write_json_file(build_targets_info_file, self.required_parts_targets)
535 build_targets_info_file), mode=self.config.log_mode)
543 def _generate_platforms_part_by_src(self):
544 platforms_parts_by_src = self._get_platforms_parts()
545 platforms_parts_by_src_file = os.path.join(self.source_root_dir,
546 self.config_output_relpath,
552 platforms_parts_by_src_file), mode=self.config.log_mode)
564 def _generate_target_gn(self):
565 generate_targets_gn.gen_targets_gn(self.required_parts_targets,
566 self.config_output_dir)
574 def _generate_phony_targets_build_file(self):
575 generate_targets_gn.gen_phony_targets(self.required_phony_targets,
576 self.config_output_dir)
585 def _generate_stub_targets(self):
587 self.parts_config_info.get('parts_kits_info'),
588 self.target_platform_stubs,
589 self.config_output_dir)
597 def _generate_system_capabilities(self):
598 for platform in self.build_platforms:
599 platform_parts = self.target_platform_parts.get(platform)
603 all_parts_variants = self.parts_info.get(origin)
612 self.config_output_dir, "{0}_system_capabilities.json".format(platform))
618 self.config_output_dir, platform), mode=self.config.log_mode)
628 def _generate_subsystem_configs(self):
633 self.config_output_dir), mode=self.config.log_mode)
636 self.config_output_dir), mode=self.config.log_mode)
639 self.config_output_dir), mode=self.config.log_mode)
641 def _get_parts_by_platform(self) -> dict:
643 if 'phone' in self.target_platform_parts:
644 phone_parts_list = self.target_platform_parts.get('phone').keys()
647 for _platform, _parts_info in self.target_platform_parts.items():
664 def _get_platforms_all_parts(self) -> dict:
665 _dist_parts_variants = self._load_component_dist()
667 all_parts = self._platforms_info.get('all_parts')
668 parts_variants = self.parts_config_info.get('parts_variants')
670 if _platform not in self.build_platforms:
674 real_name, original_name = self._get_real_part_name(
678 real_name, original_name = self._get_real_part_name(
686 def _get_platforms_all_stubs(self) -> dict:
687 _dist_parts_variants = self._load_component_dist()
689 all_stubs = self._platforms_info.get('all_stubs')
690 parts_variants = self.parts_config_info.get('parts_variants')
692 if _platform not in self.build_platforms:
697 real_name, original_name = self._get_real_part_name(
703 real_name, original_name = self._get_real_part_name(
709 self.source_root_dir,
711 .format(self.target_os, self.target_cpu, real_name))
722 def _get_platforms_parts(self) -> dict:
724 src_parts_targets = self.parts_targets
726 for _platform, _all_parts in self.target_platform_parts.items():
741 def _get_parts_src_list(self) -> list:
743 for _list in self.parts_info.values():
748 for _name in self.required_parts_targets.keys():
755 def _get_required_build_targets(self) -> dict:
757 for _p_name, _info in self.parts_targets.items():
758 if _p_name not in self.required_parts_targets_list:
763 def _get_required_phony_targets(self) -> dict:
765 for _p_name, _info in self.phony_targets.items():
766 if _p_name not in self.required_parts_targets_list:
771 def _get_required_build_parts_list(self) -> list:
773 for _parts_list in self.target_platform_parts.values():
779 def _load_component_dist(self) -> dict:
782 self.target_os, self.target_cpu)
785 self.source_root_dir, _dir, _file_name)
804 def _get_real_part_name(self, original_part_name: str, current_platform: str, parts_variants: dict):
819 def _output_infos_by_platform(self, part_name_infos: dict, parts_info_dict: dict):
841 def _execute_loader_args_display(self):
845 self.platforms_config_file))
847 self.subsystem_config_file))
849 self.example_subsystem_file))
851 self.exclusion_modules_config_file))
852 args.append('source_root_dir="{}"'.format(self.source_root_dir))
853 args.append('gn_root_out_dir="{}"'.format(self.gn_root_out_dir))
854 args.append('build_platform_name={}'.format(self.build_platform_name))
855 args.append('build_xts={}'.format(self.build_xts))
856 args.append('load_test_config={}'.format(self.load_test_config))
857 args.append('target_os={}'.format(self.target_os))
858 args.append('target_cpu={}'.format(self.target_cpu))
859 args.append('os_level={}'.format(self.os_level))
860 args.append('ignore_api_check={}'.format(self.ignore_api_check))
861 args.append('scalable_build={}'.format(self.scalable_build))
862 args.append('skip_partlist_check={}'.format(self.skip_partlist_check))
863 LogUtil.write_log(self.config.log_path,
866 def _override_components(self):
873 parts_file = self.platforms_config_file.replace(
884 for subsystem_name, build_config_info in self._subsystem_info.items():
896 if (not build_file.startswith(self.source_root_dir + 'device/')) \
897 and (not build_file.startswith(self.source_root_dir + 'vendor/')):
912 if self._override_one_component(self._subsystem_info, component, build_file, all_parts, overrided_components, component_override_map):
918 parts_file = self.platforms_config_file.replace(
920 self._output_parts_config_json(all_parts, parts_file)
923 f"{self.config_output_dir}/component_override_map.json", all_component_override_map)
926 def _override_one_component(self, subsystem_info: dict, component: dict, build_file: str, all_parts: dict, overrided_components: dict, component_override_map: dict):
981 def _output_parts_config_json(self, all_parts: dict, output_file: dict):