Etiket

DERLEME hedef tanımlayıcısı.

Üyeler

Etiket

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ştirilmeden döndürülür.

Makrolar için ilgili native.package_relative_label() işlevi, girişi, şu anda oluşturulmakta olan paket bağlamında bir Label biçimine dönüştürür. Etiket değerli kural özellikleri tarafından otomatik olarak yapılan dizeden etikete dönüştürme işlemini taklit etmek için bu işlevi kullanın.

Parametreler

Parametre Açıklama
input string; or Label; zorunlu
Giriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi aktarılırsa 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üdür. Örneğin:
Label("//pkg/foo:abc").package == "pkg/foo"

relative

Label Label.relative(relName)

Mutlak (// ile başlar) veya geçerli pakete bağlı olan bir etiketi çözer. Bu etiket uzak bir kod deposundaysa bağımsız değişken söz konusu kod deposuna 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 olduğu gibi döndürülür. Tek fark, deponun adı, mevcut kod deposu eşlemesindeyse yeniden yazılır. Ayrılmış etiketler de oldukları 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 gerçekleşir:

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

Parametreler

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

workspace_name

string Label.workspace_name

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

workspace_root

string Label.workspace_root

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