Etiket

Sorun bildir Kaynağı görüntüleyin Nightly · 7.4 .

BUILD hedef tanımlayıcısı.

Her Label örneği l için str(l) dize temsili, Label() çağrısının nereden yapıldığına bakılmaksızın Label(str(l)) == l özelliğine sahiptir.

print() veya fail()'a konumsal bağımsız değişken olarak iletildiğinde Label, bunun yerine kullanıcıların okuyabileceği şekilde optimize edilmiş bir dize gösterimi kullanır. Bu temsilde, mümkünse ana deponun bakış açısından bir görünür depo adı kullanılır.

Üyeler

Şirket

Label Label(input)

.bzl çağrısı yapan kaynak dosyanın bulunduğu paketin bağlamında, bir etiket dizesini Label nesnesine dönüştürür. Verilen değer zaten Label ise değiştirilerek döndürülür.

İlgili bir işlev olan native.package_relative_label(), makrolarda ise girişi şu anda oluşturulmakta olan paketin bağlamında Label biçimine dönüştürür. Bu işlevi, etiket değerine sahip kural özellikleri tarafından otomatik olarak yapılan dize-etiket dönüşümünü taklit etmek için kullanın.

Parametreler

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

ad

string Label.name

Bu etiketin atıfta bulunduğu hedefin adı. Örneğin:
Label("@@foo//pkg/foo:abc").name == "abc"

paket

string Label.package

Bu etiketin atıfta bulunduğu hedefi içeren paketin adı (depo adı olmadan). Örneğin:
Label("@@repo//pkg/foo:abc").package == "pkg/foo"

ilgili

Label Label.relative(relName)

Deneysel. Bu API deneme aşamasındadır ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. --+incompatible_enable_deprecated_label_apis
Desteklenmiyor olarak ayarlanarak deneysel olarak etkinleştirilebilir. Bu yöntem, açık bir depo adı içeren bir bağımsız değişkenle kullanıldığında şaşırtıcı bir şekilde davranır. Bunun yerine Label.same_package_label(), native.package_relative_label() veya Label() seçeneğini tercih edin.

Mutlak (// ile başlar) veya geçerli pakete göre göreli bir etiketi çözer. Bu etiket uzak bir depodaysa bağımsız değişken, ilgili depoya göre çözülür. Bağımsız değişken bir depo adı içeriyorsa mevcut etiket göz ardı edilir ve bağımsız değişken olduğu gibi döndürülür. Bununla birlikte, mevcut depo eşlemedeyse depo adı 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")

İletilen depo eşleme {'@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 dize; zorunlu
Bu etikete göre çözülecek etiket.

repo_name

string Label.repo_name

Bu etiketin atıfta bulunduğu hedefi içeren deponun, başında @ işareti (@) olmadan standart adı. Örneğin,
Label("@@foo//bar:baz").repo_name == "foo"

same_package_label

Label Label.same_package_label(target_name)

Bu etiketle aynı pakette, belirtilen hedef adla bir etiket oluşturur.

Parametreler

Parametre Açıklama
target_name string; gerekli
Yeni etiketin hedef adı.

workspace_name

string Label.workspace_name

Deneysel. Bu API deneme aşamasındadır ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. --+incompatible_enable_deprecated_label_apis
Desteği sonlandırıldı ayarlanarak deneysel olarak etkinleştirilebilir. "Çalışma alanı adı" alan adı burada yanlış bir adlandırmadır. Bunun yerine aynı işlevi gören Label.repo_name değerini kullanın.

Bu etiketin atıfta bulunduğu hedefi içeren deponun, başında @ işareti (@) olmadan standart adı. Örneğin,

Label("@@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

execroot ile göreli olarak bu etiket tarafından başvuruda bulunulan hedefi içeren deponun yürütme kökünü döndürür. Örneğin:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"