すべての .bzl ファイルで使用できるグローバル メソッド。
メンバー
- analysis_test_transition
- アスペクト
- configuration_field
- depset
- exec_group
- exec_transition
- module_extension
- プロバイダ
- repository_rule
- ルール
- 選択
- subrule
- tag_class
- 可視性
analysis_test_transition
transition analysis_test_transition(settings)
Analysis-test ルールの依存関係に適用する設定の移行を作成します。この移行は、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
|
function;
必須 このアスペクトを実装する Starlark 関数。Target(アスペクトの適用先のターゲット)と ctx(ターゲットの作成元となるルール コンテキスト)の 2 つのパラメータを使用します。ターゲットの属性は、 ctx.rule フィールドを介して利用できます。この関数は、ターゲットにアスペクトを適用するたびに、解析フェーズで評価されます。
|
attr_aspects
|
文字列のシーケンス。
デフォルトは [] 属性名のリスト。アスペクトは、これらの名前を持つターゲットの属性で指定された依存関係に沿って伝播されます。ここでの一般的な値には、 deps や exports があります。このリストには、ターゲットのすべての依存関係を伝播する単一の文字列 "*" を含めることもできます。
|
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
|
sequence;
デフォルトは [] です 実装関数が返すプロバイダのリスト。 実装関数で、以下のいずれかのタイプのプロバイダが戻り値から除外されている場合、エラーになります。ただし、実装関数は、ここに記載されていない追加のプロバイダを返すことがあります。 リストの各要素は、 |
requires
|
Aspect のシーケンス。
デフォルトは [] このアスペクトの前に伝播する必要があるアスペクトのリスト。 |
fragments
|
文字列のシーケンス。
デフォルトは [] アスペクトがターゲット構成で必要とする構成フラグメントの名前のリスト。 |
host_fragments
|
文字列のシーケンス。
デフォルトは [] アスペクトがホスト構成で必要とする構成フラグメントの名前のリスト。 |
toolchains
|
sequence;
デフォルトは [] です 設定した場合、このアスペクトに必要なツールチェーンのセット。このリストには、String、Label、StarlarkToolchainTypeApi などのオブジェクトを自由に組み合わせて含めることができます。ツールチェーンは、現在のプラットフォームを確認することで見つかり、 ctx.toolchain を介してアスペクト実装に提供されます。
|
incompatible_use_toolchain_transition
|
bool;
デフォルトは False です 非推奨です。使用されなくなったため、削除する必要があります。 |
doc
|
string;または None
デフォルトは None です ドキュメント生成ツールで抽出できるアスペクトの説明。 |
apply_to_generating_rules
|
bool;
デフォルトは False です true の場合、アスペクトは出力ファイルに適用された場合、代わりに出力ファイルの生成ルールに適用されます。 たとえば、アスペクトが属性 `deps` を介して推移的に伝播され、ターゲットの「alpha」に適用されるとします。`alpha` に `deps = [':beta_output']` があるとします。`beta_output` はターゲットの `beta` に対して宣言された出力です。`beta` に、その `deps` の 1 つとしてターゲットの `charlie` があるとします。アスペクトに `apply_to_generating_rules=True` が設定されている場合、アスペクトは `alpha`、`beta`、`charlie` を通じて伝播されます。False の場合、アスペクトは `alpha` にのみ伝播されます。 デフォルトは false です。 |
exec_compatible_with
|
文字列のシーケンス。
デフォルトは [] このアスペクトのすべてのインスタンスに適用される実行プラットフォームの制約のリスト。 |
exec_groups
|
dict;または 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(direct=None, order="default", *, transitive=None)
direct
パラメータは depset の直接要素のリストで、transitive
パラメータは、要素が作成された depset の間接要素になる depset のリストです。depset がリストに変換されるときに返される要素の順序は、order
パラメータで指定します。詳細については、Depsets の概要をご覧ください。
依存関係のすべての要素(直接的および間接的)は、式 type(x)
で取得される型と同じ型でなければなりません。
ハッシュベースのセットは反復処理中の重複を排除するために使用されるので、depset のすべての要素はハッシュ可能である必要があります。ただし、現在のところ、この不変条件は、すべてのコンストラクタで一貫してチェックされるわけではありません。整合性チェックを有効にするには、--compatible_always_check_depset_elements フラグを使用します。今後のリリースではこれがデフォルトの動作になる予定です。問題 10313 をご覧ください。
また、要素は現在不変である必要がありますが、この制限は今後緩和される予定です。
作成されるデプセットの順序は、transitive
デプセットの順序と互換性がある必要があります。"default"
の注文は他の注文と互換性があります。他のすべての注文は自分とのみ互換性があります。
パラメータ
パラメータ | 説明 |
---|---|
direct
|
sequence;または None
デフォルトは None です depset の direct 要素のリスト。 |
order
|
string;
デフォルトは "default" です 新しい依存関係の走査戦略。設定可能な値については、こちらをご覧ください。 |
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
|
callable
必須 |
inputs
|
文字列のシーケンス。
必須 |
outputs
|
文字列のシーケンス。
必須 |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)
use_extension
の MODULE.bazel ファイルで使用できるようにします。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
callable
必須 このモジュール拡張機能を実装する関数。単一のパラメータ module_ctx を取る必要があります。この関数は、ビルドの開始時に一度呼び出され、使用可能なリポジトリのセットを決定します。
|
tag_classes
|
dict;
デフォルトは {} です 拡張機能で使用されるすべてのタグクラスを宣言するためのディクショナリ。タグクラスの名前から tag_class オブジェクトにマッピングされます。
|
doc
|
string;または 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
|
string;または None
デフォルトは None です ドキュメント生成ツールで抽出できるプロバイダの説明。 |
fields
|
文字列のシーケンス。または dict。または None
デフォルトは None です指定すると、許可される一連のフィールドが制限されます。 有効な値は次のとおりです。
|
init
|
callableまたは 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 を設定することで、試験運用版として有効にできます。リモート実行との互換性あり |
doc
|
string;または 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=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])
ルールは、.bzl ファイル内のグローバル変数に割り当てる必要があります。グローバル変数の名前はルールの名前です。
テストルールには _test
で終わる名前が必要ですが、他のすべてのルールには、この接尾辞を付けないでください。(この制限はルールにのみ適用され、ターゲットには適用されません)。
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
function;
必須 Starlark の関数でこのルールを実装する場合、パラメータは 1 つだけ(ctx)であることが必要です。この関数は、ルールのインスタンスごとに分析フェーズで呼び出されます。ユーザーが指定した属性にアクセスできます。宣言されたすべての出力を生成するアクションを作成する必要があります。 |
test
|
bool;
デフォルトは unbound です このルールがテストルールであるかどうか、つまり blaze test コマンドのサブジェクトであるかどうかです。すべてのテストルールは自動的に実行可能executableとみなされます。テストルールで executable = True を明示的に設定する必要はありません(推奨されません)。値のデフォルト値は False です。詳しくは、 ルールのページをご覧ください。
|
attrs
|
dict;
デフォルトは {} です ルールのすべての属性を宣言できます。属性名から属性オブジェクトにマッピングされます(attr モジュールを参照)。 _ で始まる属性は非公開であり、ラベルへの暗黙的な依存関係の追加に使用できます。属性 name は暗黙的に追加されており、指定することはできません。属性 visibility 、deprecation 、tags 、testonly 、features は暗黙的に追加され、オーバーライドできません。ほとんどのルールで必要な属性は、ほんの一握りです。メモリ使用量を制限するために、宣言できる属性の数には上限があります。
|
outputs
|
dict;または 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
|
string;または None
デフォルトは None です ドキュメント生成ツールで抽出できるルールの説明。 |
provides
|
sequence;
デフォルトは [] です 実装関数が返すプロバイダのリスト。 実装関数で、以下のいずれかのタイプのプロバイダが戻り値から除外されている場合、エラーになります。ただし、実装関数は、ここに記載されていない追加のプロバイダを返すことがあります。 リストの各要素は、 |
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
|
dict;または None
デフォルトは None です 実行グループ名(文字列)の exec_group s への辞書。設定すると、ルールによって 1 つのターゲット内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。
|
initializer
|
デフォルトは None 試験運用版: ルールの属性を初期化する Stalark 関数。 この関数は、ルールのインスタンスごとに、読み込み時に呼び出されます。 ディクショナリを属性名から目的の値に返す必要があります。返されない属性は影響を受けません。 イニシャライザは、属性定義で指定されたデフォルト値の前に評価されます。そのため、イニシャライザのシグネチャのパラメータにデフォルト値が含まれている場合、属性定義のデフォルト値が上書きされます( 同様に、イニシャライザのシグネチャのパラメータにデフォルトがない場合、そのパラメータは必須になります。そのような場合は、属性定義のデフォルト設定や必須設定を省略することをおすすめします。 処理されない属性には 拡張ルールの場合、すべてのイニシャライザは、子から祖先に向かって呼び出されます。各イニシャライザには、認識している公開属性のみが渡されます。 |
parent
|
デフォルトは None です。試用版: 拡張された Stalark ルール。設定すると、パブリック属性はアドバタイズされたプロバイダだけでなく、統合されます。ルールは、親の executable と test を照合します。fragments 、toolchains 、exec_compatible_with 、exec_groups の値は統合されます。以前のパラメータまたは非推奨のパラメータは設定できません。親の受信設定の移行 cfg は、このルールの受信設定後に適用されます。
|
extendable
|
bool;またはラベルまたは string。または None
デフォルトは None です試験運用版: このルールを拡張できるルールを定義する許可リストのラベル。True / False に設定して、拡張を常に許可または禁止することもできます。Bazel では、デフォルトで拡張機能を常に許可しています。 |
subrules
|
サブルールのシーケンス。
デフォルトは [] 試験運用版: このルールで使用されるサブルールのリスト。 |
選択
unknown select(x, no_match_error='')
select()
は、ルール属性を構成可能にするヘルパー関数です。詳しくは、ビルドの百科事典をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
x
|
dict;
必須 構成条件を値にマッピングする辞書。各キーは、config_setting または constraint_value インスタンスを識別するラベルまたはラベル文字列です。文字列の代わりにラベルを使用するタイミングについては、マクロに関するドキュメントをご覧ください。 |
no_match_error
|
string;
デフォルトは '' です 条件が一致しない場合に報告するカスタムエラー(省略可)。 |
サブルール
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])
パラメータ
パラメータ | 説明 |
---|---|
implementation
|
function;
必須 このサブルールを実装する Starlark 関数 |
attrs
|
dict;
デフォルトは {} です サブルールのすべての(プライベートの)属性を宣言するためのディクショナリ。 サブルールに含めることができるのは、ラベルタイプの限定公開属性(label または label-list など)のみです。これらのラベルに対応する解決された値は、Bazel によって自動的にサブルールの実装関数に名前付き引数として渡されます(そのため、実装関数は属性名に一致する名前付きパラメータを受け入れる必要があります)。値の型は次のとおりです。
|
toolchains
|
sequence;
デフォルトは [] です 設定した場合、このサブルールに必要なツールチェーンのセット。このリストには、String、Label、StarlarkToolchainTypeApi などのオブジェクトを自由に組み合わせて含めることができます。現在のプラットフォームを確認することでツールチェーンが見つかり、 ctx.toolchains を介してサブルールの実装に提供されます。
|
fragments
|
文字列のシーケンス。
デフォルトは [] サブルールがターゲット構成で必要とする構成フラグメントの名前のリスト。 |
subrules
|
サブルールのシーケンス。
デフォルトは [] このサブルールに必要なその他のサブルールのリスト。 |
tag_class
tag_class tag_class(attrs={}, *, doc=None)
パラメータ
パラメータ | 説明 |
---|---|
attrs
|
dict;
デフォルトは {} です このタグクラスのすべての属性を宣言するための辞書。属性名から属性オブジェクトにマッピングされます(attr モジュールを参照)。 |
doc
|
string;または None
デフォルトは None です ドキュメント生成ツールで抽出できるタグクラスの説明。 |
visibility
None
visibility(value)
現在初期化されている .bzl モジュールの読み込み可視性を設定します。
モジュールの読み込みの可否は、他の BUILD ファイルや .bzl ファイルの読み込み可否を制御します。(これは、ファイルが他のターゲットの依存関係として表示されるかどうかを管理する、基になる .bzl ソースファイルのターゲット可視性とは異なります)。読み込みの公開設定はパッケージ単位で機能します。モジュールを読み込むには、読み込みを行うファイルが、そのモジュールの公開設定が付与されているパッケージに存在している必要があります。モジュールは、可視性に関係なく、常にそれぞれのパッケージ内で読み込めます。
visibility()
は、.bzl ファイルごとに 1 回だけ呼び出すことができます。関数内ではトップレベルで呼び出すことはできません。推奨されるスタイルは、この呼び出しを load()
ステートメントの直下と、引数の決定に必要な簡単なロジックのすぐ下に配置することです。
フラグ --check_bzl_visibility
が false に設定されている場合、読み込みの可視性違反により警告が出力されますが、ビルドは失敗しません。
パラメータ
パラメータ | 説明 |
---|---|
value
|
必須 パッケージ仕様の文字列のリスト、または単一のパッケージ仕様の文字列。 パッケージ仕様は
「@」構文は使用できません。すべての仕様は、現在のモジュールのリポジトリに対して相対的に解釈されます。
フラグ |