Üyeler
Etiket
Label Label(label_string)DERLEME hedefine referansta bulunan bir Etiket oluşturur. Bir kuralın etiket özellikleri için varsayılan bir değer vermek istediğinizde veya bir makrodan mutlak etiket aracılığıyla bir hedefe başvuruda bulunurken bu işlevi kullanın. Bağımsız değişken mutlak bir etikete işaret etmelidir. Etiketin depo bölümü (veya yokluğu), bu Label() çağrısının göründüğü depo bağlamında yorumlanır. Örnek:
Label("//tools:default")
Parametreler
Parametre | Açıklama |
---|---|
label_string
|
gerekli etiket dizesidir. |
ad
string Label.namePaket içindeki bu etiketin adı. Örneğin:
Label("//pkg/foo:abc").name == "abc"
paket
string Label.packageBu 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_nameBu etiketin kod deposu bölümü. Örneğin:
Label("@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootBu 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"