1"""Functions related to system image config. 2 3See proto definitions for descriptions of arguments. 4""" 5 6# Needed to load from @proto. Add @unused to silence lint. 7load("//config/util/bindings/proto.star", "protos") 8load( 9 "@proto//chromiumos/build/api/system_image.proto", 10 system_pb = "chromiumos.build.api", 11) 12load("//config/util/portage.star", "portage") 13 14def _create_build_target(overlay = None, profile = None, use_flags = None): 15 return system_pb.SystemImage.BuildTarget( 16 portage_build_target = portage.create_build_target( 17 overlay, 18 profile, 19 use_flags, 20 ), 21 ) 22 23def _create_build_metadata(build_target, packages, package_summary = None): 24 return system_pb.SystemImage.BuildMetadata( 25 build_target = build_target, 26 packages = packages, 27 package_summary = package_summary, 28 ) 29 30def _create_build_metadata_list(values): 31 return system_pb.SystemImage.BuildMetadataList( 32 values = values, 33 ) 34 35def _create_package_summary( 36 arc = None, 37 chrome = None, 38 chipset = None, 39 kernel = None, 40 toolchain = None): 41 metadata_pb = system_pb.SystemImage.BuildMetadata 42 43 return metadata_pb.PackageSummary( 44 arc = metadata_pb.Arc(version = arc), 45 chrome = metadata_pb.AshChrome(version = chrome), 46 chipset = metadata_pb.Chipset(overlay = chipset), 47 kernel = metadata_pb.Kernel(version = kernel), 48 toolchain = metadata_pb.Toolchain(version = toolchain), 49 ) 50 51system_image = struct( 52 create_build_target = _create_build_target, 53 create_build_metadata = _create_build_metadata, 54 create_build_metadata_list = _create_build_metadata_list, 55 create_package_summary = _create_package_summary, 56) 57