Etiket

Sorun bildir Kaynağı görüntüle Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

BUILD hedefi 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.

Ü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. 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 Etiket nesnesi geçilirse 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 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 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")

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 required
Bu etikete göre çözülecek 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'a göre yürütme kökünü döndürür. Örneğin:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"