Etiket

. BUILD hedef tanımlayıcısı.

Ü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. 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; gerekli
Giriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi geçilirse olduğu gibi döndürülür.

ad

string Label.name

Bu etiketin paketteki adı. Örneğin:
Label("//pkg/foo:abc").name == "abc"

paket

string Label.package

Bu etiketin paket bölümüdür. Örneğin:
Label("//pkg/foo:abc").package == "pkg/foo"

ilgili

Label Label.relative(relName)

Mutlak (// ile başlayan) veya mevcut paketle göreli bir etiketi çözümler. Bu etiket uzak bir depodaysa bağımsız değişken, o depoya göre çözümlenir. 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")

Geçirilen depo eşlemesi {'@other' : '@remapped'} ise aşağıdaki yeniden eşleme işlemi gerçekleşir:

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

Parametreler

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

workspace_name

string Label.workspace_name

Bu etiketin depo bölümü. Örneğin,
Label("@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

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