IMPORTANT: The Bazel docs have moved! Please update your bookmark to https://bazel.build/rules/lib/rule_attributes
You can read about the migration, and let us know what you think.
Extensions >
API reference >
rule_attributes
rule_attributes
Information about attributes of a rule an aspect is applied to.Members
attr
struct rule_attributes.attrA struct to access the values of the attributes. The values are provided by the user (if not, a default value is used). The attributes of the struct and the types of their values correspond to the keys and values of the
attrs
dict provided to the rule
function. See example of use.
executable
struct rule_attributes.executableA
struct
containing executable files defined in label type attributes marked as executable=True
. The struct fields correspond to the attribute names. Each value in the struct is either a File
or None
. If an optional attribute is not specified in the rule then the corresponding struct value is None
. If a label type is not marked as executable=True
, no corresponding struct field is generated. See example of use.
file
struct rule_attributes.fileA
struct
containing files defined in label type attributes marked as allow_single_file
. The struct fields correspond to the attribute names. The struct value is always a File
or None
. If an optional attribute is not specified in the rule then the corresponding struct value is None
. If a label type is not marked as allow_single_file
, no corresponding struct field is generated. It is a shortcut for:list(ctx.attr.<ATTR>.files)[0]In other words, use
file
to access the (singular) default output of a dependency. See example of use.
files
struct rule_attributes.filesA
struct
containing files defined in label or label list type attributes. The struct fields correspond to the attribute names. The struct values are list
of File
s. It is a shortcut for:[f for t in ctx.attr.<ATTR> for f in t.files]In other words, use
files
to access the default outputs of a dependency. See example of use.
kind
string rule_attributes.kindThe kind of a rule, such as 'cc_library'