Pelanggan
Label
Label Label(input)Mengonversi string label menjadi objek
Label
, dalam konteks paket tempat file sumber .bzl
panggilan berada. Jika nilai yang diberikan sudah menjadi Label
, nilai tersebut akan ditampilkan tanpa perubahan.Untuk makro, fungsi terkait, native.package_relative_label()
, mengonversi input menjadi Label
dalam konteks paket yang sedang dibuat. Gunakan fungsi tersebut untuk meniru konversi string ke label yang otomatis dilakukan oleh atribut aturan bernilai label.
Parameter
Parameter | Deskripsi |
---|---|
input
|
string; or Label ;
wajib diisiString label input atau objek Label. Jika objek Label diteruskan, maka akan dikembalikan sebagaimana adanya. |
name
string Label.nameNama label ini dalam paket. Misalnya:
Label("//pkg/foo:abc").name == "abc"
paket
string Label.packageBagian paket dari label ini. Misalnya:
Label("//pkg/foo:abc").package == "pkg/foo"
relatif
Label Label.relative(relName)Menyelesaikan label yang bersifat absolut (dimulai dengan
//
) atau relatif terhadap paket saat ini. Jika label ini berada di repositori jarak jauh, argumen akan diselesaikan secara relatif terhadap repositori tersebut. Jika argumen berisi nama repositori, label saat ini akan diabaikan dan argumen ditampilkan apa adanya, kecuali jika nama repositori ditulis ulang jika berada dalam pemetaan repositori saat ini. Label yang dicadangkan juga akan ditampilkan apa adanya.Misalnya:
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")
Jika pemetaan repositori yang diteruskan adalah {'@other' : '@remapped'}
, pemetaan ulang berikut akan dilakukan:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Parameter
Parameter | Deskripsi |
---|---|
relName
|
wajib Label yang akan di-resolve relatif terhadap label ini. |
nama_ruang kerja
string Label.workspace_nameBagian repositori dari label ini. Misalnya,
Label("@foo//bar:baz").workspace_name == "foo"
ruang_kerja
string Label.workspace_rootMenampilkan root eksekusi untuk ruang kerja label ini, yang relatif terhadap ekse-root. Misalnya:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"