ID target BUILD.
Untuk setiap instance Label
l
, representasi string str(l)
memiliki properti yang Label(str(l)) == l
, di mana pun panggilan Label()
terjadi.
Jika diteruskan sebagai argumen posisi ke print()
atau fail()
, Label
akan menggunakan representasi string yang dioptimalkan agar dapat dibaca orang. Representasi ini menggunakan nama repositori yang jelas dari perspektif repositori utama jika memungkinkan.
Anggota
Label
Label Label(input)Mengonversi string label menjadi objek
Label
, dalam konteks paket tempat file sumber .bzl
pemanggil berada. Jika sudah berupa Label
, nilai yang diberikan akan ditampilkan tanpa perubahan.Untuk makro, fungsi terkait, native.package_relative_label()
, mengonversi input menjadi Label
dalam konteks paket yang saat ini sedang dibuat. Gunakan fungsi tersebut untuk meniru konversi string ke label yang dilakukan secara otomatis oleh atribut aturan bernilai label.
Parameter
Parameter | Deskripsi |
---|---|
input
|
string; atau Label;
wajib String label input atau objek Label. Jika diteruskan, objek Label akan ditampilkan sebagaimana adanya. |
nama
string Label.nameNama target yang dirujuk oleh label ini. Misalnya:
Label("@@foo//pkg/foo:abc").name == "abc"
paket
string Label.packageNama paket yang berisi target yang dirujuk oleh label ini, tanpa nama repositori. Misalnya:
Label("@@repo//pkg/foo:abc").package == "pkg/foo"
relatif
Label Label.relative(relName)Eksperimental. API ini bersifat eksperimental dan dapat berubah kapan saja. Harap tidak bergantung padanya. Fitur ini dapat diaktifkan secara eksperimental dengan menetapkan
--+incompatible_enable_deprecated_label_apis
Tidak digunakan lagi. Metode ini berperilaku mengejutkan saat digunakan dengan argumen yang berisi nama repositori yang jelas. Pilih
Label.same_package_label()
, native.package_relative_label()
, atau Label()
.Menyelesaikan label yang 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 akan ditampilkan apa adanya, kecuali bahwa nama repositori akan 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 terjadi:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Parameter
Parameter | Deskripsi |
---|---|
relName
|
string;
wajib Label yang akan diselesaikan terkait dengan label ini. |
repo_name
string Label.repo_nameNama kanonis repositori yang berisi target yang dirujuk oleh label ini, tanpa tanda at (
@
) di awal. Misalnya, Label("@@foo//bar:baz").repo_name == "foo"
same_package_label
Label Label.same_package_label(target_name)Membuat label dalam paket yang sama dengan label ini dengan nama target tertentu.
Parameter
Parameter | Deskripsi |
---|---|
target_name
|
string;
wajib Nama target label baru. |
workspace_name
string Label.workspace_nameEksperimental. API ini bersifat eksperimental dan dapat berubah kapan saja. Harap tidak bergantung padanya. Fitur ini dapat diaktifkan secara eksperimental dengan menetapkan
--+incompatible_enable_deprecated_label_apis
Tidak digunakan lagi. Nama kolom "nama ruang kerja" adalah istilah yang salah; gunakan
Label.repo_name
yang berperilaku identik.Nama kanonis repositori yang berisi target yang dirujuk oleh label ini, tanpa tanda at (@
) di awal. Misalnya,
Label("@@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootMenampilkan root eksekusi untuk repositori yang berisi target yang dirujuk oleh label ini, relatif terhadap execroot. Misalnya:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"