メンバー
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- パッケージ
- package_default_visibility
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- select
- サブパッケージ
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。
デフォルトは Nonedepset の直接要素のリスト。 |
order
|
文字列。
デフォルトは "default"新しい depset のトラバーサル戦略。使用可能な値については、こちらをご覧ください。 |
transitive
|
depset の シーケンス、または None。デフォルトは None要素が depset の間接要素になる depset のリスト。 |
existing_rule
unknown existing_rule(name)
None を返します。ここで、不変の dict のようなオブジェクトとは、dict のような反復処理、len(x)、name in x、x[name]、x.get(name)、x.items()、x.keys()、x.values() をサポートする、深く不変のオブジェクト x を意味します。
結果には、非公開のもの(名前が文字で始まらないもの)と、表現できない従来の属性タイプを除き、各属性のエントリが含まれます。また、dict には、ルール インスタンスの name と kind('cc_binary' など)のエントリが含まれます。
結果の値は、次のように属性値を表します。
- str、int、bool 型の属性はそのまま表されます。
- ラベルは、同じパッケージ内のターゲットの場合は
':foo'形式の文字列に、別のパッケージ内のターゲットの場合は'//pkg:name'形式の文字列に変換されます。 - リストはタプルとして表され、dict は新しい変更可能な dict に変換されます。要素は同じ方法で再帰的に変換されます。
select値は、上記のように変換されたコンテンツとともに返されます。- ルールのインスタンス化時に値が指定されず、デフォルト値が計算される属性は、結果から除外されます(計算されたデフォルト値は、分析フェーズまで計算できません)。
可能であれば、この関数はルール ファイナライザ シンボリック マクロの実装関数でのみ使用してください。他のコンテキストでこの関数を使用することはおすすめしません。今後の Bazel リリースで無効になります。これにより、BUILD ファイルが脆弱になり、順序に依存するようになります。また、ルール属性値を内部形式から Starlark に変換する他の 2 つの変換(計算されたデフォルトで使用されるものと ctx.attr.foo で使用されるもの)とは微妙に異なることに注意してください。
パラメータ
| パラメータ | 説明 |
|---|---|
name
|
文字列。
必須 ターゲットの名前。 |
existing_rules
unknown existing_rules()
existing_rule(name) によって返される結果にマッピングします。ここで、不変の dict のようなオブジェクトとは、dict のような反復処理、len(x)、name in x、x[name]、x.get(name)、x.items()、x.keys()、x.values() をサポートする、深く不変のオブジェクト x を意味します。
可能であれば、この関数はルール ファイナライザ シンボリック マクロの実装関数でのみ使用してください。他のコンテキストでこの関数を使用することはおすすめしません。今後の Bazel リリースで無効になります。これにより、BUILD ファイルが脆弱になり、順序に依存するようになります。
exports_files
None exports_files(srcs, visibility=None, licenses=None)パラメータ
| パラメータ | 説明 |
|---|---|
srcs
|
文字列のシーケンス。
必須 エクスポートするファイルのリスト。 |
visibility
|
シーケンス、または None。
デフォルトは None可視性宣言を指定できます。ファイルは、指定されたターゲットに表示されます。可視性が指定されていない場合、ファイルはすべてのパッケージに表示されます。 |
licenses
|
文字列のシーケンス、または None。
デフォルトは None。 指定するライセンス。 |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
include内の少なくとも 1 つのパターンに一致する。exclude(デフォルトは[])内のどのパターンにも一致しない。
exclude_directories argument is enabled (set to 1), files of type directory will be omitted from the results (default 1).
パラメータ
| パラメータ | 説明 |
|---|---|
include
|
[sequence] of [string]s; default is []The list of glob patterns to include. |
exclude
|
文字列のシーケンス。デフォルトは[]。除外する glob パターンのリスト。 |
exclude_directories
|
int。
デフォルトは 1ディレクトリを除外するかどうかを示すフラグ。 |
allow_empty
|
デフォルトは unboundglob パターンが何も一致しないことを許可するかどうか。`allow_empty` が False の場合、個々の include パターンは何かと一致する必要があり、最終的な結果は空でない必要があります(`exclude` パターンのマッチが除外された後)。 |
module_name
string module_name()
module_ctx.modules に表示される module.name フィールドと同じです。
None を返す場合があります。
module_version
string module_version()
module_ctx.modules に表示される module.version フィールドと同じです。None を返す場合があります。
パッケージ
unknown package(**kwargs)
load() ステートメントの直後)。
パラメータ
| パラメータ | 説明 |
|---|---|
kwargs
|
必須 適用可能な引数については、ビルド百科事典の package() 関数をご覧ください。
|
package_default_visibility
List package_default_visibility()
package() の default_visibility パラメータの値です。
package_group
None package_group(*, name, packages=[], includes=[])visibility 属性で参照できます。
パラメータ
| パラメータ | 説明 |
|---|---|
name
|
文字列。
必須 このルールの一意の名前。 |
packages
|
文字列のシーケンス。デフォルトは[]。このグループ内のパッケージの完全な列挙。 |
includes
|
文字列のシーケンス。デフォルトは[]。このグループに含まれる他のパッケージ グループ。 |
package_name
string package_name()
some/package/BUILD では、値は some/package になります。BUILD ファイルが .bzl ファイルで定義された関数を呼び出す場合、package_name() は呼び出し元の BUILD ファイル パッケージと一致します。ルート パッケージの場合、値は常に空の文字列になります。
package_relative_label
Label package_relative_label(input)
BUILD ファイル)のコンテキストで、入力文字列を Label オブジェクトに変換します。入力がすでに Label の場合は、変更されずに返されます。この関数は、BUILD ファイルと、直接または間接的に呼び出すマクロを評価している間のみ呼び出すことができます。ルール実装関数などでは呼び出すことはできません。
この関数の結果は、BUILD ファイルで宣言されたターゲットのラベル値属性に指定された文字列を渡すことで生成される Label 値と同じです。
使用上の注意: この関数と Label() の違いは、Label() が BUILD ファイルのパッケージではなく、呼び出し元の .bzl ファイルのパッケージのコンテキストを使用することです。コンパイラなど、マクロにハードコードされた固定ターゲットを参照する必要がある場合は、Label() を使用します。BUILD ファイルから提供されたラベル文字列を Label オブジェクトに正規化する必要がある場合は、package_relative_label() を使用します。(BUILD ファイルまたは呼び出し元の .bzl ファイル以外のパッケージのコンテキストで文字列を Label に変換する方法はありません。そのため、外部マクロでは、ラベル文字列ではなく Label オブジェクトを内部マクロに渡すことをおすすめします。)ctx.package_relative_label() は、ルールまたはアスペクトの実装関数内で同じ機能を提供します。
パラメータ
| パラメータ | 説明 |
|---|---|
input
|
文字列、または Label。
必須 入力ラベル文字列または Label オブジェクト。Label オブジェクトが渡された場合は、そのまま返されます。 |
repo_name
string repo_name()
repository_name
string repository_name()
--+incompatible_enable_deprecated_label_apis 非推奨。 を設定すると、試験運用版として有効になる場合があります。代わりに
repo_name を使用することをおすすめします。repo_name には不要な先頭の @ 記号は含まれませんが、それ以外は同じように動作します。現在評価されているパッケージを含むリポジトリの正規名(先頭に 1 つの @ 記号(@)が付いています)。たとえば、WORKSPACE スタンザ local_repository(name='local', path=...) によって呼び出されるパッケージでは、@local に設定されます。メイン リポジトリのパッケージでは、@ に設定されます。
select
unknown select(x, no_match_error='')
select() は、ルール属性を構成可能にするヘルパー関数です。詳細については、ビルド百科事典をご覧ください。
パラメータ
| パラメータ | 説明 |
|---|---|
x
|
dict。
必須 構成条件を値にマッピングする dict。各キーは、config_setting または constraint_value インスタンスを識別する Label またはラベル文字列です。文字列の代わりに Label を使用する場合については、マクロに関するドキュメントをご覧ください。 --incompatible_resolve_select_keys_eagerly が有効になっている場合、キーは Label の呼び出しを含むファイルのパッケージを基準とした select オブジェクトに解決されます。
|
no_match_error
|
文字列。
デフォルトは ''条件が一致しない場合に報告するカスタムエラー(省略可)。 |
サブパッケージ
sequence subpackages(*, include, exclude=[], allow_empty=False)
パラメータ
| パラメータ | 説明 |
|---|---|
include
|
文字列のシーケンス。
必須 サブパッケージ スキャンに含める glob パターンのリスト。 |
exclude
|
[sequence] of [string]s; default is []The list of glob patterns to exclude from subpackages scan. |
allow_empty
|
bool。
デフォルトは False呼び出しが空のリストを返した場合に失敗するかどうか。デフォルトでは、空のリストは、subpackages() の呼び出しが不要な BUILD ファイルでエラーが発生する可能性があることを示します。 true に設定すると、この関数はその場合に成功します。 |