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