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 Label
nesnesine dönüştürür. Belirtilen değer zaten Label
ise değişmeden döndürülür.Makrolarda, ilgili bir işlev (native.package_relative_label()
), girişi, şu anda oluşturulmakta olan paket bağlamında bir Label
değerine 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
|
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.nameBu etiketin atıfta bulunduğu hedefin adı. Örneğin:
Label("@@foo//pkg/foo:abc").name == "abc"
paket
string Label.packageBu 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 deneyseldir 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, görünen bir depo adı içeren bir bağımsız değişkenle birlikte kullanıldığında beklenmedik şekilde davranır. Bunun yerine
Label.same_package_label()
, native.package_relative_label()
veya Label()
tercih edin.Mutlak (//
ile başlayan) veya mevcut paketle göreli bir etiketi çözümler. 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 geçerli etiket yok sayılır ve bağımsız değişken olduğu gibi döndürülür. Tek fark, depo adı, geçerli 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")
İletilen 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
|
required Bu etikete göre çözülecek etiket. |
repo_name
string Label.repo_nameBu 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
|
gerekli Yeni etiketin hedef adı. |
workspace_name
string Label.workspace_nameDeneysel. Bu API deneyseldir 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. "Ç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 etiket tarafından başvuruda bulunulan hedefi içeren deponun, başında hiçbir işaret (@
) olmadan standart adı. Örneğin,
Label("@@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootexecroot 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"