Etiket

BUILD hedef tanımlayıcısı.

Her Label örneği l için dize gösterimi str(l), Label() çağrısının nerede gerçekleştiğine bakılmaksızın Label(str(l)) == l özelliğine sahiptir.

Üyeler

Şirket

Label Label(input)

Bir etiket dizesini, çağıran .bzl kaynak dosyasının bulunduğu paket bağlamında bir Label nesnesine dönüştürür. Belirtilen değer zaten bir Label ise değiştirilmeden döndürülür.

Makrolar için ilgili bir işlev olan native.package_relative_label(), girişi şu anda oluşturulmakta olan paket bağlamında Label'ye dönüştürür. Etiket değerli kural özellikleri tarafından otomatik olarak yapılan dize-etiket dönüşümünü taklit etmek için bu işlevi kullanın.

Parametreler

Parametre Açıklama
input string veya Label; required
Giriş etiketi dizesi veya Etiket nesnesi. Bir Label nesnesi iletilirse olduğu gibi döndürülür.

ad

string Label.name

Paket içindeki bu etiketin adı. Örneğin:
Label("//pkg/foo:abc").name == "abc"

paket

string Label.package

Bu etiketin paket kısmı. Örneğin:
Label("//pkg/foo:abc").package == "pkg/foo"

ilgili

Label Label.relative(relName)

Mutlak (// ile başlar) veya mevcut pakete göre göreceli olan bir etiketi çözer. Bu etiket uzak bir depoda bulunuyorsa bağımsız değişken, o depoya göre çözümlenir. Bağımsız değişkende bir depo adı varsa mevcut etiket yoksayılır ve bağımsız değişken olduğu gibi döndürülür. Ancak depo adı mevcut depo eşlemesindeyse yeniden yazılır. Ayrılmış etiketler de olduğu gibi döndürülür.
Örneğin:
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")

Depo eşlemesi {'@other' : '@remapped'} ise aşağıdaki yeniden eşleme gerçekleşir:

Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")

Parametreler

Parametre Açıklama
relName gerekli
Buna göre çözümlenecek etiket.

workspace_name

string Label.workspace_name

Bu etiketin depo kısmı. Örneğin,
Label("@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

Bu etiketin çalışma alanının yürütme kökünü, execroot'a göre döndürür. Örneğin:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"