rule()
と aspect()
の attrs
辞書引数の値として使用されます。属性の定義と使用の詳細については、ルール ページをご覧ください。
メンバー
- bool
- int
- int_list
- ラベル
- label_keyed_string_dict
- label_list
- output
- output_list
- 文字列
- string_dict
- string_list
- string_list_dict
ブール値
Attribute attr.bool(default=False, doc='', mandatory=False)ブール値属性のスキーマを作成します。
パラメータ
パラメータ | 説明 |
---|---|
default
|
default = False この属性の値がルールのインスタンス化時に指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
int
Attribute attr.int(default=0, doc='', mandatory=False, values=[])整数属性のスキーマを作成します。値は符号付き 32 ビットの範囲内である必要があります。
パラメータ
パラメータ | 説明 |
---|---|
default
|
default = 0 ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
values
|
sequence of ints ;
デフォルト = []この属性に指定できる値のリスト。他の値が指定された場合はエラーが発生します。 |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc='')整数のリスト属性のスキーマを作成します。各要素は符号付き 32 ビットの範囲内にする必要があります。
パラメータ
パラメータ | 説明 |
---|---|
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default が指定されている場合でも)。
|
allow_empty
|
default = True 属性が空の可能性がある場合は true です。 |
default
|
sequence of ints ;
default = []ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
ラベル
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 ;
default = Noneルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用して、デフォルト値を指定します(例: attr.label(default = "//a:b") )。
|
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
executable
|
デフォルト = False 依存関係が実行可能である必要がある場合は true。つまり、ラベルは実行可能ファイル、または実行可能ファイルを出力するルールを参照する必要があります。 ctx.executable.<attribute_name> を使用してラベルにアクセスします。 |
allow_files
|
bool; or sequence of strings; or None ;
デフォルト = NoneFile ターゲットを許可するかどうか。True 、False (デフォルト)、または許可されるファイル拡張子のリスト([".cc", ".cpp"] など)を指定できます。
|
allow_single_file
|
default = Noneallow_files に似ていますが、ラベルが単一のファイルに対応している必要があります。ctx.file.<attribute_name> からアクセスできます。
|
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
providers
|
default = [] この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリスト( |
allow_rules
|
sequence of strings; or None ;
デフォルト = None許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。 |
cfg
|
default = None 属性の構成。 "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
|
default = True 属性が空の可能性がある場合は true です。 |
default
|
dict; or function ;
default = {}ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用して、デフォルト値(attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) など)を指定します。
|
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
allow_files
|
bool; or sequence of strings; or None ;
デフォルト = NoneFile ターゲットを許可するかどうか。True 、False (デフォルト)、または許可されるファイル拡張子のリスト([".cc", ".cpp"] など)を指定できます。
|
allow_rules
|
sequence of strings; or None ;
デフォルト = None許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。 |
providers
|
default = [] この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリスト( |
flags
|
sequence of strings ;
デフォルト = []非推奨。削除される予定です。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
cfg
|
default = None 属性の構成。 "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
|
default = True 属性が空の可能性がある場合は true です。 |
default
|
sequence of Labels; or function ;
default = []ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.label_list(default = ["//a:b", "//a:c"]) )。
|
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
allow_files
|
bool; or sequence of strings; or None ;
デフォルト = NoneFile ターゲットを許可するかどうか。True 、False (デフォルト)、または許可されるファイル拡張子のリスト([".cc", ".cpp"] など)を指定できます。
|
allow_rules
|
sequence of strings; or None ;
デフォルト = None許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。 |
providers
|
default = [] この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリスト( |
flags
|
sequence of strings ;
デフォルト = []非推奨。削除される予定です。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
cfg
|
default = None 属性の構成。 "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
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。ラベルパスの相対部分(名前が変更されている場合もあるリポジトリを含む)は、インスタンス化されたターゲットのパッケージを基準に解決されます。
分析時に、対応する File
は ctx.outputs
を使用して取得できます。
パラメータ
パラメータ | 説明 |
---|---|
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
output_list
Attribute attr.output_list(allow_empty=True, *, doc='', mandatory=False)list-of-outputs 属性のスキーマを作成します。
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。ラベルパスの相対部分(名前が変更されている場合もあるリポジトリを含む)は、インスタンス化されたターゲットのパッケージを基準に解決されます。
分析時に、対応する File
は ctx.outputs
を使用して取得できます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性が空の可能性がある場合は true です。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
文字列
Attribute attr.string(default='', doc='', mandatory=False, values=[])文字列属性のスキーマを作成します。
パラメータ
パラメータ | 説明 |
---|---|
default
|
string; or NativeComputedDefault ;
default = ''ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default が指定されている場合でも)。
|
values
|
sequence of strings ;
デフォルト = []この属性に指定できる値のリスト。他の値が指定された場合はエラーが発生します。 |
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc='', mandatory=False)キーと値が文字列であるディクショナリを保持する属性のスキーマを作成します。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性が空の可能性がある場合は true です。 |
default
|
default = {} ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc='')文字列のリスト属性のスキーマを作成します。
パラメータ
パラメータ | 説明 |
---|---|
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default が指定されている場合でも)。
|
allow_empty
|
default = True 属性が空の可能性がある場合は true です。 |
default
|
sequence of strings; or NativeComputedDefault ;
default = []ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc='', mandatory=False)辞書を保持する属性のスキーマを作成します。キーは文字列で、値は文字列のリストです。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性が空の可能性がある場合は true です。 |
default
|
default = {} ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
default = '' ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
デフォルト = False true の場合、値は明示的に指定する必要があります( default があっても同様です)。
|