rule()
和 aspect()
的 attrs
字典参数的值。成员
- bool
- int
- int_list
- 标签
- label_keyed_string_dict
- label_list
- 输出
- output_list
- 字符串
- string_dict
- string_list
- string_list_dict
bool
Attribute attr.bool(configurable=unbound, default=False, doc=None, mandatory=False)为布尔值属性创建架构。对应的
ctx.attr
属性的类型为 bool
。
参数
参数 | 说明 |
---|---|
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
bool;默认值为 False 在实例化规则时,如果未为此属性提供任何值,则要使用的默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
int
Attribute attr.int(configurable=unbound, default=0, doc=None, mandatory=False, values=[])为整数属性创建架构。值必须在 32 位带符号范围内。对应的
ctx.attr
属性的类型为 int
。
参数
参数 | 说明 |
---|---|
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
int;默认值为 0 实例化规则时,如果未为此属性提供任何值,则将使用默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
values
|
int 类型的 sequence;默认值为 [] 属性允许使用的值的列表。如果指定了任何其他值,则会引发错误。 |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)为整数列表属性创建架构。每个元素都必须在 32 位带符号范围内。
参数
参数 | 说明 |
---|---|
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
int 类型序列,默认值为 [] 在实例化规则时,如果未为此属性提供任何值,将使用默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
标签
Attribute attr.label(configurable=unbound, default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], allow_rules=None, cfg=None, aspects=[])
为标签属性创建架构。这是依赖项属性。
此属性包含唯一的 Label
值。如果提供字符串来代替 Label
,则将使用标签构造函数对其进行转换。标签路径的相对部分,包括(可能重命名的)存储库,将根据实例化目标的软件包进行解析。
在分析时(在规则的实现函数内),从 ctx.attr
检索属性值时,标签会替换为相应的 Target
。这样,您就可以访问当前目标的依赖项的提供程序。
除了普通的源文件之外,这种属性通常还用于指代工具,例如编译器。这些工具被视为依赖项,就像源文件一样。为避免在每次在其 BUILD 文件中使用规则时都要求用户指定工具的标签,您可以将规范工具的标签硬编码为此属性的 default
值。如果您还想阻止用户覆盖此默认值,则可以为属性指定一个以下划线开头的名称,从而将其设为不公开。如需了解详情,请参阅规则页面。
参数
参数 | 说明 |
---|---|
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
Label、string、LateBoundDefault、NativeComputedDefault、function;或 None ;默认值为 None 在实例化规则时,如果未为此属性提供任何值,则要使用的默认值。请使用字符串或 Label 函数指定默认值,例如 attr.label(default = "//a:b") 。
|
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
executable
|
bool;默认值为 False 如果依赖项必须可执行,则为 True。也就是说,标签必须引用可执行文件或者输出可执行文件的规则。使用 ctx.executable.<attribute_name> 访问标签。 |
allow_files
|
bool;或 string 的序列;或 None ;默认值为 None 是否允许 File 目标。可以是 True 、False (默认)或允许的文件扩展名列表(例如 [".cc", ".cpp"] )。
|
allow_single_file
|
默认值为 None 这与 allow_files 类似,但不同之处在于标签必须对应于单个 File。通过 ctx.file.<attribute_name> 访问它。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
skip_validations
|
bool;默认值为 False 如果设置为 true,来自此属性的传递依赖项的验证操作将不会运行。这是一项临时的缓解措施,将来会移除。 |
providers
|
sequence;默认值为 [] 此属性中出现的依赖项必须由其提供的提供程序。 此参数的格式为提供商列表,即 |
allow_rules
|
string 序列;或 None ;默认值为 None 允许哪个规则目标(类名称)。此属性已废弃(仅出于兼容性考虑),请改用提供程序。 |
cfg
|
默认值为 None 配置。它可以是 "exec" (表示依赖项是针对 execution platform 构建的),也可以是 "target" (表示依赖项是针对 target platform 构建的)。这种差异的一个典型示例是构建移动应用时,其中 target platform 为 Android 或 iOS ,而 execution platform 为 Linux 、macOS 或 Windows 。如果 executable 为 True,则必须使用此参数,以防止在目标配置中意外构建主机工具。"target" 没有语义影响,因此当 executable 为 False 时,除非它确实有助于阐明您的意图,否则请不要设置它。 |
aspects
|
Aspect 的 sequence;默认值为 [] 应应用于此属性指定的依赖项的切面。 |
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
为存储字典的属性创建架构,其中键是标签,值是字符串。这是依赖项属性。
此属性包含唯一的 Label
值。如果提供字符串来代替 Label
,则将使用标签构造函数对其进行转换。标签路径的相对部分,包括(可能重命名的)存储库,将根据实例化目标的软件包进行解析。
在分析时(在规则的实现函数内),从 ctx.attr
检索属性值时,标签会替换为相应的 Target
。这样,您就可以访问当前目标的依赖项的提供程序。
参数
参数 | 说明 |
---|---|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
dict;或 function;默认值为 {} 在实例化规则时,如果未为此属性提供任何值,则要使用的默认值。请使用字符串或 Label 函数指定默认值,例如 attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) 。
|
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
allow_files
|
bool;或 string 的序列;或 None ;默认值为 None 是否允许 File 目标。可以是 True 、False (默认)或允许的文件扩展名列表(例如 [".cc", ".cpp"] )。
|
allow_rules
|
string 序列;或 None ;默认值为 None 允许哪个规则目标(类名称)。此属性已废弃(仅出于兼容性考虑),请改用提供程序。 |
providers
|
sequence;默认值为 [] 此属性中出现的依赖项必须由其提供的提供程序。 此参数的格式为提供商列表,即 |
flags
|
string 的 sequence;默认值为 [] 已弃用,将被移除。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
cfg
|
默认值为 None 配置。它可以是 "exec" (表示依赖项是针对 execution platform 构建的),也可以是 "target" (表示依赖项是针对 target platform 构建的)。这种差异的一个典型示例是构建移动应用时,其中 target platform 为 Android 或 iOS ,而 execution platform 为 Linux 、macOS 或 Windows 。 |
aspects
|
Aspect 的 sequence;默认值为 [] 应应用于此属性指定的依赖项的切面。 |
label_list
Attribute attr.label_list(allow_empty=True, *, configurable=unbound, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])
为标签列表属性创建架构。这是依赖项属性。对应的 ctx.attr
属性的类型为 Target
列表。
此属性包含唯一的 Label
值。如果提供字符串来代替 Label
,则将使用标签构造函数对其进行转换。标签路径的相对部分,包括(可能重命名的)存储库,将根据实例化目标的软件包进行解析。
在分析时(在规则的实现函数内),从 ctx.attr
检索属性值时,标签会替换为相应的 Target
。这样,您就可以访问当前目标的依赖项的提供程序。
参数
参数 | 说明 |
---|---|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
标签或函数的序列;默认值为 [] 在实例化规则时,如果没有为此属性提供任何值,则要使用的默认值。请使用字符串或 Label 函数指定默认值,例如 attr.label_list(default = ["//a:b", "//a:c"]) 。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
allow_files
|
bool;或 string 的序列;或 None ;默认值为 None 是否允许 File 目标。可以是 True 、False (默认)或允许的文件扩展名列表(例如 [".cc", ".cpp"] )。
|
allow_rules
|
string 序列;或 None ;默认值为 None 允许哪个规则目标(类名称)。此属性已废弃(仅出于兼容性考虑),请改用提供程序。 |
providers
|
sequence;默认值为 [] 此属性中出现的依赖项必须由其提供的提供程序。 此参数的格式为提供商列表,即 |
flags
|
string 的 sequence;默认值为 [] 已弃用,将被移除。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
skip_validations
|
bool;默认值为 False 如果设置为 true,来自此属性的传递依赖项的验证操作将不会运行。这是一项临时的缓解措施,将来会移除。 |
cfg
|
默认值为 None 配置。它可以是 "exec" (表示依赖项是针对 execution platform 构建的),也可以是 "target" (表示依赖项是针对 target platform 构建的)。这种差异的一个典型示例是构建移动应用时,其中 target platform 为 Android 或 iOS ,而 execution platform 为 Linux 、macOS 或 Windows 。 |
aspects
|
Aspect 的 sequence;默认值为 [] 应应用于此属性指定的依赖项的切面。 |
output
Attribute attr.output(doc=None, mandatory=False)
为输出(标签)属性创建架构。
此属性包含唯一的 Label
值。如果提供字符串来代替 Label
,则将使用标签构造函数对其进行转换。标签路径的相对部分,包括(可能重命名的)存储库,将根据实例化目标的软件包进行解析。
在分析时,可以使用 ctx.outputs
检索相应的 File
。
参数
参数 | 说明 |
---|---|
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
output_list
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)为输出 list 属性创建架构。
此属性包含唯一的 Label
值。如果提供字符串来代替 Label
,则将使用标签构造函数对其进行转换。标签路径的相对部分,包括(可能重命名的)存储库,将根据实例化目标的软件包进行解析。
在分析时,可以使用 ctx.outputs
检索相应的 File
。
参数
参数 | 说明 |
---|---|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
string
Attribute attr.string(configurable=unbound, default='', doc=None, mandatory=False, values=[])为 string 属性创建架构。
参数
参数 | 说明 |
---|---|
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
string;或 NativeComputedDefault;默认值为 '' 在实例化规则时,如果未为此属性提供任何值,将使用默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
values
|
string 的序列;默认值为 [] 属性允许的值列表。如果指定了任何其他值,则会引发错误。 |
string_dict
Attribute attr.string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)为存放字典的属性创建架构,其中键和值为字符串。
参数
参数 | 说明 |
---|---|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
dict;默认值为 {} 在实例化规则时,如果未为此属性提供任何值,将使用默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)为字符串列表属性创建架构。
参数
参数 | 说明 |
---|---|
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
string 的 sequence;或 NativeComputedDefault;默认值为 [] 在实例化规则时,如果未为此属性提供任何值,则要使用的默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)为存放字典的属性创建架构,其中键是字符串,值是字符串列表。
参数
参数 | 说明 |
---|---|
allow_empty
|
bool;默认值为 True 如果属性可以为空,则为 True。 |
configurable
|
bool;或无界限;默认值为 unbound 如果为 true,此属性支持 select() |
default
|
dict;默认值为 {} 在实例化规则时,如果未为此属性提供任何值,将使用默认值。 |
doc
|
string;或 None ;默认值为 None 可由文档生成工具提取的属性的说明。 |
mandatory
|
bool;默认值为 False 如果为 true,则必须明确指定该值(即使该值为 default )。
|