native.cc_library. Perlu diketahui bahwa modul native hanya tersedia dalam fase pemuatan (yaitu untuk makro, bukan untuk implementasi aturan). Atribut akan mengabaikan nilai None, dan memperlakukannya seolah-olah atribut tersebut tidak ditetapkan.Fungsi berikut juga tersedia:
Anggota
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 x objek yang sangat tidak dapat diubah yang mendukung iterasi seperti dikte, len(x), name in x, x[name], x.get(name), x.items(), x.keys(), dan x.values().
Jika tanda --noincompatible_existing_rules_immutable_view ditetapkan, teks baru yang dapat diubah dengan konten yang sama akan ditampilkan.
Hasilnya berisi entri untuk setiap atribut, dengan pengecualian untuk atribut pribadi (yang namanya tidak dimulai dengan huruf) dan beberapa jenis atribut lama yang tidak dapat diwakili. 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 formulir
':foo'untuk target dalam paket yang sama atau'//pkg:name'untuk target dalam paket yang berbeda. - Daftar direpresentasikan sebagai tupel, dan dikte dikonversi menjadi dikte baru yang dapat diubah. Elemen-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 defaultnya dihitung akan dikecualikan dari hasil. (Default yang dihitung tidak dapat dihitung hingga fase analisis.).
Jika memungkinkan, hindari penggunaan fungsi ini. Hal ini membuat file BUILD rapuh dan bergantung pada urutan. Selain itu, ketahuilah bahwa nilai 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
|
wajib Nama target. |
existing_rules
unknown native.existing_rules()
existing_rule(name).Di sini, objek seperti dict yang tidak dapat diubah berarti x objek yang sangat tidak dapat diubah yang mendukung iterasi seperti dikte, len(x), name in x, x[name], x.get(name), x.items(), x.keys(), dan x.values().
Jika tanda --noincompatible_existing_rules_immutable_view ditetapkan, teks baru yang dapat diubah dengan konten yang sama akan ditampilkan.
Catatan: Jika memungkinkan, hindari penggunaan fungsi ini. Hal ini membuat file BUILD rapuh dan bergantung pada urutan. Selain itu, jika flag --noincompatible_existing_rules_immutable_view ditetapkan, fungsi ini mungkin sangat mahal, terutama jika dipanggil dalam loop.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)
Parameter
| Parameter | Deskripsi |
|---|---|
srcs
|
sequence of strings;
wajibDaftar file yang akan diekspor. |
visibility
|
sequence; or None;
default = Tidak adaDeklarasi visibilitas dapat ditentukan. File akan terlihat oleh target yang ditentukan. Jika tidak ada visibilitas yang ditentukan, file akan terlihat oleh setiap paket. |
licenses
|
sequence of strings; or None;
default = Tidak adaLisensi yang akan ditentukan. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- Mencocokkan setidaknya satu pola di
include. - Tidak cocok dengan pola apa pun di
exclude([]default).
exclude_directories diaktifkan (ditetapkan ke 1), file direktori jenis akan dihilangkan dari hasil (1 default).
Parameter
| Parameter | Deskripsi |
|---|---|
include
|
sequence of strings;
default = []Daftar pola glob untuk disertakan. |
exclude
|
sequence of strings;
default = []Daftar pola glob yang akan dikecualikan. |
exclude_directories
|
default = 1 Flag untuk mengecualikan direktori atau tidak. |
allow_empty
|
default = tak terikat Apakah kita mengizinkan pola glob untuk tidak mencocokkan apa pun. Jika `allow_empty` disetel ke Salah (False), setiap pola penyertaan harus cocok dengan sesuatu dan hasil akhirnya tidak boleh kosong (setelah kecocokan pola `exclude` dikecualikan). |
package_group
None native.package_group(name, packages=[], includes=[])
visibility.
Parameter
| Parameter | Deskripsi |
|---|---|
name
|
wajib Nama unik untuk aturan ini. |
packages
|
sequence of strings;
default = []Enumerasi lengkap paket dalam grup ini. |
includes
|
sequence of strings;
default = []Grup paket lain yang termasuk dalam paket ini. |
package_name
string native.package_name()
some/package/BUILD, nilainya akan menjadi some/package. Jika file BUILD memanggil fungsi yang ditentukan dalam file .bzl, package_name() akan cocok dengan paket file BUILD pemanggil. Fungsi ini setara dengan variabel PACKAGE_NAME yang tidak digunakan lagi.
repository_name
string native.repository_name()
local_repository(name='local', path=...), ini akan ditetapkan ke @local. Dalam paket di repositori utama, nilainya akan ditetapkan ke @. Fungsi ini setara dengan variabel REPOSITORY_NAME yang tidak digunakan lagi.
sub-paket
sequence native.subpackages(include, exclude=[], allow_empty=False)
Parameter
| Parameter | Deskripsi |
|---|---|
include
|
sequence of strings;
wajibDaftar pola glob untuk disertakan dalam pemindaian subpaket. |
exclude
|
sequence of strings;
default = []Daftar pola glob yang akan dikecualikan dari pemindaian subpaket. |
allow_empty
|
default = Salah Apakah kita akan gagal jika panggilan menampilkan daftar kosong. Secara default, daftar kosong menunjukkan potensi error dalam file BUILD dengan panggilan ke subpackages() sangat berlebihan. Jika disetel ke benar (true), fungsi ini dapat berhasil dalam kasus tersebut. |