blob: 104143db3e3c15bd3bc95b48d5375c9ea52f80b5 [file] [log] [blame]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""All Fuchsia Providers."""
FuchsiaAssembledArtifactInfo = provider(
"Artifacts that can be included into a product. It consists of the artifact and the corresponding config data.",
fields = {
"artifact": "The base artifact",
"configs": "A list of configs that is attached to artifacts",
},
)
FuchsiaConfigData = provider(
"The config data which is used in assembly.",
fields = {
"source": "Config file on host",
"destination": "A String indicating the path to find the file in the package on the target",
},
)
FuchsiaComponentInfo = provider(
"Contains information about a fuchsia component",
fields = {
"name": "name of the component",
"manifest": "A file representing the compiled component manifest file",
"resources": "any additional resources the component needs",
"is_driver": "True if this is a driver",
"is_test": "True if this is a test component",
},
)
FuchsiaDebugSymbolInfo = provider(
"Contains information that can be used to register debug symbols.",
fields = {
"build_id_dirs": "A mapping of build directory to depset of build_id directories.",
},
)
FuchsiaUnitTestComponentInfo = provider(
"Allows unit tests to be treated as test components.",
fields = {
"test_component": "The label of the underlying fuchsia_test_component.",
},
)
FuchsiaComponentManifestShardInfo = provider(
"Contains information about a Fuchsia component manifest shard",
fields = {
"file": "The file of the shard",
"base_path": "Base path of the shard, used in includepath argument of cmc compile",
},
)
FuchsiaComponentManifestShardCollectionInfo = provider(
"Contains information about a collection of shards to add as dependencies for for each cmc invocation",
fields = {
"shards": "A list of shards's as targets in the collection",
},
)
FuchsiaEmulatorInfo = provider(
"Contains information about a fuchsia emulator.",
fields = {
"name": "The name of the emulator",
"launch_options": "The list of additional options to use when launching",
},
)
FuchsiaFidlLibraryInfo = provider(
"Contains information about a FIDL library",
fields = {
"info": "List of structs(name, files) representing the library's dependencies",
"name": "Name of the FIDL library",
"ir": "Path to the JSON file with the library's intermediate representation",
},
)
FuchsiaBindLibraryInfo = provider(
"Contains information about a Bind Library.",
fields = {
"name": "Name of the Bind Library.",
"transitive_sources": "A depset containing transitive sources of the Bind Library.",
},
)
FuchsiaCoreImageInfo = provider(
"Private provider containing platform artifacts",
fields = {
"esp_blk": "EFI system partition image.",
"kernel_zbi": "Zircon image.",
"vbmetar": "vbmeta for zirconr boot image.",
"zirconr": "zedboot boot image.",
},
)
FuchsiaPackageResourcesInfo = provider(
"Contains a collection of resources to include in a package",
fields = {
"resources": "A list of structs containing the src and dest of the resource",
},
)
FuchsiaPackageGroupInfo = provider(
doc = "The raw files that make up a set of fuchsia packages.",
fields = {
"packages": "a list of all packages that make up this package group",
},
)
FuchsiaPackageInfo = provider(
doc = "Contains information about a fuchsia package.",
fields = {
"package_manifest": "JSON package manifest file representing the Fuchsia package.",
"package_name": "The name of the package",
"far_file": "The far archive",
"meta_far": "The meta.far file",
"files": "all files that compose this package, including the manifest and meta.far",
"build_id_dir": "Directory containing the debug symbols",
"components": "A list of all of the component manifest strings inclusive of driver components.",
"drivers": "A list of driver manifest strings.",
"package_resources": "A list of resources added to this package",
},
)
FuchsiaProductImageInfo = provider(
doc = "Info needed to pave a Fuchsia image",
fields = {
"esp_blk": "EFI system partition image.",
"blob_blk": "BlobFS partition image.",
"data_blk": "MinFS partition image.",
"images_json": "images.json file",
"blobs_json": "blobs.json file",
"kernel_zbi": "Zircon image.",
"vbmetaa": "vbmeta for zircona boot image.",
"vbmetar": "vbmeta for zirconr boot image.",
"zircona": "main boot image.",
"zirconr": "zedboot boot image.",
"flash_json": "flash.json file.",
},
)
FuchsiaAssemblyConfigInfo = provider(
doc = "Private provider that includes a single JSON configuration file.",
fields = {
"config": "JSON configuration file",
},
)
FuchsiaProductAssemblyBundleInfo = provider(
doc = """
A bundle of files used by product assembly.
This should only be provided by the single exported target of a
fuchsia_product_assembly_bundle repository.
""",
fields = {
"root": "A blank file at the root of the bundle directory",
"files": "All files contained in the bundle",
},
)
FuchsiaProductBundleConfigInfo = provider(
doc = "Config data used for pbm creation",
fields = {
"packages": "Path to packages directory.",
"images_json": "Path to images.json file.",
"zbi": "Path to ZBI file.",
"fvm": "Path to FVM file.",
},
)
FuchsiaProvidersInfo = provider(
doc = """
Keeps track of what providers exist on a given target.
Construct with utils.bzl > track_providers.
Used by utils.bzl > alias.
""",
fields = {
"providers": "A list of providers values to carry forward.",
},
)
FuchsiaVersionInfo = provider(
doc = "version information passed in that overwrite sdk version",
fields = {
"version": "The version string.",
},
)
AccessTokenInfo = provider(
doc = "Access token used to upload to MOS repository",
fields = {
"token": "The token string.",
},
)
FuchsiaPackageRepoPathInfo = provider(
doc = "A provider which provides the path to a fuchsia package repo",
fields = {
"path": "The path to the repository.",
},
)
FuchsiaPackageRepoInfo = provider(
doc = "A provider which provides the contents of a fuchsia package repo",
fields = {
"packages": "The paths to the package_manifest.json files",
"repo_dir": "The directory of the package repo.",
"blobs": "The blobs needed by packages in this package repo.",
},
)
FuchsiaLocalPackageRepositoryInfo = provider(
doc = "A provider which provides the configuration for a local package repo.",
fields = {
"repo_name": "The name of the repository",
"repo_path": "The path of the repository. If relative it is treated as relative to the workspace root",
},
)
FuchsiaRunnableInfo = provider(
doc = "A provider which provides the script and runfiles to run a Fuchsia component or test package.",
fields = {
"executable": "A file corresponding to the runnable script.",
"runfiles": "A list of runfiles that the runnable script depends on.",
"is_test": "Whether this runnable is a test.",
},
)
FuchsiaDriverToolInfo = provider(
doc = "A provider which contains information about a driver tool",
fields = {
"binary": "A resource struct containing the binary",
"resources": "A list of all the resources needed by the target",
},
)
FuchsiaProductBundleInfo = provider(
doc = "Product Bundle Info",
fields = {
"product_bundle": "The full URL for the product bundle. Can be empty.",
"is_remote": "Whether the product bundle is a local path or a remote url.",
"product_name": "The name of the product to be used if product_bundle is empty.",
"version": "The version of the product to use. If empty use the sdk version.",
"repository": "The name of the repository to host extra packages in the product bundle",
},
)