ラベル

問題を報告 ソースを表示

BUILD ターゲット ID。

メンバー

ラベル

Label Label(input)

呼び出し元の .bzl ソースファイルが存在するパッケージのコンテキストで、ラベル文字列を Label オブジェクトに変換します。指定された値がすでに Label である場合、変更されずに返されます。

マクロの場合、関連する関数 native.package_relative_label() は、現在作成されているパッケージのコンテキストで入力を Label に変換します。この関数を使用して、ラベル値のルール属性によって自動的に実行される文字列からラベルへの変換を模倣します。

パラメータ

パラメータ 説明
input string; or Label(必須)
入力ラベル文字列またはラベル オブジェクト。Label オブジェクトを渡すと、そのまま返されます。

表示されます。

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 必須
これに対して解決されるラベル。

ワークスペース名

string Label.workspace_name

このラベルのリポジトリの部分。例:
Label("@foo//bar:baz").workspace_name == "foo"

#workspace_root

string Label.workspace_root

execroot を基準とする、このラベルのワークスペースの実行ルートを返します。例:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"