Üyeler
Etiket
Label Label(input)Bir çağrıyı,
.bzl
kaynak dosyasının bulunduğu paket bağlamında Label
nesnesine dönüştürür. Belirtilen değer zaten bir Label
ise değişmeden döndürülür.Makrolar için ilgili bir işlev olan native.package_relative_label()
, girdiyi oluşturulmakta olan paketin bağlamına göre Label
haline dönüştürür. Etiket değerli kural özellikleri tarafından otomatik olarak yapılan dizeden etikete dönüşümü taklit etmek için bu işlevi kullanın.
Parametreler
Parametre | Açıklama |
---|---|
input
|
string; or Label ;
gereklidirGiriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi iletilirse nesne olduğu gibi döndürülür. |
ad
string Label.nameBu etiketin paket içindeki adı. Örneğin:
Label("//pkg/foo:abc").name == "abc"
paket
string Label.packageBu etiketin paket bölümü. Örneğin:
Label("//pkg/foo:abc").package == "pkg/foo"
ilgili
Label Label.relative(relName)Mutlak (
//
ile başlar) veya geçerli pakete göre bulunan bir etiketi çözümler. Bu etiket uzak bir depoda yer alıyorsa bağımsız değişken söz konusu depoya göre çözümlenir. Bağımsız değişken bir depo adı içeriyorsa mevcut etiket yoksayılır ve bağımsız değişken, mevcut kod deposu eşlemesindeyse yeniden yazılması dışında olduğu gibi döndürülür. Ayrılmış etiketler de olduğu gibi döndürülecek.Ö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")
Depoya girilen 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 Bu etikete göre çözüme ulaştırılacak etiket. |
workspace_name
string Label.workspace_nameBu etiketin depo bölümü. Örneğin:
Label("@foo//bar:baz").workspace_name == "foo"
workspace_kök
string Label.workspace_rootBu etiketin çalışma alanının yürütmeye göre göre yürütme kökünü döndürür. Örneğin:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"