メンバー
- analysis_test_transition
- アスペクト
- configuration_field
- depset
- exec_group
- module_extension
- provider
- repository_rule
- rule
- 選択
- tag_class
- 可視性
analytics_test_transition
transition analysis_test_transition(settings)
analytics-test ルールの依存関係に適用する構成遷移を作成します。この移行は、analysis_test = True
を使用するルールの属性にのみ適用されます。このようなルールは機能が制限されるため(たとえば、依存関係ツリーのサイズに制限があるため)、この関数を使用して作成される遷移は、transition()
を使用して作成された遷移と比較して、スコープが限定されます。
この関数は主に、分析テスト フレームワークのコアライブラリの設計を目的として設計されています。ベスト プラクティスについては、そのドキュメント(または実装)をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
settings
|
必須 この構成遷移で設定する必要がある構成設定に関する情報を含む辞書。キーはビルド設定ラベルであり、値は移行後の新しい値です。その他の設定はすべて変更されません。これを使用して、分析テストで合格する必要がある特定の構成設定を宣言します。 |
アスペクト
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)新しいアスペクトを作成します。この関数の結果はグローバル値に保存する必要があります。詳しくは、アスペクトの概要をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
必須 この要素を実装する Starlark 関数で、Target(対象が適用されるターゲット)と ctx(ターゲットの作成元となるルール コンテキスト)の 2 つのパラメータのみを含めます。ターゲットの属性は ctx.rule フィールドを介して使用できます。この関数は、ターゲットに対するアスペクトを適用するたびに分析フェーズで評価されます。
|
attr_aspects
|
sequence of strings ;
default = []属性名のリスト。このアスペクトは、これらの属性を持つターゲットの属性で指定された依存関係に従います。一般的な値には deps と exports があります。このリストには、ターゲットのすべての依存関係に沿って伝播する単一の文字列 "*" を含めることもできます。 |
attrs
|
dict; or None ;
default = None特徴のすべての属性を宣言する辞書。これは、属性名から「attr.label」や「attr.string」などの属性オブジェクト(attr モジュールを参照)にマッピングされます。Aspect 属性は、 ctx パラメータのフィールドとして実装関数で使用できます。
明示的な属性の型は |
required_providers
|
default = [] この属性を使用すると、アスペクトの伝播を、ルールで必要なプロバイダをアドバタイズするターゲットに限定できます。値には、個別のプロバイダか、プロバイダのリストのいずれか(いずれかまたは両方)を含むリストを指定する必要があります。たとえば、 [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効です。ネストされていないプロバイダのリストは、1 つのプロバイダのリストを含むリストに自動的に変換されます。つまり、 あるルール( |
required_aspect_providers
|
default = [] この属性を使用すると、他の要素を調べることができます。値には、個別のプロバイダか、プロバイダのリストのいずれか(いずれかまたは両方)を含むリストを指定する必要があります。たとえば、 [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効です。ネストされていないプロバイダのリストは、1 つのプロバイダのリストを含むリストに自動的に変換されます。つまり、 別のアスペクト( |
provides
|
default = [] 実装関数が返すプロバイダのリスト。 実装関数がここに記載されているプロバイダのタイプのいずれかを戻り値から省略すると、エラーが発生します。ただし、実装関数は、ここに記載されていない追加のプロバイダを返すことがあります。 リストの各要素は |
requires
|
sequence of Aspects ;
default = []このアスペクトの前に伝播する必要があるアスペクトのリスト。 |
fragments
|
sequence of strings ; default = []ターゲット構成でアスペクトに必要な構成フラグメントの名前のリスト。 |
host_fragments
|
sequence of strings ;
default = []ホスト構成でアスペクトに必要な構成フラグメントの名前のリスト。 |
toolchains
|
sequence ;
default = []設定されている場合、このルールに必要なツールチェーンのセット。リストには、任意の組み合わせの String、Label、StarlarkToolchainTypeApi オブジェクトを含めることができます。ツールチェーンは現在のプラットフォームを確認することで検出され、 ctx.toolchain を介してルールの実装に提供されます。 |
incompatible_use_toolchain_transition
|
default = False 非推奨になったため、削除する必要があります。 |
doc
|
string; or None ; default = Noneドキュメント生成ツールで抽出できる特徴の説明。 |
apply_to_generating_rules
|
default = False true の場合、アスペクトが出力ファイルに適用されると、代わりに出力ファイルの生成ルールに適用されます。 たとえば、ある側面が「deps」属性を通じて推移的に伝播し、それがターゲット「alpha」に適用されるとします。`alpha` に `deps = [':beta_output']` がある場合、`beta_output` がターゲットの `beta` の出力を宣言していると仮定します。 `beta` に`` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` A ` ` ` ` ` A ` ` ` A ` ` ` ` A ` ` ` ` A ` ` ` A ` ` ` ` A ` ` ` ` A ` ` ` A ` ` ` ` A ` ` ` ` ` ` `、 デフォルトは False です。 |
exec_compatible_with
|
sequence of strings ; default = []この側面のすべてのインスタンスに適用される実行プラットフォームの制約のリスト。 |
exec_groups
|
dict; or None ; default = None実行グループ名(文字列)を exec_group s に部門。設定すると、1 つのインスタンス内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。 |
構成フィールド
LateBoundDefault configuration_field(fragment, name)label 型の属性の遅延遅延デフォルト値を参照します。値を決定する前に構成を作成する必要がある場合、その値は「遅延」になります。この値を使用する属性はすべて非公開にする必要があります。
使用例:
ルール属性の定義:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
ルールの実装でアクセスする:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
パラメータ
パラメータ | 説明 |
---|---|
fragment
|
必須 : 遅延値を含む構成フラグメントの名前。 |
name
|
必須 構成フラグメントから取得する値の名前。 |
Depset
depset depset(direct=None, order="default", *, transitive=None)depset を作成します。
direct
パラメータは、DEPSET の直接要素のリストです。transitive
パラメータは、作成された DEPSET の間接要素になる DEPSET のリストです。デプセットがリストに変換されるときに要素が返される順序は、order
パラメータで指定されます。詳細については、Depset の概要をご覧ください。デセットのすべての要素(直接的および間接的)は、式 type(x)
で得られる同じ型でなければなりません。
ハッシュベースのセットは反復処理中の重複を排除するために使用されるので、depset のすべての要素はハッシュ可能である必要があります。しかし、この不変性は現在、すべてのコンストラクタで一貫してチェックされているわけではありません。整合性チェックを有効にするには、--compatible_always_check_depset_elements フラグを使用します。これは、今後のリリースでデフォルトの動作になります。問題 10313 をご覧ください。
また、要素は現在不変である必要がありますが、この制限は今後緩和される予定です。
作成するデプセットの順序は、その transitive
デプセットの順序と互換性がある必要があります。"default"
の注文は他の注文と互換性があります。他のすべての注文は、互換性のある注文に限られます。
下位互換性と上位互換性に関する注意事項。現在、この関数は位置 items
パラメータを受け入れます。direct
は非推奨であり、今後削除される予定です。削除後は depset
関数の唯一の位置パラメータになります。したがって、次の呼び出しはどちらも同等で、今後も問題ありません。
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
パラメータ
パラメータ | 説明 |
---|---|
direct
|
sequence; or None ; default = Noneデプトの直接要素のリスト。 |
order
|
default = "default" 新しい Depset の走査戦略。設定可能な値についてはこちらをご覧ください。 |
transitive
|
sequence of depsets; or None ; default = None要素が Depset の間接要素になる Depset のリスト。 |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])ルールの実装中に特定の実行プラットフォームのアクションを作成するために使用できる実行グループを作成します。
パラメータ
パラメータ | 説明 |
---|---|
toolchains
|
sequence ; default = []この実行グループが必要とするツールチェーンのセット。リストには、任意の組み合わせの String、Label、StarlarkToolchainTypeApi オブジェクトを含めることができます。 |
exec_compatible_with
|
sequence of strings ; default = []実行プラットフォーム上の制約のリスト。 |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='')新しいモジュール拡張機能を作成します。この値をグローバル値に保存し、MODULE.bazel ファイルでエクスポートして使用できるようにします。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
必須 このモジュール拡張機能を実装する関数です。単一のパラメータ module_ctx を指定する必要があります。ビルドの開始時に関数が 1 回呼び出され、使用可能なリポジトリのセットが決定されます。 |
tag_classes
|
default = {} 拡張機能で使用されるすべてのタグクラスを宣言する辞書。タグクラスの名前から tag_class オブジェクトにマッピングされます。 |
doc
|
default = '' ドキュメント生成ツールで抽出できる、モジュール拡張機能の説明。 |
プロバイダ
unknown provider(doc=None, *, fields=None, init=None)プロバイダ シンボルを定義します。プロバイダは、それを呼び出してインスタンス化することも、ターゲットからそのプロバイダのインスタンスを取得するためのキーとして直接使用することもできます。例:
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
プロバイダの使用方法の包括的なガイドについては、ルール(プロバイダ)をご覧ください。
init
が指定されていない場合、呼び出し可能な Provider
値を返します。
init
を指定すると、Provider
呼び出し可能値と raw コンストラクタ呼び出し可能値という 2 つの要素タプルを返します。詳しくは、 ルール(カスタム プロバイダのカスタム初期化)と下記の init
パラメータの説明をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
doc
|
string; or None ;
デフォルト = なしドキュメント生成ツールで抽出できるプロバイダの説明。 |
fields
|
sequence of strings; or dict; or None ;
default = None指定すると、許可されるフィールドのセットが制限されます。 有効な値は次のとおりです。
|
init
|
callable; or None ; default = Noneインスタンス化の際にプロバイダのフィールド値を前処理して検証するためのコールバック(省略可)。 init を指定すると、provider() は 2 つの要素のタプル(標準のプロバイダ シンボルと未加工のコンストラクタ)を返します。直感的なディスカッションやユースケースについては、ルール(プロバイダのカスタム初期化)をご覧ください。
init コールバックが指定されていない場合、シンボル P の呼び出しはデフォルトのコンストラクタ関数 c の呼び出しとして機能します。つまり、P(*args, **kwargs) は c(*args, **kwargs) を返します。たとえば、MyInfo = provider() m = MyInfo(foo = 1)を使用すると、 m が m.foo == 1 の MyInfo インスタンスになるように簡単にできます。ただし、
注意: 上記のステップは、 このように、
MyInfo, _new_myinfo = provider(init = ...) |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')新しいリポジトリ ルールを作成します。WORKSPACE ファイルから読み込んで呼び出せるように、グローバル値に保存します。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
必須 このルールを実装する関数。単一のパラメータ repository_ctx が必要です。この関数は、ルールのインスタンスごとに、読み込みフェーズで呼び出されます。 |
attrs
|
dict; or None ; default = None。辞書のすべての属性を宣言します。属性名から属性オブジェクトにマッピングされます(attr モジュールをご覧ください)。 _ で始まる属性は非公開で、ラベルに対する暗黙的な依存関係をファイルに追加できます(リポジトリ ルールは生成されたアーティファクトに依存できません)。属性 name は暗黙的に追加されるため、指定できません。 |
local
|
default = False このルールでローカル システムからすべてのものを取得し、取得ごとに再評価する必要があることを示します。 |
environ
|
sequence of strings ; default = []このリポジトリ ルールが依存する環境変数のリストを指定します。そのリストの環境変数が変更されると、リポジトリが再取得されます。 |
configure
|
default = False リポジトリが構成目的でシステムを検査することを示します |
remotable
|
default = False 試験運用版。このパラメータは試験運用版であり、いつでも変更される可能性があります。依存しないでください。 ---experimental_repo_remote_exec リモート実行と互換性を設定することで、試験運用版で有効になります。 |
doc
|
default = ' ドキュメント生成ツールで抽出できるリポジトリ ルールの説明。 |
ルール
callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)新しいルールを作成します。このルールは、BUILD ファイルまたはマクロから呼び出して、ターゲットを作成できます。
ルールは、.bzl ファイル内のグローバル変数に割り当てる必要があります。グローバル変数の名前はルールの名前になります。
テストルールには _test
で終わる名前を付ける必要がありますが、他のすべてのルールにこのサフィックスを付けることはできません。(この制限はターゲットにのみ適用され、ルールにのみ適用されます)。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
必須 このルールを実装する Starlark 関数のパラメータは ctx のみです。この関数は、分析フェーズでルールの各インスタンスに対して呼び出されます。ユーザーが指定した属性にアクセスできます。宣言されたすべての出力を生成するアクションを作成する必要があります。 |
test
|
default = False このルールがテストルールであるかどうか、つまり、 blaze test コマンドのサブジェクトかどうか。すべてのテストルールは、自動的に実行可能と見なされます。テストルールに executable = True を明示的に設定する必要はありません(また、おすすめしません)。詳しくは、 ルールのページをご覧ください。
|
attrs
|
dict; or None ; default = None。辞書のすべての属性を宣言します。属性名から属性オブジェクトにマッピングされます(attr モジュールをご覧ください)。 _ で始まる属性は非公開で、ラベルへの暗黙的な依存関係を追加できます。属性 name は暗黙的に追加されるため、指定できません。属性 visibility 、deprecation 、tags 、testonly 、features は暗黙的に追加され、オーバーライドできません。ほとんどのルールに必要なのは、わずかな属性だけです。メモリ使用量を制限するために、ルール関数は attr のサイズに上限を設けています。 |
outputs
|
dict; or None; or function ;
デフォルト = なし非推奨。このパラメータは非推奨で、まもなく削除されます。依存しないでください。 ---incompatible_no_rule_outputs_param で無効になっています。このフラグを使用して、コードと即時削除との互換性があることを確認します。このパラメータは非推奨となりました。代わりに OutputGroupInfo または attr.output を使用するようにルールを移行してください。事前に宣言された出力を定義するスキーマ。 この引数の値は、辞書、または辞書を生成するコールバック関数です。コールバックは、計算済みの依存関係属性と同様に動作します。たとえば、関数のパラメータ名とルールの属性が照合されるため、たとえば、定義 辞書の各エントリで、事前に宣言された出力が作成されます。ここで、キーは識別子、値は出力のラベルを決定する文字列テンプレートです。ルールの実装関数では、この識別子が、
実際には、最も一般的な置換プレースホルダは |
executable
|
default = False このルールが実行可能ファイルとみなされるかどうか( blaze run コマンドのサブジェクトになる可能性があるかどうか)。詳しくは、 ルールのページをご覧ください。
|
output_to_genfiles
|
default = False true の場合、ファイルは bin ディレクトリではなく genfiles ディレクトリに生成されます。既存のルールとの互換性(C++ のヘッダー ファイルの生成など)に必要な場合を除き、このフラグは設定しないでください。 |
fragments
|
sequence of strings ;
default = []ターゲット構成でルールに必要な構成フラグメントの名前のリスト。 |
host_fragments
|
sequence of strings ; default = []ホスト構成でルールに必要な構成フラグメントの名前のリスト。 |
_skylark_testable
|
default = False (試験運用版) true の場合、このルールにより、依存するルールに基づく検査アクションが Actions プロバイダによって公開されます。プロバイダは ctx.created_actions() を呼び出してルール自体を使用することもできます。これは、Starlark ルールの分析時の動作をテストする場合にのみ使用してください。このフラグは今後削除される可能性があります。 |
toolchains
|
sequence ;
default = []設定されている場合、このルールに必要なツールチェーンのセット。リストには、任意の組み合わせの String、Label、StarlarkToolchainTypeApi オブジェクトを含めることができます。ツールチェーンは現在のプラットフォームを確認することで検出され、 ctx.toolchain を介してルールの実装に提供されます。 |
incompatible_use_toolchain_transition
|
default = False 非推奨になったため、削除する必要があります。 |
doc
|
string; or None ; default = Noneドキュメント生成ツールで抽出できるルールの説明。 |
provides
|
default = [] 実装関数が返すプロバイダのリスト。 実装関数がここに記載されているプロバイダのタイプのいずれかを戻り値から省略すると、エラーが発生します。ただし、実装関数は、ここに記載されていない追加のプロバイダを返すことがあります。 リストの各要素は |
exec_compatible_with
|
sequence of strings ; default = []このルール タイプのすべてのターゲットに適用される実行プラットフォームの制約のリスト。 |
analysis_test
|
default = False true の場合、このルールは分析テストとして扱われます。 注: 分析テストルールは主に、Starlark のコアライブラリで提供されるインフラストラクチャを使用して定義されます。詳しくは、テストをご覧ください。 分析テストルールとしてルールを定義すると、その属性に対して analysis_test_transition を使用して定義された構成遷移を使用できますが、いくつかの制限が適用されます。
|
build_setting
|
BuildSetting; or None ;
デフォルト = なし設定されている場合、このルールのタイプを表します。 build setting 。config モジュールをご覧ください。このように設定すると、「build_setting_default」という名前の必須属性が、渡される値に対応する型を持つこのルールに自動的に追加されます。 |
cfg
|
default = None 設定されている場合、分析の前にルールが独自の構成に適用される構成遷移を指定します。 |
exec_groups
|
dict; or None ; default = None実行グループ名(文字列)を exec_group s に部門。設定すると、1 つのターゲット内の複数の実行プラットフォームでルールによるアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。 |
compile_one_filetype
|
sequence of strings; or None ;
default = None--compile_one_dependency で使用されます。複数のルールが特定のファイルを使用する場合は、他のルールではなくこのルールを選択します。 |
name
|
string; or None ;
デフォルト = なし非推奨。このパラメータは非推奨で、まもなく削除されます。依存しないでください。 --+incompatible_remove_rule_name_parameter で無効になっています。このフラグを使用して、コードと即時削除との互換性があることを確認します。非推奨: 使用しないでください。 このルールの名前。Bazel によって認識され、ロギング、 このパラメータを省略すると、宣言する .bzl モジュール内で、このルールに最初にバインドされる Starlark グローバル変数の名前がルールの名前に設定されます。したがって、名前が ルールの明示的な名前を指定しても、ルールをインスタンス化できる場所は変更されません。 |
select
unknown select(x, no_match_error='')
select()
は、ルール属性を構成可能にするヘルパー関数です。詳細については、ビルド百科事典をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
x
|
必須 構成条件を値にマッピングする辞書。各キーは、config_setting または constraint_value インスタンスを識別するラベルまたはラベル文字列です。文字列ではなくラベルを使用する状況については、マクロに関するドキュメントをご覧ください。 |
no_match_error
|
default = ' 一致する条件がない場合に報告するカスタム エラー(省略可)。 |
タグクラス
tag_class tag_class(attrs={}, *, doc='')新しい tag_class オブジェクトを作成します。このオブジェクトは、タグのクラス(モジュール拡張機能が使用できるデータ オブジェクト)の属性スキーマを定義します。
パラメータ
パラメータ | 説明 |
---|---|
attrs
|
default = {} このタグクラスのすべての属性を宣言する辞書。属性名から属性オブジェクトにマッピングされます(attr モジュールをご覧ください)。 |
doc
|
default = '' ドキュメント生成ツールで抽出できるタグクラスの説明。 |
visibility
None visibility(value)
現在初期化されている .bzl モジュールの読み込みの公開設定を設定します。
モジュールの読み込み状態は、他の BUILD ファイルと .bzl ファイルの読み込みを許可するかどうかを制御します。(これは、ファイルが他のターゲットの依存関係として表示されるかどうかを管理する、基盤となる .bzl ソースファイルのターゲットの公開設定とは異なります)。読み込みの公開設定はパッケージのレベルで機能します。モジュールを読み込むには、読み込みを行うファイルが、モジュールの公開設定が付与されているパッケージ内に存在している必要があります。モジュールは、表示されているかどうかに関係なく、常に独自のパッケージ内に読み込むことができます。
visibility()
は、.bzl ファイルごとに 1 回だけ呼び出すことができ、関数内ではなくトップレベルでのみ呼び出すことができます。推奨されるスタイルは、この呼び出しを load()
ステートメントと、引数を特定するために必要な簡単なロジックのすぐ下に配置することです。
フラグ --check_bzl_visibility
を false に設定すると、負荷の表示違反は警告を発しますが、ビルドは失敗しません。
パラメータ
パラメータ | 説明 |
---|---|
value
|
必須 パッケージ仕様文字列のリスト、または単一のパッケージ仕様文字列。 パッケージの仕様は
「@」構文は使用できません。すべての指定は、現在のモジュールのリポジトリを基準として解釈されます。
|