Skip to main content
A BUILD target identifier. For every Label instance l, the string representation str(l) has the property that Label(str(l)) == l, regardless of where the Label() call occurs. When passed as positional arguments to print() or fail(), Label use a string representation optimized for human readability instead. This representation uses an apparent repository name from the perspective of the main repository if possible.

Members

Label

Converts a label string into a Label object, in the context of the package where the calling .bzl source file lives. If the given value is already a Label, it is returned unchanged. For macros, a related function, native.package_relative_label(), converts the input into a Label in the context of the package currently being constructed. For rule and aspect implementation functions, ctx.package_relative_label() can be used for the same purpose. Use these functions to mimic the string-to-label conversion that is automatically done by label-valued rule attributes.

Parameters

name

The name of the target referred to by this label. For instance:

package

The name of the package containing the target referred to by this label, without the repository name. For instance:

relative

Experimental. This API is experimental and may change at any time. Please do not depend on it. It may be enabled on an experimental basis by setting --+incompatible_enable_deprecated_label_apis Deprecated. This method behaves surprisingly when used with an argument containing an apparent repo name. Prefer Label.same_package_label(), native.package_relative_label(), ctx.package_relative_label(), or Label() instead. Resolves a label that is either absolute (starts with //) or relative to the current package. If this label is in a remote repository, the argument will be resolved relative to that repository. If the argument contains a repository name, the current label is ignored and the argument is returned as-is, except that the repository name is rewritten if it is in the current repository mapping. Reserved labels will also be returned as-is. For example:
If the repository mapping passed in is {'@other' : '@remapped'}, then the following remapping will take place:

Parameters

repo_name

The canonical name of the repository containing the target referred to by this label, without any leading at-signs (@). For instance,

same_package_label

Creates a label in the same package as this label with the given target name.

Parameters

workspace_name

Experimental. This API is experimental and may change at any time. Please do not depend on it. It may be enabled on an experimental basis by setting --+incompatible_enable_deprecated_label_apis Deprecated. The field name “workspace name” is a misnomer here; use the identically-behaving Label.repo_name instead. The canonical name of the repository containing the target referred to by this label, without any leading at-signs (@). For instance,

workspace_root

Returns the execution root for the repository containing the target referred to by this label, relative to the execroot. For instance: