メンバー
ラベル
Label Label(input)呼び出し元の
.bzl
ソースファイルが存在するパッケージのコンテキストで、ラベル文字列を Label
オブジェクトに変換します。指定された値がすでに Label
の場合は、変更されずに返されます。マクロの場合、関連する関数 native.package_relative_label()
が、現在作成されているパッケージのコンテキストで入力を Label
に変換します。この関数を使用して、ラベル値のルール属性によって自動的に行われる文字列からラベルへの変換をシミュレートします。
パラメータ
パラメータ | 説明 |
---|---|
input
|
string; or Label (必須)入力ラベル文字列または Label オブジェクト。Label オブジェクトが渡された場合は、そのまま返されます。 |
name
string Label.nameパッケージ内のこのラベルの名前。次に例を示します。
Label("//pkg/foo:abc").name == "abc"
パッケージ
string Label.packageこのラベルのパッケージ部分。次に例を示します。
Label("//pkg/foo:abc").package == "pkg/foo"
相対
Label Label.relative(relName)絶対ラベル(
//
で始まる)または現在のパッケージに対する相対ラベルを解決します。このラベルがリモート リポジトリにある場合、引数はそのリポジトリを基準に解決されます。引数にリポジトリ名が含まれている場合、現在のラベルは無視され、引数はそのまま返されます。ただし、現在のリポジトリ マッピングにリポジトリ名が含まれている場合は、リポジトリ名が書き換えられます。予約済みラベルもそのまま返されます。例:
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 これに対して解決されるラベル。 |
workspace_name
string Label.workspace_nameこのラベルのリポジトリ部分。たとえば、
Label("@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootexecroot を基準として、このラベルのワークスペースの実行ルートを返します。次に例を示します。
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"