fuchsia_sdk_repository

Loads a particular version of the Fuchsia IDK.

ATTRIBUTES

Name Description Type Mandatory Default
name A unique name for this repository. Name required -
repo_mapping In WORKSPACE context only: a dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.

For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).

This attribute is not supported in MODULE.bazel context (when invoking a repository rule inside a module extension's implementation function).
String Dict optional -
parent_sdk If specified, libraries in current SDK that also exist in the parent SDK will always resolve to the parent. In practice,
this means that a library defined in the current SDK that is also defined in parent_sdk will be ignored in the current SDK,
and references to it will be replaced with @<parent_sdk>//<library>. This is useful when SDKs are layered, for example an
internal SDK and a public SDK.
Label optional None
parent_sdk_local_paths If parent_sdk is specified, parent_sdk_local_paths has to contain the same values as the local_paths attribute of the parent SDK.
This is required because Bazel does not have a way to evaluate the existence of a Label, so we process the metadata of the parent
SDK again when using layered SDKs.
TODO: look for a better approach if this is limiting or causing performance issues.
String List optional []
local_paths Paths to local SDK directories. String List optional []
local_sdk_version_file An optional file used to mark the version of the SDK pointed to by local_paths. Label optional None
buildifier An optional label to the buildifier tool, used to reformat all generated Bazel files. Label optional None
visibility_templates Allows for the addition of additional visibility lists.

This attribute lets the caller specify a set of additional visibility
parameters to be passed into the templates when we generate the repositry.
For a list of keys refer to the generate_sdk_buildrules.bzl file.

When you pass in the labels you must specify the fully qualified name of
the label to ensure that we reference the correct labels. For example,
if you are wanting to refer to a target within the root repository you should
use a path like @@//foo:
pkg. If you were to pass in this value as
//foo:
pkg_ then it will be passed into the template in a way that makes
bazel think it belongs to the repository you are generating.

The values in this list can contain a wildcard ("") expanded out to include
all of the directories at that location but there are restrictions to the
usage.
- The expansion will only work on repos that are name "@@".
- The expansion only supports a single "
"
- The expansion will check that a BUILD.bazel file exists at the location
that is being expanded and will add it if true but will not check that
the BUILD.bazel file contains the target that is being expanded.

Examples of the wildcard expansion are:
- @@//src//foo:bar
- @@//src/
:bar
- @@//src/*/foo
String List Dict optional {}

ENVIRONMENT VARIABLES

This repository rule depends on the following environment variables:

  • LOCAL_FUCHSIA_PLATFORM_BUILD