すべての .bzl ファイルで使用可能なグローバル メソッド。
メンバー
- analysis_test_transition
- アスペクト
- configuration_field
- depset
- exec_group
- exec_transition
- マクロ
- module_extension
- プロバイダ
- repository_rule
- rule
- 選択
- subrule
- tag_class
- 公開設定
analysis_test_transition
transition analysis_test_transition(settings)
分析テストルールの依存関係に適用される構成遷移を作成します。この遷移は、analysis_test = True
を含むルールの属性にのみ適用できます。このようなルールには機能上の制限があるため(依存関係ツリーのサイズが制限されているなど)、この関数を使用して作成された遷移は、transition()
を使用して作成された遷移と比較して、潜在的なスコープが制限されます。
この関数は、主に Analysis Test Framework コア ライブラリを容易にするために設計されています。ベスト プラクティスについては、ドキュメント(または実装)をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
settings
|
dict;
必須 この構成遷移で設定する必要がある構成設定に関する情報を含む辞書。キーはビルド設定ラベルで、値は移行後の新しい値です。その他の設定は変更されません。分析テストが合格するために設定が必要な特定の構成設定を宣言する場合に使用します。 |
アスペクト
Aspect aspect(implementation, attr_aspects=[], toolchains_aspects=[], attrs={}, 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, subrules=[])
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
関数。必須 このアスペクトを実装する Starlark 関数。Target(アスペクトが適用されるターゲット)と ctx(ターゲットが作成されたルール コンテキスト)の 2 つのパラメータのみを持ちます。ターゲットの属性は ctx.rule フィールドで使用できます。この関数は、ターゲットへのアスペクトの適用ごとに分析フェーズで評価されます。 |
attr_aspects
|
文字列のシーケンス。デフォルトは [] です。属性名のリスト。アスペクトは、これらの名前を持つターゲットの属性で指定された依存関係に沿って伝播されます。一般的な値には deps と exports があります。リストに 1 つの文字列 "*" を含めて、ターゲットのすべての依存関係に伝播することもできます。 |
toolchains_aspects
|
sequence: デフォルトは [] です。ツールチェーン タイプのリスト。アスペクトは、これらのツールチェーン タイプに一致するターゲット ツールチェーンに伝播されます。 |
attrs
|
dict: デフォルトは {} 。アスペクトのすべての属性を宣言するディクショナリ。属性名から属性オブジェクト( attr.label や attr.string など)にマッピングします(attr モジュールをご覧ください)。アスペクト属性は、実装関数で ctx パラメータのフィールドとして使用できます。
明示的な属性は 宣言された属性は、 |
required_providers
|
sequence: デフォルトは [] 。この属性を使用すると、必要なプロバイダをアドバタイズするルールを持つターゲットにのみ、アスペクトの伝播を制限できます。値は、個々のプロバイダまたはプロバイダのリストを含むリストにする必要があります。両方を含むリストは使用できません。たとえば、 [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効です。ネストされていないプロバイダのリストは、プロバイダのリストが 1 つ含まれるリストに自動的に変換されます。つまり、 ルール( |
required_aspect_providers
|
sequence: デフォルトは [] です。この属性により、このアスペクトは他のアスペクトを検査できます。値は、個々のプロバイダまたはプロバイダのリストを含むリストにする必要があります。両方を含むリストは使用できません。たとえば、 [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効です。ネストされていないプロバイダのリストは、プロバイダのリストが 1 つ含まれるリストに自動的に変換されます。つまり、 別のアスペクト( |
provides
|
シーケンス。デフォルトは [] 。実装関数が返す必要があるプロバイダのリスト。 実装関数で、ここで説明するプロバイダのいずれかの型が戻り値から省略されている場合はエラーです。ただし、実装関数はここに記載されていない追加のプロバイダを返す場合があります。 リストの各要素は、 |
requires
|
アスペクトのシーケンス。デフォルトは [] 。このアスペクトの前に伝播する必要があるアスペクトのリスト。 |
fragments
|
文字列のシーケンス。デフォルトは [] 。ターゲット構成でアスペクトに必要な構成フラグメントの名前のリスト。 |
host_fragments
|
文字列のシーケンス。デフォルトは [] 。ホスト構成でアスペクトに必要な構成フラグメントの名前のリスト。 |
toolchains
|
sequence: デフォルトは [] 。設定されている場合、このアスペクトに必要なツールチェーンのセット。このリストには、String、Label、StarlarkToolchainTypeApi オブジェクトを任意の組み合わせで含めることができます。ツールチェーンは現在のプラットフォームをチェックすることで検出され、 ctx.toolchain を介してアスペクト実装に提供されます。
|
incompatible_use_toolchain_transition
|
bool;
デフォルトは False 非推奨。使用されなくなったため削除する必要があります。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できるアスペクトの説明。 |
apply_to_generating_rules
|
bool;
デフォルトは False true の場合、出力ファイルに適用される代わりに、出力ファイルの生成ルールに適用されます。 たとえば、アスペクトが属性「deps」を介して伝播し、ターゲット「alpha」に適用されているとします。alpha に「deps = [':beta_output']」があるとします。ここで、beta_output はターゲット beta の宣言された出力です。beta にターゲット「charlie」が「deps」の 1 つとしてあるとします。アスペクトの「apply_to_generating_rules=True」の場合、アスペクトは「alpha」、「beta」、「charlie」を介して伝播します。False の場合、アスペクトは「alpha」にのみ伝播します。 デフォルトは false です。 |
exec_compatible_with
|
文字列のシーケンス。デフォルトは [] 。このアスペクトのすべてのインスタンスに適用される実行プラットフォームの制約のリスト。 |
exec_groups
|
辞書、または None 。デフォルトは None 。実行グループ名(文字列)と exec_group s の辞書。設定すると、アスペクトが 1 つのインスタンス内の複数の実行プラットフォームでアクションを実行できるようになります。詳細については、実行グループのドキュメントをご覧ください。 |
subrules
|
サブルールのシーケンス。デフォルトは [] 。試験運用版: このアスペクトで使用されるサブルールのリスト。 |
configuration_field
LateBoundDefault configuration_field(fragment, name)
使用例:
ルール属性の定義:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
ルール実装でのアクセス:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
パラメータ
パラメータ | 説明 |
---|---|
fragment
|
string;
必須 レイト バウンド値を含む構成フラグメントの名前。 |
name
|
string;
必須 構成フラグメントから取得する値の名前。 |
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
パラメータは depset の直接要素のリストであり、transitive
パラメータは、作成された depset の間接要素となる depset のリストです。depset がリストに変換されたときに要素が返される順序は、order
パラメータで指定します。詳細については、Depset の概要をご覧ください。depset のすべての要素(直接的および間接的)は、式 type(x)
によって取得されるものと同じ型である必要があります。
ハッシュベースのセットを使用してイテレーション中に重複を排除するため、depset のすべての要素をハッシュ可能にする必要があります。ただし、現在のところ、この不変条件はすべてのコンストラクタで常にチェックされているわけではありません。--incompatible_always_check_depset_elements フラグを使用して、一貫したチェックを有効にします。これは今後のリリースのデフォルトの動作になります。問題 10313 をご覧ください。
また、現在のところ要素は不変である必要がありますが、この制限は今後緩和される予定です。
作成された depset の順序は、transitive
depset の順序と互換性がある必要があります。"default"
オーダーは他のオーダーと互換性がありますが、他のオーダーは互換性がありません。
パラメータ
パラメータ | 説明 |
---|---|
direct
|
シーケンス、または None 。デフォルトは None 。depset の直接要素のリスト。 |
order
|
文字列。デフォルトは "default" 。新しい depset の走査戦略。有効な値については、こちらをご覧ください。 |
transitive
|
depset のシーケンス、または None 。デフォルトは None です。要素が depset の間接要素になる depset のリスト。 |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])
パラメータ
パラメータ | 説明 |
---|---|
toolchains
|
sequence(デフォルトは [] ): この実行グループに必要なツールチェーンのセット。このリストには、String、Label、StarlarkToolchainTypeApi オブジェクトを任意の組み合わせで含めることができます。 |
exec_compatible_with
|
文字列のシーケンス。デフォルトは [] 。実行プラットフォームの制約のリスト。 |
exec_transition
transition exec_transition(implementation, inputs, outputs)
transition()
の特殊なバージョン。ベスト プラクティスについては、ドキュメント(または実装)をご覧ください。Bazel 組み込み関数からのみ使用できます。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
呼び出し可能。必須 |
inputs
|
文字列のシーケンス。必須 |
outputs
|
文字列のシーケンス。必須 |
マクロ
macro macro(implementation, attrs={}, inherit_attrs=None, finalizer=False, doc=None)
BUILD
ファイルまたはマクロ(レガシーまたはシンボリック)で呼び出して、ターゲットを定義できます(複数のターゲットも可能です)。macro(...)
によって返された値は、.bzl ファイル内のグローバル変数に割り当てる必要があります。グローバル変数の名前は、マクロ記号の名前になります。
シンボリック マクロの使用方法に関する包括的なガイドについては、マクロをご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
関数;
必須 このマクロを実装する Starlark 関数。マクロの属性の値は、キーワード引数として実装関数に渡されます。実装関数には、 name と visibility の少なくとも 2 つの名前付きパラメータが必要です。また、マクロが属性を継承する場合(下記の inherit_attrs を参照)、**kwargs 残留キーワード パラメータが必要です。慣例として、実装関数には、マクロが検査、変更、または「メイン」以外のターゲットに渡す必要がある属性に名前付きパラメータが必要です。一方、「メイン」ターゲットに変更せずに渡される「一括」継承属性は、 実装関数は値を返さないでください。代わりに、実装関数はルールまたはマクロ記号を呼び出してターゲットを宣言します。 シンボリック マクロによって宣言されたターゲットまたは内部シンボリック マクロの名前(マクロの実装関数が帰属的に呼び出す Starlark 関数を含む)は、 デフォルトでは、シンボリック マクロで宣言されたターゲット(マクロの実装関数が参照する Starlark 関数を含む)は、マクロを定義する .bzl ファイルを含むパッケージでのみ表示されます。シンボリック マクロの呼び出し元を含む外部に公開されるターゲットを宣言するには、実装関数で 次の API は、マクロ実装関数内と、その関数が呼び出す Starlark 関数内では使用できません。
|
attrs
|
dict: デフォルトは {} 。このマクロがサポートする属性の辞書。rule.attrs に似ています。キーは属性名で、値は attr.label_list(...) などの属性オブジェクト(attr モジュールを参照)または None です。None エントリは、マクロにその名前の属性がないことを示します(inherit_attrs を介して継承する場合でも、以下を参照)。特別な 名前が メモリ使用量を制限するため、宣言できる属性の数には上限があります。 |
inherit_attrs
|
ルール、マクロ、文字列、または None 。デフォルトは None です。試験運用版。このパラメータは試験運用版であり、随時変更される可能性があります。これに依存しないでください。 --experimental_enable_macro_inherit_attrs を設定することで、試験運用版として有効にできます。マクロが属性を継承するルールシンボル、マクロシンボル、または組み込みの共通属性リストの名前(後述)です。
継承メカニズムは次のように機能します。
必須ではない属性が継承されると、元のルールまたはマクロで指定された値に関係なく、属性のデフォルト値は たとえば、次のマクロは、 def _my_cc_library_impl(name, visibility, tags, **kwargs): # Append a tag; tags attr was inherited from native.cc_library, and # therefore is None unless explicitly set by the caller of my_cc_library() my_tags = (tags or []) + ["my_custom_tag"] native.cc_library( name = name, visibility = visibility, tags = my_tags, **kwargs ) my_cc_library = macro( implementation = _my_cc_library_impl, inherit_attrs = native.cc_library, attrs = { "cxxopts": None, "copts": attr.string_list(default = ["-D_FOO"]), }, )
慣例として、マクロは、オーバーライドされていない継承された属性を、マクロがラップする「メイン」ルールまたはマクロ記号に変更せずに渡す必要があります。通常、継承された属性のほとんどは、実装関数のパラメータ リストにパラメータを持たず、単に |
finalizer
|
bool;
デフォルトは False このマクロがルール ファイナライザであるかどうか。 BUILD ファイル内の位置に関係なく、ファイナライザ以外のすべてのターゲットが定義された後、パッケージの読み込みの最後に評価されるマクロです。
通常のシンボリック マクロとは異なり、ルール ファイナライザは |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できるマクロの説明。 |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)
use_extension
を使用して MODULE.bazel ファイルでエクスポートして使用できるようにします。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
callable;
必須 このモジュール拡張を実装する関数。1 つのパラメータ module_ctx を受け取る必要があります。この関数は、ビルドの開始時に 1 回呼び出され、使用可能なリポジトリのセットを決定します。 |
tag_classes
|
dict(デフォルトは {} ): 拡張機能で使用されるすべてのタグクラスを宣言するディクショナリ。タグクラスの名前から tag_class オブジェクトにマッピングします。
|
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できるモジュール拡張の説明。 |
environ
|
文字列のシーケンス。デフォルトは [] 。このモジュール拡張機能が依存する環境変数のリストを指定します。このリスト内の環境変数が変更されると、拡張機能が再評価されます。 |
os_dependent
|
bool;
デフォルトは False この拡張機能が OS に依存するかどうかを示します |
arch_dependent
|
bool;
デフォルトは False この拡張機能がアーキテクチャに依存するかどうかを示します |
provider
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
が指定されている場合は、2 つの要素(Provider
呼び出し可能値と未加工のコンストラクタ呼び出し可能値)のタプルを返します。詳細については、 ルール(カスタム プロバイダのカスタム初期化)と、以下の init
パラメータの説明をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できるプロバイダの説明。 |
fields
|
string のシーケンス、dict、または None 。デフォルトは None 。指定すると、許可されるフィールドのセットが制限されます。 指定できる値は次のとおりです。
|
init
|
呼び出し可能オブジェクト、または None 。デフォルトは 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=None)
module_extension()
実装関数から読み込んで呼び出したり、use_repo_rule()
で使用できるようにします。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
callable(呼び出し可能): 必須 このルールを実装する関数。パラメータは repository_ctx のみです。この関数は、ルールの各インスタンスの読み込みフェーズで呼び出されます。 |
attrs
|
dict、または None 。デフォルトは None 。リポジトリ ルールのすべての属性を宣言する辞書。属性名から属性オブジェクトにマッピングします( attr モジュールを参照)。_ で始まる属性は非公開で、ラベルに対する暗黙的な依存関係をファイルに追加するために使用できます(リポジトリ ルールは生成されたアーティファクトに依存できません)。属性 name は暗黙的に追加されるため、指定する必要はありません。宣言された属性は、 |
local
|
bool。デフォルトは False 。このルールがローカル システムからすべてを取得し、取得ごとに再評価する必要があることを示します。 |
environ
|
文字列のシーケンス。デフォルトは [] 。非推奨。このパラメータのサポートは終了しました。代わりに repository_ctx.getenv に移行します。このリポジトリ ルールが依存する環境変数のリストを提供します。このリスト内の環境変数が変更されると、リポジトリが再取得されます。 |
configure
|
bool;
デフォルトは False リポジトリが構成目的でシステムを検査することを示します |
remotable
|
bool。デフォルトは False 。試験運用版。このパラメータは試験運用版であり、随時変更される可能性があります。これに依存しないでください。 --experimental_repo_remote_exec Compatible with remote execution を設定することで、試験運用版として有効にできます。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できるリポジトリ ルールの説明。 |
ルール
callable rule(implementation, *, test=unbound, attrs={}, outputs=None, executable=unbound, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc=None, provides=[], dependency_resolution_rule=False, exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])
ルールは .bzl ファイル内のグローバル変数に割り当てる必要があります。グローバル変数の名前はルールの名前です。
テストルールの名前は _test
で終わる必要があります。他のすべてのルールでは、この接尾辞を使用しないでください。(この制限はルールにのみ適用され、ターゲットには適用されません)。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
関数。必須 このルールを実装する Starlark 関数には、ctx という 1 つのパラメータのみが必要です。この関数は、分析フェーズでルールの各インスタンスに対して呼び出されます。ユーザーが指定した属性にアクセスできます。宣言されたすべての出力を生成するアクションを作成する必要があります。 |
test
|
bool。デフォルトは unbound です。このルールがテストルールであるかどうか、つまり blaze test コマンドの対象となるかどうか。すべてのテストルールは自動的に実行可能と見なされます。テストルールに executable = True を明示的に設定する必要はありません(推奨されません)。値はデフォルトで False に設定されます。詳細については、 ルール ページをご覧ください。 |
attrs
|
dict: デフォルトは {} 。ルールのすべての属性を宣言するディクショナリ。属性名から属性オブジェクトにマッピングします( attr モジュールを参照)。_ で始まる属性は非公開で、ラベルへの暗黙的な依存関係を追加するために使用できます。属性 name は暗黙的に追加されるため、指定する必要はありません。属性 visibility 、deprecation 、tags 、testonly 、features は暗黙的に追加され、オーバーライドできません。ほとんどのルールでは、必要な属性はほんの一握りです。メモリ使用量を制限するため、宣言できる属性の数には上限があります。宣言された属性は、 |
outputs
|
辞書、None 、関数。デフォルトは None 。非推奨。このパラメータは非推奨となり、まもなく削除されます。これに依存しないでください。 --incompatible_no_rule_outputs_param では無効になっています。このフラグを使用すると、コードがまもなく削除される機能と互換性があることを確認できます。このパラメータは非推奨になりました。代わりに OutputGroupInfo または attr.output を使用するようにルールを移行します。事前宣言された出力を定義するためのスキーマ。 この引数の値は、ディクショナリまたはディクショナリを生成するコールバック関数です。コールバックは、計算された依存関係属性と同様に機能します。関数のパラメータ名はルールの属性と照合されます。たとえば、定義 辞書内の各エントリは、事前宣言された出力を作成します。キーは識別子で、値は出力のラベルを決定する文字列テンプレートです。ルールの実装関数では、識別子は
実際には、最も一般的な置換プレースホルダは |
executable
|
bool。デフォルトは unbound 。このルールが実行可能と見なされるかどうか、つまり blaze run コマンドの対象となるかどうか。デフォルトでは False に設定されます。詳細については、 ルール ページをご覧ください。 |
output_to_genfiles
|
bool;
デフォルトは False true の場合、ファイルは bin ディレクトリではなく genfiles ディレクトリに生成されます。既存のルールとの互換性のために必要な場合(C++ のヘッダー ファイルを生成する場合など)を除き、このフラグを設定しないでください。 |
fragments
|
文字列のシーケンス。デフォルトは [] 。ターゲット構成でルールに必要な構成フラグメントの名前のリスト。 |
host_fragments
|
文字列のシーケンス。デフォルトは [] 。ホスト構成でルールに必要な構成フラグメントの名前のリスト。 |
_skylark_testable
|
bool。デフォルトは False 。(試験運用版) true の場合、このルールは、 Actions プロバイダを介して、このルールに依存するルールによる検査のためにアクションを公開します。プロバイダは、ctx.created_actions() を呼び出すことで、ルール自体でも使用できます。これは、Starlark ルールの分析時の動作をテストする場合にのみ使用してください。このフラグは今後削除される可能性があります。 |
toolchains
|
sequence: デフォルトは [] 。設定されている場合、このルールに必要なツールチェーンのセット。このリストには、String、Label、StarlarkToolchainTypeApi オブジェクトを任意の組み合わせで含めることができます。ツールチェーンは現在のプラットフォームをチェックすることで検出され、 ctx.toolchain を介してルール実装に提供されます。
|
incompatible_use_toolchain_transition
|
bool;
デフォルトは False 非推奨。使用されなくなったため削除する必要があります。 |
doc
|
文字列、または None 。デフォルトは None です。ドキュメント生成ツールによって抽出できるルールの説明。 |
provides
|
シーケンス。デフォルトは [] 。実装関数が返す必要があるプロバイダのリスト。 実装関数で、ここで説明するプロバイダのいずれかの型が戻り値から省略されている場合はエラーです。ただし、実装関数はここに記載されていない追加のプロバイダを返す場合があります。 リストの各要素は、 |
dependency_resolution_rule
|
bool。デフォルトは False 。設定すると、マテリアルライザで使用可能とマークされている属性を介して、ルールが依存関係になることができます。このフラグが設定されているルールのすべての属性は、マテリアルライザでも使用可能としてマークする必要があります。これは、マークされたルールが、マークされていないルールに依存できないようにするためです。 |
exec_compatible_with
|
文字列のシーケンス。デフォルトは [] 。このルールタイプのすべてのターゲットに適用される実行プラットフォームの制約のリスト。 |
analysis_test
|
bool。デフォルトは False 。true の場合、このルールは分析テストとして扱われます。 注: 分析テストルールは、主にコア Starlark ライブラリで提供されるインフラストラクチャを使用して定義されます。ガイダンスについては、テストをご覧ください。 ルールが分析テストルールとして定義されている場合、その属性で analysis_test_transition を使用して定義された構成遷移を使用できますが、一部の制限が適用されます。
|
build_setting
|
BuildSetting、または None 。デフォルトは None 。設定されている場合、このルールの build setting の種類を記述します。config モジュールをご覧ください。これが設定されている場合、このルールに「build_setting_default」という必須属性が自動的に追加され、ここに渡された値に対応する型が設定されます。
|
cfg
|
デフォルトは None この値を設定すると、分析前にルールが独自の構成に適用する構成遷移を指定できます。 |
exec_groups
|
辞書、または None 。デフォルトは None 。実行グループ名(文字列)と exec_group s の辞書。設定すると、ルールで 1 つのターゲット内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。 |
initializer
|
デフォルトは None です。試験運用版: ルールの属性を初期化する Stalark 関数。 この関数は、ルールのインスタンスごとに読み込み時に呼び出されます。 属性名から目的の値へのディクショナリを返す必要があります。返されない属性は影響を受けません。値として イニシャライザは、属性定義で指定されたデフォルト値の前に評価されます。したがって、イニシャライザのシグネチャにデフォルト値が含まれている場合、属性定義のデフォルト値が上書きされます( 同様に、イニシャライザの署名のパラメータにデフォルト値がない場合、そのパラメータは必須になります。このような場合は、属性定義のデフォルト設定または必須設定を省略することをおすすめします。 処理されない属性には 拡張ルールの場合、すべての初期化子は子から祖先に向かって順番に呼び出されます。各イニシャライザには、そのイニシャライザが認識している公開属性のみが渡されます。 |
parent
|
デフォルトは None です。試験運用版: 拡張された Stalark ルール。設定すると、公開属性とアドバタイズされたプロバイダが統合されます。このルールは、親の executable と test に一致します。fragments 、toolchains 、exec_compatible_with 、exec_groups の値は統合されます。以前のパラメータや非推奨のパラメータは設定できません。親の受信構成遷移 cfg は、thisrule の受信構成の後に適用されます。 |
extendable
|
bool、Label、string、None (デフォルトは None )(試験運用版): このルールを拡張できるルールを定義する許可リストのラベル。True または False に設定して、常に拡張を許可または禁止することもできます。Bazel のデフォルトでは、拡張機能は常に許可されます。 |
subrules
|
サブルールのシーケンス。デフォルトは [] 。試験運用版: このルールで使用されるサブルールのリスト。 |
選択
unknown select(x, no_match_error='')
select()
は、ルール属性を構成可能にするヘルパー関数です。詳しくは、百科事典を作成をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
x
|
dict;
必須 構成条件を値にマッピングする辞書。各キーは、config_setting インスタンスまたは constraint_value インスタンスを識別するラベルまたはラベル文字列です。文字列ではなくラベルを使用する場合は、マクロに関するドキュメントをご覧ください。 |
no_match_error
|
文字列。デフォルトは '' 。条件が一致しなかった場合に報告するカスタム エラー(省略可)。 |
サブルール
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
関数。必須 このサブルールを実装する Starlark 関数 |
attrs
|
dict: デフォルトは {} 。サブルールのすべての(非公開)属性を宣言する辞書。 サブルールは、ラベル型(ラベルまたはラベルリスト)の非公開属性のみを持つことができます。これらのラベルに対応する解決済み値は、Bazel によってサブルールの実装関数に名前付き引数として自動的に渡されます(そのため、実装関数は属性名に一致する名前付きパラメータを受け入れる必要が生じます)。これらの値の型は次のとおりです。
|
toolchains
|
sequence: デフォルトは [] 。設定されている場合、このサブルールに必要なツールチェーンのセット。このリストには、String、Label、StarlarkToolchainTypeApi オブジェクトを任意の組み合わせで含めることができます。ツールチェーンは現在のプラットフォームをチェックすることで検出され、 ctx.toolchains を介してサブルールの実装に提供されます。このパラメータを設定する場合は、使用ルールで AEG を有効にする必要があります。AEG にまだ移行していない場合は、https://bazel.build/extending/auto-exec-groups#migration-aegs をご覧ください。
|
fragments
|
文字列のシーケンス。デフォルトは [] 。サブルールがターゲット構成で必要とする構成フラグメントの名前のリスト。 |
subrules
|
サブルールのシーケンス。デフォルトは [] 。このサブルールに必要な他のサブルールのリスト。 |
tag_class
tag_class tag_class(attrs={}, *, doc=None)
パラメータ
パラメータ | 説明 |
---|---|
attrs
|
dict: デフォルトは {} 。このタグクラスのすべての属性を宣言するディクショナリ。属性名から属性オブジェクトにマッピングします( attr モジュールを参照)。
|
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できるタグクラスの説明。 |
visibility
None
visibility(value)
現在初期化されている .bzl モジュールの読み込み公開設定を設定します。
モジュールの読み込み公開設定は、他の BUILD ファイルと .bzl ファイルがそのモジュールを読み込むことができるかどうかを制御します。(これは、ファイルが他のターゲットの依存関係として表示されることを制御する、基盤となる .bzl ソースファイルのターゲット ビジュアリビティとは異なります)。読み込みの公開設定はパッケージ単位で機能します。モジュールを読み込むには、読み込みを行うファイルが、そのモジュールの公開設定が付与されているパッケージに存在している必要があります。モジュールは、可視性に関わらず、常に独自のパッケージ内で読み込むことができます。
visibility()
は、.bzl ファイルごとに 1 回だけ呼び出すことができ、関数内ではなく最上位レベルでのみ呼び出せます。推奨されるスタイルは、この呼び出しを load()
ステートメントと、引数の決定に必要な簡単なロジックの直下に配置することです。
フラグ --check_bzl_visibility
が false に設定されている場合、読み込みの可視性の違反は警告を出力しますが、ビルドは失敗しません。
パラメータ
パラメータ | 説明 |
---|---|
value
|
必須 パッケージ仕様の文字列のリスト、または単一のパッケージ仕様の文字列。 パッケージの仕様は
「@」構文は使用できません。すべての仕様は、現在のモジュールのリポジトリを基準に解釈されます。
フラグ |