native.cc_library. Perhatikan bahwa modul native hanya tersedia dalam fase pemuatan (yaitu untuk makro, bukan untuk implementasi aturan). Atribut akan mengabaikan None nilai, dan memperlakukannya seolah-olah atribut tidak ditetapkan.Fungsi berikut juga tersedia:
Anggota
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_default_visibility
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- subpackages
existing_rule
unknown native.existing_rule(name)
None jika tidak ada instance aturan dengan nama tersebut.Di sini, objek seperti dict yang tidak dapat diubah berarti objek x yang tidak dapat diubah secara mendalam yang mendukung iterasi seperti dict, len(x), name in x, x[name], x.get(name), x.items(), x.keys(), dan x.values().
Hasilnya berisi entri untuk setiap atribut, kecuali atribut pribadi (yang namanya tidak diawali dengan huruf) dan beberapa jenis atribut lama yang tidak dapat direpresentasikan. Selain itu, dict berisi entri untuk name dan kind instance aturan (misalnya, 'cc_binary').
Nilai hasil mewakili nilai atribut sebagai berikut:
- Atribut jenis str, int, dan bool direpresentasikan sebagaimana adanya.
- Label dikonversi menjadi string dalam bentuk
':foo'untuk target dalam paket yang sama atau'//pkg:name'untuk target dalam paket yang berbeda. - Daftar direpresentasikan sebagai tuple, dan dict dikonversi menjadi dict baru yang dapat diubah. Elemennya dikonversi secara rekursif dengan cara yang sama.
- Nilai
selectditampilkan dengan kontennya yang diubah seperti yang dijelaskan di atas. - Atribut yang tidak memiliki nilai yang ditentukan selama pembuatan instance aturan dan yang nilai default-nya dihitung dikecualikan dari hasilnya. (Default yang dihitung tidak dapat dihitung hingga fase analisis.).
Jika memungkinkan, gunakan fungsi ini hanya dalam fungsi implementasi makro simbol finalizer aturan. Penggunaan fungsi ini dalam konteks lain tidak direkomendasikan, dan akan dinonaktifkan dalam rilis Bazel mendatang; hal ini membuat file BUILD menjadi rapuh dan bergantung pada urutan. Selain itu, perhatikan bahwa fungsi ini sedikit berbeda dari dua konversi nilai atribut aturan lainnya dari bentuk internal ke Starlark: satu digunakan oleh default yang dihitung, yang lainnya digunakan oleh ctx.attr.foo.
Parameter
| Parameter | Deskripsi |
|---|---|
name
|
string;
wajib diisi Nama target. |
existing_rules
unknown native.existing_rules()
existing_rule(name).Di sini, objek seperti dict yang tidak dapat diubah berarti objek x yang tidak dapat diubah secara mendalam yang mendukung iterasi seperti dict, len(x), name in x, x[name], x.get(name), x.items(), x.keys(), dan x.values().
Jika memungkinkan, gunakan fungsi ini hanya dalam fungsi implementasi makro simbol finalizer aturan. Penggunaan fungsi ini dalam konteks lain tidak direkomendasikan, dan akan dinonaktifkan dalam rilis Bazel mendatang; hal ini membuat file BUILD menjadi rapuh dan bergantung pada urutan.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)Parameter
| Parameter | Deskripsi |
|---|---|
srcs
|
urutan strings;
wajib diisi Daftar file yang akan diekspor. |
visibility
|
urutan; atau None;
default adalah NoneDeklarasi visibilitas dapat ditentukan. File akan terlihat oleh target yang ditentukan. Jika tidak ada visibilitas yang ditentukan, file akan terlihat oleh setiap paket. |
licenses
|
urutan string; atau None;
default adalah NoneLisensi yang akan ditentukan. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- Cocok dengan setidaknya satu pola di
include. - Tidak cocok dengan pola apa pun di
exclude(default[]).
exclude_directories diaktifkan (ditetapkan ke 1), file jenis direktori akan dihilangkan dari hasil (default 1).
Parameter
| Parameter | Deskripsi |
|---|---|
include
|
urutan string;
default adalah []Daftar pola glob yang akan disertakan. |
exclude
|
urutan string;
default adalah []Daftar pola glob yang akan dikecualikan. |
exclude_directories
|
int;
default adalah 1Flag untuk mengecualikan direktori atau tidak. |
allow_empty
|
default adalah unboundApakah kita mengizinkan pola glob tidak cocok dengan apa pun. Jika `allow_empty` adalah False, setiap pola sertakan individual harus cocok dengan sesuatu dan hasil akhir juga tidak boleh kosong (setelah kecocokan pola `exclude` dikecualikan). |
module_name
string native.module_name()
module.name yang terlihat di module_ctx.modules.
Dapat menampilkan None.
module_version
string native.module_version()
module.version yang terlihat di module_ctx.modules.
Dapat menampilkan None.
package_default_visibility
List native.package_default_visibility()
default_visibility dari package(), yang diperluas untuk menyertakan paket itu sendiri.
package_group
None native.package_group(*, name, packages=[], includes=[])visibility.
Parameter
| Parameter | Deskripsi |
|---|---|
name
|
string;
wajib diisi Nama unik untuk aturan ini. |
packages
|
urutan string;
default adalah []Enumerasi lengkap paket dalam grup ini. |
includes
|
urutan string;
default adalah []Grup paket lain yang disertakan dalam grup ini. |
package_name
string native.package_name()
some/package/BUILD, nilainya adalah some/package. Jika file BUILD memanggil fungsi yang ditentukan dalam file .bzl, package_name() akan cocok dengan paket file BUILD pemanggil. Nilainya akan selalu berupa string kosong untuk paket root.
package_relative_label
Label native.package_relative_label(input)
BUILD tempat makro saat ini dieksekusi). Jika input sudah berupa Label, input akan ditampilkan tanpa perubahan.Fungsi ini hanya dapat dipanggil saat mengevaluasi file BUILD dan makro yang dipanggil secara langsung atau tidak langsung; fungsi ini tidak dapat dipanggil dalam (misalnya) fungsi implementasi aturan.
Hasil fungsi ini adalah nilai Label yang sama seperti yang akan dihasilkan dengan meneruskan string yang diberikan ke atribut bernilai label dari target yang dideklarasikan dalam file BUILD.
Catatan penggunaan: Perbedaan antara fungsi ini dan Label() adalah Label() menggunakan konteks paket file .bzl yang memanggilnya, bukan paket file BUILD. Gunakan Label() saat Anda perlu merujuk ke target tetap yang dikodekan secara permanen ke dalam makro, seperti compiler. Gunakan package_relative_label() saat Anda perlu menormalkan string label yang disediakan oleh file BUILD ke objek Label. (Tidak ada cara untuk mengonversi string ke Label dalam konteks paket selain file BUILD atau file .bzl panggilan. Oleh karena itu, makro luar harus selalu memilih untuk meneruskan objek Label ke makro dalam, bukan string label.)ctx.package_relative_label() menyediakan fungsi yang sama dalam fungsi implementasi aturan atau aspek.
Parameter
| Parameter | Deskripsi |
|---|---|
input
|
string; atau Label;
wajib diisi String label input atau objek Label. Jika objek Label diteruskan, objek tersebut akan ditampilkan sebagaimana adanya. |
repo_name
string native.repo_name()
repository_name
string native.repository_name()
--+incompatible_enable_deprecated_label_apis Tidak digunakan lagi. Sebaiknya gunakan
repo_name, yang tidak berisi tanda at-sign di awal yang tidak valid, tetapi berperilaku sama.Nama kanonis repositori yang berisi paket yang saat ini sedang dievaluasi, dengan satu tanda at-sign (@) sebagai awalan. Misalnya, dalam paket yang dipanggil ke dalam keberadaan oleh stanza WORKSPACE local_repository(name='local', path=...), paket tersebut akan ditetapkan ke @local. Dalam paket di repositori utama, paket tersebut akan ditetapkan ke @.
subpackages
sequence native.subpackages(*, include, exclude=[], allow_empty=False)
Parameter
| Parameter | Deskripsi |
|---|---|
include
|
urutan string;
wajib diisi Daftar pola glob yang akan disertakan dalam pemindaian subpaket. |
exclude
|
urutan string;
default adalah []Daftar pola glob yang akan dikecualikan dari pemindaian subpaket. |
allow_empty
|
bool;
default adalah FalseApakah kita akan gagal jika panggilan menampilkan daftar kosong. Secara default, daftar kosong menunjukkan potensi error dalam file BUILD tempat panggilan ke subpackages() tidak diperlukan. Menetapkan ke true memungkinkan fungsi ini berhasil dalam kasus tersebut. |