• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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