BUILD ファイルで使用できるメソッド。BUILD ファイルで使用できる追加の関数とビルドルールについては、ビルド百科事典もご覧ください。
メンバー
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package
- 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 のリストです。depsset がリストに変換されるときに要素が返される順序は、order
パラメータで指定します。詳しくは、Depset の概要をご覧ください。deps のすべての要素(直接および間接)は、式 type(x)
で取得される同じ型でなければなりません。
ハッシュベースのセットは、反復処理中に重複を排除するために使用されるため、depset のすべての要素はハッシュ可能である必要があります。ただし、この不変条件は現在、すべてのコンストラクタで一貫してチェックされていません。--incompatible_always_check_depset_elements フラグを使用して一貫性のあるチェックを有効にします。これは将来のリリースでのデフォルトの動作になります。問題 10313 をご覧ください。
また、要素は現在不変である必要がありますが、この制限は将来緩和される予定です。
作成された depset の順序は、その transitive
depset の順序と互換性がある必要があります。"default"
順序は他のすべての順序と互換性がありますが、他のすべての順序はそれ自体とのみ互換性があります。
パラメータ
パラメータ | 説明 |
---|---|
direct
|
sequence、または None 。デフォルトは None です。 deps の直接要素のリスト。 |
order
|
string; デフォルトは "default" 新しい depset のトラバーサル戦略。設定可能な値については、こちらをご覧ください。 |
transitive
|
depset のシーケンス。または None 。デフォルトは None 要素が depset の間接要素になる depset のリスト。 |
existing_rule
unknown existing_rule(name)
None
を返します。ここで、不変の辞書のようなオブジェクトとは、辞書のようなイテレーション、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'
形式の文字列に変換されます。 - リストはタプルとして表され、辞書は新しい可変辞書に変換されます。要素も同様に再帰的に変換されます。
select
値は、上記のように変換されたコンテンツとともに返されます。- ルールのインスタンス化時に値が指定されず、デフォルト値が計算された属性は、結果から除外されます。(計算されたデフォルトは、分析フェーズまで計算できません)。
可能であれば、この関数はルール ファイナライザーのシンボリック マクロの実装関数でのみ使用してください。他のコンテキストでこの関数を使用することはおすすめしません。将来の Bazel リリースで無効になります。この関数を使用すると、BUILD
ファイルが脆弱になり、順序依存になります。また、ルール属性値を内部形式から Starlark に変換する他の 2 つの変換(計算されたデフォルトで使用されるものと ctx.attr.foo
で使用されるもの)とは微妙に異なることに注意してください。
パラメータ
パラメータ | 説明 |
---|---|
name
|
string;
必須 ターゲットの名前。 |
existing_rules
unknown existing_rules()
existing_rule(name)
によって返される結果にマッピングします。ここで、不変の辞書のようなオブジェクトとは、辞書のようなイテレーション、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
|
string の sequence。必須 エクスポートするファイルのリスト。 |
visibility
|
sequence、または None 。デフォルトは None です。 可視性宣言を指定できます。ファイルは、指定したターゲットに表示されます。可視性を指定しない場合、ファイルはすべてのパッケージから見えるようになります。 |
licenses
|
string の sequence、または None 。デフォルトは None です。指定するライセンス。 |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
include
の少なくとも 1 つのパターンに一致します。exclude
のどのパターンにも一致しません(デフォルトは[]
)。
exclude_directories
引数が有効(1
に設定)の場合、ディレクトリ タイプのファイルは結果から除外されます(デフォルトは 1
)。
パラメータ
パラメータ | 説明 |
---|---|
include
|
文字列のシーケンス。デフォルトは [] です。 含める glob パターンのリスト。 |
exclude
|
文字列のシーケンス。デフォルトは [] 除外する glob パターンのリスト。 |
exclude_directories
|
int;
デフォルトは 1 ディレクトリを除外するかどうかを示すフラグ。 |
allow_empty
|
デフォルトは unbound です。 グロブ パターンが何も一致しないことを許可するかどうか。`allow_empty` が False の場合、個々の包含パターンは何かと一致する必要があり、最終結果も空でない必要があります(除外パターンのマッチングが除外された後)。 |
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
|
必須 該当する引数については、Build Encyclopedia の package() 関数を参照してください。 |
package_default_visibility
List package_default_visibility()
package()
の default_visibility
パラメータの値で、パッケージ自体を含むように拡張されています。package_group
None
package_group(name, packages=[], includes=[])
visibility
属性で参照できます。
パラメータ
パラメータ | 説明 |
---|---|
name
|
文字列;
必須 このルールの一意の名前。 |
packages
|
文字列のシーケンス。デフォルトは [] このグループ内のパッケージの完全な列挙。 |
includes
|
string の sequence。デフォルトは [] です。 このパッケージ グループに含まれる他のパッケージ グループ。 |
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 オブジェクトを内部マクロに渡すことを優先する必要があります)。
パラメータ
パラメータ | 説明 |
---|---|
input
|
string または Label。必須。 入力ラベルの文字列または Label オブジェクト。Label オブジェクトが渡された場合は、そのまま返されます。 |
repo_name
string repo_name()
repository_name
string repository_name()
--+incompatible_enable_deprecated_label_apis
を設定することで、試験運用として有効にできます。非推奨。代わりに
repo_name
を使用することをおすすめします。この関数には不要な先頭の @ 記号は含まれていませんが、それ以外の動作は同じです。現在評価中のパッケージを含むリポジトリの正規名。先頭に単一の @ 記号(@
)が付いています。たとえば、WORKSPACE スタンザ local_repository(name='local', path=...)
によって呼び出されるパッケージでは、@local
に設定されます。メイン リポジトリのパッケージでは、@
に設定されます。
選択
unknown select(x, no_match_error='')
select()
は、ルール属性を構成可能にするヘルパー関数です。詳しくは、ビルド百科事典をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
x
|
dict; 必須 構成条件を値にマッピングする辞書。各キーは、config_setting または constraint_value インスタンスを識別する ラベルまたはラベル文字列です。文字列の代わりにラベルを使用するタイミングについては、マクロに関するドキュメントをご覧ください。 |
no_match_error
|
string;
デフォルトは '' 条件が一致しない場合に報告するカスタム エラー(省略可)。 |
サブパッケージ
sequence subpackages(include, exclude=[], allow_empty=False)
パラメータ
パラメータ | 説明 |
---|---|
include
|
string のシーケンス。必須 サブパッケージ スキャンに含める glob パターンのリスト。 |
exclude
|
文字列のシーケンス。デフォルトは [] です。 サブパッケージ スキャンから除外する glob パターンのリスト。 |
allow_empty
|
bool;
デフォルトは False 呼び出しが空のリストを返した場合に失敗するかどうか。デフォルトでは、空のリストは、subpackages() の呼び出しが冗長である BUILD ファイルでエラーが発生する可能性があることを示します。true に設定すると、この関数はその場合に成功します。 |