ラベル

BUILD ターゲット識別子。

メンバー

ラベル

Label Label(label_string)

BUILD ターゲットを参照するラベルを作成します。この関数は、ルールのラベル属性のデフォルト値を指定する場合や、マクロから絶対ラベルを介してターゲットを参照する場合に使用します。この引数は絶対ラベルを参照する必要があります。ラベルのリポジトリの部分(またはその不在)は、この Label() 呼び出しが行われたリポジトリのコンテキストで解釈されます。例:
Label("//tools:default")

パラメータ

パラメータ 説明
label_string 必須
ラベル文字列。

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 必須
このラベルを基準に解決されるラベル。

workspace_name

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"