rule() と aspect() の attrs 辞書引数の値として使用されます。属性の定義と使用について詳しくは、ルールページをご覧ください。
メンバー
- bool
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- output
- output_list
- 文字列
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
ブール値
Attribute attr.bool(default=False, doc=None, mandatory=False)
ctx.attr 属性の型は bool になります。
      パラメータ
| パラメータ | 説明 | 
|---|---|
| default | デフォルトは Falseルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
int
Attribute attr.int(default=0, doc=None, mandatory=False, values=[])
ctx.attr 属性の型は int になります。
      パラメータ
| パラメータ | 説明 | 
|---|---|
| default | デフォルトは 0ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| values | int のシーケンス。デフォルトは []属性に指定できる値のリスト。他の値が指定された場合はエラーが発生します。 | 
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
パラメータ
| パラメータ | 説明 | 
|---|---|
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| default | int の sequence。デフォルトは []です。 ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
ラベル
Attribute attr.label(default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[], flags=[])
ラベル属性のスキーマを作成します。これは依存関係属性です。
この属性には、一意の Label 値が含まれます。Label の代わりに文字列が指定された場合は、ラベル コンストラクタを使用して変換されます。(名前が変更されている可能性のある)リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時(ルールの実装関数内)に ctx.attr から属性値を取得すると、ラベルは対応する Target に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
この種の属性は、通常のソースファイルに加えて、ツール(コンパイラなど)を参照するためによく使用されます。このようなツールは、ソースファイルと同様に依存関係と見なされます。ユーザーが BUILD ファイルでルールを使用するたびにツールのラベルを指定する必要がないように、正規ツールのラベルをこの属性の default 値としてハードコードできます。ユーザーがこのデフォルトをオーバーライドできないようにする場合は、アンダースコアで始まる名前を付けて属性を非公開にできます。詳細については、ルールのページをご覧ください。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| default | ラベル、文字列、LateBoundDefault、NativeComputedDefault、関数、 None。デフォルトはNoneです。 ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label関数を使用して、デフォルト値を指定します(例:attr.label(default = "//a:b"))。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| executable | デフォルトは Falseです。依存関係が実行可能である必要がある場合は True。つまり、ラベルは実行可能ファイル、または実行可能ファイルを出力するルールを参照する必要があります。 ctx.executable.<attribute_name>を使用してラベルにアクセスします。 | 
| allow_files | bool、または string のシーケンス、または None。デフォルトはNoneです。 Fileターゲットが許可されているかどうか。True、False(デフォルト)、または許可されるファイル拡張子のリスト([".cc", ".cpp"]など)を指定できます。 | 
| allow_single_file | デフォルトは Noneです。これは allow_filesと似ていますが、ラベルは単一のファイルに対応している必要があります。ctx.file.<attribute_name>からアクセスします。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| providers | デフォルトは []この属性に現れる依存関係によって提供されなければならないプロバイダ。 この引数の形式は、プロバイダのリストのリストです。つまり、 | 
| allow_rules | string の sequence、または 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。デフォルトは []です。 この属性で指定された依存関係に適用されるアスペクト。 | 
| flags | string の sequence。デフォルトは []です。 非推奨。削除されます。 | 
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
キーがラベルで値が文字列であるディクショナリを保持する属性のスキーマを作成します。これは依存関係属性です。
この属性には、一意の Label 値が含まれます。Label の代わりに文字列が指定された場合は、ラベル コンストラクタを使用して変換されます。(名前が変更されている可能性のある)リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時(ルールの実装関数内)に ctx.attr から属性値を取得すると、ラベルは対応する Target に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| 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 の sequence、または None。デフォルトはNoneです。 許可されるルール ターゲット(クラスの名前)。これは非推奨です(互換性のためだけに残されています)。代わりにプロバイダを使用してください。 | 
| providers | デフォルトは []この属性に現れる依存関係によって提供されなければならないプロバイダ。 この引数の形式は、プロバイダのリストのリストです。つまり、 | 
| flags | string の sequence。デフォルトは []です。 非推奨。削除されます。 | 
| mandatory | デフォルトは 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, *, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
ラベルリスト属性のスキーマを作成します。これは依存関係属性です。対応する ctx.attr 属性は、Targets のリスト型になります。
この属性には、一意の Label 値が含まれます。Label の代わりに文字列が指定された場合は、ラベル コンストラクタを使用して変換されます。(名前が変更されている可能性のある)リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時(ルールの実装関数内)に ctx.attr から属性値を取得すると、ラベルは対応する Target に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| default | Label のシーケンス、または関数。デフォルトは []です。 ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。文字列または 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 の sequence、または None。デフォルトはNoneです。 許可されるルール ターゲット(クラスの名前)。これは非推奨です(互換性のためだけに残されています)。代わりにプロバイダを使用してください。 | 
| providers | デフォルトは []この属性に現れる依存関係によって提供されなければならないプロバイダ。 この引数の形式は、プロバイダのリストのリストです。つまり、 | 
| flags | string の sequence。デフォルトは []です。 非推奨。削除されます。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| 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 の代わりに文字列が指定された場合は、ラベル コンストラクタを使用して変換されます。(名前が変更されている可能性のある)リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時に、対応する File は ctx.outputs を使用して取得できます。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
output_list
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)
この属性には、一意の Label 値が含まれます。Label の代わりに文字列が指定された場合は、ラベル コンストラクタを使用して変換されます。(名前が変更されている可能性のある)リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時に、対応する File は ctx.outputs を使用して取得できます。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
文字列
Attribute attr.string(default='', doc=None, mandatory=False, values=[])
パラメータ
| パラメータ | 説明 | 
|---|---|
| default | string、または NativeComputedDefault。デフォルトは ''です。 ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| values | 文字列のシーケンス。デフォルトは []です。 属性に指定できる値のリスト。他の値が指定された場合はエラーが発生します。 | 
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
パラメータ
| パラメータ | 説明 | 
|---|---|
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| default | デフォルトは {}ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
string_keyed_label_dict
Attribute attr.string_keyed_label_dict(allow_empty=True, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
値がディクショナリである属性のスキーマを作成します。ディクショナリのキーは文字列で、値はラベルです。これは依存関係属性です。
この属性には、一意の Label 値が含まれます。Label の代わりに文字列が指定された場合は、ラベル コンストラクタを使用して変換されます。(名前が変更されている可能性のある)リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時(ルールの実装関数内)に ctx.attr から属性値を取得すると、ラベルは対応する Target に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| default | dict または function。デフォルトは {}です。 ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label関数を使用してデフォルト値を指定します(例:attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}))。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| allow_files | bool、または string のシーケンス、または None。デフォルトはNoneです。 Fileターゲットが許可されているかどうか。True、False(デフォルト)、または許可されるファイル拡張子のリスト([".cc", ".cpp"]など)を指定できます。 | 
| allow_rules | string の sequence、または None。デフォルトはNoneです。 許可されるルール ターゲット(クラスの名前)。これは非推奨です(互換性のためだけに残されています)。代わりにプロバイダを使用してください。 | 
| providers | デフォルトは []この属性に現れる依存関係によって提供されなければならないプロバイダ。 この引数の形式は、プロバイダのリストのリストです。つまり、 | 
| flags | string の sequence。デフォルトは []です。 非推奨。削除されます。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| cfg | デフォルトは Noneです。 属性の構成。 "exec"(依存関係がexecution platform用にビルドされていることを示す)または"target"(依存関係がtarget platform用にビルドされていることを示す)のいずれかになります。この違いの典型的な例は、モバイルアプリを構築する場合です。この場合、target platformはAndroidまたはiOSで、execution platformはLinux、macOS、またはWindowsです。 | 
| aspects | Aspect の sequence。デフォルトは []です。 この属性で指定された依存関係に適用されるアスペクト。 | 
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
パラメータ
| パラメータ | 説明 | 
|---|---|
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 | 
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| default | string の sequence、または NativeComputedDefault。デフォルトは []です。 ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
パラメータ
| パラメータ | 説明 | 
|---|---|
| allow_empty | デフォルトは Trueです。属性を空にできる場合は True。 | 
| default | デフォルトは {}ルールをインスタンス化するときにこの属性の値が指定されていない場合に使用するデフォルト値。 | 
| doc | string、または None。デフォルトはNoneドキュメント生成ツールで抽出できる属性の説明。 | 
| mandatory | デフォルトは Falseです。 true の場合、値は明示的に指定する必要があります( defaultがある場合でも)。 |