BUILD ターゲット ID。
Label
インスタンス l
ごとに、Label()
呼び出しが発生する場所に関係なく、文字列表現 str(l)
には Label(str(l)) == l
というプロパティがあります。
メンバー
ラベル
Label Label(input)呼び出し元の
.bzl
ソースファイルが存在するパッケージのコンテキストで、ラベル文字列を Label
オブジェクトに変換します。指定された値がすでに Label
の場合は、変更されずに返されます。マクロの場合、関連する関数 native.package_relative_label()
は、現在作成中のパッケージのコンテキストで入力を Label
に変換します。この関数を使用すると、ラベル値のルール属性によって自動的に実行される文字列からラベルへの変換を模倣できます。
パラメータ
パラメータ | 説明 |
---|---|
input
|
string; または Label;
必須 入力ラベルの文字列またはラベル オブジェクト。ラベル オブジェクトが渡された場合は、そのまま返されます。 |
name
string Label.nameこのラベルによって参照されるターゲットの名前。次に例を示します。
Label("@@foo//pkg/foo:abc").name == "abc"
パッケージ
string Label.packageこのラベルで参照されるターゲットを含むパッケージの名前(リポジトリ名なし)。次に例を示します。
Label("@@repo//pkg/foo:abc").package == "pkg/foo"
相対
Label Label.relative(relName)試験運用版。この API は試験運用版であり、随時変更される可能性があります。これに依存しないでください。
--+incompatible_enable_deprecated_label_apis
[非推奨] を設定すると、試験運用版に基づいて有効にできます。見かけ上のリポジトリ名を含む引数とともに使用すると、このメソッドが驚くべき振る舞いをします。代わりに
Label.same_package_label()
、native.package_relative_label()
、または Label()
を使用することをおすすめします。絶対パス(//
で始まる)または現在のパッケージを基準とする相対パスのラベルを解決します。このラベルがリモート リポジトリにある場合、引数はそのリポジトリを基準に解決されます。引数にリポジトリ名が含まれている場合、現在のラベルは無視され、引数はそのまま返されますが、リポジトリ名が現在のリポジトリ マッピングに含まれている場合は、書き換えられます。予約済みラベルもそのまま返されます。
例:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux") Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux") Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux") Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public") Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")
渡されたリポジトリ マッピングが {'@other' : '@remapped'}
の場合、次の再マッピングが行われます。
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
パラメータ
パラメータ | 説明 |
---|---|
relName
|
required これに対して解決されるラベル。 |
repo_name
string Label.repo_nameこのラベルによって参照されるターゲットを含むリポジトリの正規名。先頭にアットマーク(
@
)は付けません。例: Label("@@foo//bar:baz").repo_name == "foo"
same_package_label
Label Label.same_package_label(target_name)このラベルと同じパッケージに、指定されたターゲット名のラベルを作成します。
パラメータ
パラメータ | 説明 |
---|---|
target_name
|
必須 新しいラベルのターゲット名。 |
workspace_name
string Label.workspace_name試験運用版。この API は試験運用版であり、いつでも変更される可能性があります。これに依存しないでください。
--+incompatible_enable_deprecated_label_apis
[非推奨] を設定すると、試験運用版に基づいて有効にできます。フィールド名「ワークスペース名」は誤った名前です。代わりに、動作が同じ
Label.repo_name
を使用してください。このラベルで参照されるターゲットを含むリポジトリの正規名(先頭にアットマーク(@
)なし)。例:
Label("@@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootこのラベルが参照するターゲットを含むリポジトリの実行ルートを、execroot を基準として返します。次に例を示します。
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"