Metode global yang tersedia di semua file .bzl.
Anggota
- analysis_test_transition
- aspek
- configuration_field
- depset
- exec_group
- exec_transition
- module_extension
- penyedia
- repository_rule
- aturan
- pilih
- subaturan
- tag_class
- visibilitas
analysis_test_transition
transition analysis_test_transition(settings)
Membuat transisi konfigurasi untuk diterapkan pada dependensi aturan analisis-pengujian. Transisi ini hanya dapat diterapkan pada atribut aturan dengan analysis_test = True
. Kemampuan aturan tersebut dibatasi (misalnya, ukuran hierarki dependensinya terbatas), sehingga transisi yang dibuat menggunakan fungsi ini memiliki potensi cakupan yang terbatas jika dibandingkan dengan transisi yang dibuat menggunakan transition()
.
Fungsi ini terutama dirancang untuk memfasilitasi library inti Framework Pengujian Analisis. Lihat dokumentasi (atau penerapannya) untuk mengetahui praktik terbaik.
Parameter
Parameter | Deskripsi |
---|---|
settings
|
dict;
wajib Kamus yang berisi informasi tentang setelan konfigurasi yang harus disetel oleh transisi konfigurasi ini. Kunci adalah label setelan build, dan nilai adalah nilai pasca-transisi baru. Semua setelan lainnya tidak berubah. Gunakan ini untuk mendeklarasikan setelan konfigurasi tertentu yang diperlukan untuk menetapkan pengujian analisis agar lulus. |
aspek
Aspect aspect(implementation, attr_aspects=[], toolchains_aspects=[], attrs={}, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None, subrules=[])
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
function;
wajib Fungsi Starlark yang menerapkan aspek ini, dengan tepat dua parameter: Target (target tempat aspek diterapkan) dan ctx (konteks aturan tempat target dibuat). Atribut target tersedia melalui kolom ctx.rule . Fungsi ini dievaluasi selama fase analisis untuk setiap penerapan aspek pada target.
|
attr_aspects
|
urutan string;
default adalah [] Daftar nama atribut. Aspek ini disebarkan bersama dependensi yang ditentukan dalam atribut target dengan nama-nama ini. Nilai umum di sini mencakup deps dan exports . Daftar ini juga dapat berisi satu string "*" untuk diterapkan di sepanjang semua dependensi target.
|
toolchains_aspects
|
sequence;
default adalah [] Daftar jenis toolchain. Aspek ini disebarkan ke toolchain target yang cocok dengan jenis toolchain ini. |
attrs
|
dict;
default adalah {} Kamus yang mendeklarasikan semua atribut aspek. Atribut ini memetakan dari nama atribut ke objek atribut, seperti `attr.label` atau `attr.string` (lihat modul attr). Atribut aspek tersedia untuk fungsi penerapan sebagai kolom parameter ctx . Atribut implisit yang dimulai dengan Atribut eksplisit harus memiliki jenis |
required_providers
|
sequence;
default adalah [] Atribut ini memungkinkan aspek membatasi penerapannya hanya ke target yang aturannya mengiklankan penyedia yang diperlukan. Nilainya harus berupa daftar yang berisi penyedia individual atau daftar penyedia, tetapi tidak keduanya. Misalnya, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] adalah nilai yang valid, sedangkan [FooInfo, BarInfo, [BazInfo, QuxInfo]] tidak valid.Daftar penyedia yang tidak bertingkat akan otomatis dikonversi ke daftar yang berisi satu daftar penyedia. Artinya, Agar beberapa target aturan (misalnya, |
required_aspect_providers
|
sequence;
default adalah [] Atribut ini memungkinkan aspek ini memeriksa aspek lain. Nilainya harus berupa daftar yang berisi penyedia individual atau daftar penyedia, tetapi tidak keduanya. Misalnya, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] adalah nilai yang valid, sedangkan [FooInfo, BarInfo, [BazInfo, QuxInfo]] tidak valid.Daftar penyedia yang tidak bertingkat akan otomatis dikonversi ke daftar yang berisi satu daftar penyedia. Artinya, Untuk membuat aspek lain (misalnya, |
provides
|
sequence;
default adalah [] Daftar penyedia yang harus ditampilkan oleh fungsi implementasi. Muncul error jika fungsi implementasi menghilangkan salah satu jenis penyedia yang tercantum di sini dari nilai yang ditampilkannya. Namun, fungsi implementasi mungkin menampilkan penyedia tambahan yang tidak tercantum di sini. Setiap elemen daftar adalah objek |
requires
|
urutan Aspek;
default adalah [] Daftar aspek yang diperlukan untuk disebarkan sebelum aspek ini. |
fragments
|
urutan string;
default adalah [] Daftar nama fragmen konfigurasi yang diperlukan aspek dalam konfigurasi target. |
host_fragments
|
urutan string;
default adalah [] Daftar nama fragmen konfigurasi yang diperlukan aspek dalam konfigurasi host. |
toolchains
|
sequence;
default adalah [] Jika ditetapkan, set toolchain akan diperlukan oleh aspek ini. Daftar dapat berisi objek String, Label, atau StarlarkToolchainTypeApi, dalam kombinasi apa pun. Toolchain akan ditemukan dengan memeriksa platform saat ini, dan disediakan untuk implementasi aspek melalui ctx.toolchain .
|
incompatible_use_toolchain_transition
|
bool;
default adalah False Tidak digunakan lagi, tidak lagi digunakan dan harus dihapus. |
doc
|
string; atau None ;
default adalah None Deskripsi aspek yang dapat diekstrak dengan alat penghasil dokumentasi. |
apply_to_generating_rules
|
bool;
default adalah False Jika benar, aspek akan, saat diterapkan ke file output, akan diterapkan ke aturan pembuatan file output. Misalnya, aspek menyebar secara transitif melalui atribut `deps` dan diterapkan ke `alpha` target. Misalkan `alpha` memiliki `deps = [':beta_output']`, dengan `beta_output` adalah output yang dideklarasikan dari `beta` target. Misalkan `beta` memiliki target `charlie` sebagai salah satu `deps`-nya. Jika `apply_to_generate_rules=True` untuk aspek, aspek tersebut akan menyebar ke seluruh `alpha`, `beta`, dan `charlie`. Jika False, aspek ini hanya akan disebarkan ke `alpha`. Salah secara default. |
exec_compatible_with
|
urutan string;
default adalah [] Daftar batasan pada platform eksekusi yang berlaku untuk semua instance aspek ini. |
exec_groups
|
dict; atau None ;
default adalah None Dikte nama grup eksekusi (string) ke exec_group . Jika ditetapkan, memungkinkan aspek untuk menjalankan tindakan pada beberapa platform eksekusi dalam satu instance. Lihat dokumentasi grup eksekusi untuk info selengkapnya.
|
subrules
|
urutan Sub-aturan;
default adalah [] Eksperimental: daftar sub-aturan yang digunakan oleh aspek ini. |
configuration_field
LateBoundDefault configuration_field(fragment, name)
Contoh penggunaan:
Menentukan atribut aturan:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Mengakses dalam penerapan aturan:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Parameter
Parameter | Deskripsi |
---|---|
fragment
|
string;
wajib Nama fragmen konfigurasi yang berisi nilai yang terikat akhir. |
name
|
string;
wajib Nama nilai yang akan diperoleh dari fragmen konfigurasi. |
Depset
depset depset(direct=None, order="default", *, transitive=None)
direct
adalah daftar elemen langsung dari depset, dan parameter transitive
adalah daftar depset yang elemennya menjadi elemen tidak langsung dari depset yang dibuat. Urutan elemen yang ditampilkan saat depset dikonversi menjadi daftar ditentukan oleh parameter order
. Lihat Ringkasan DEX untuk mengetahui informasi selengkapnya.
Semua elemen (langsung dan tidak langsung) dari depset harus berjenis sama, seperti yang diperoleh dengan ekspresi type(x)
.
Karena set berbasis hash digunakan untuk menghilangkan duplikat selama iterasi, semua elemen depset harus dapat di-hash. Namun, invarian ini saat ini tidak diperiksa secara konsisten di semua konstruktor. Menggunakan tanda --incompatible_always_check_depset_ elements untuk memungkinkan pemeriksaan yang konsisten; ini akan menjadi perilaku default dalam rilis mendatang; lihat Masalah 10313.
Selain itu, elemen saat ini harus tidak dapat diubah, meskipun batasan ini akan dilonggarkan pada masa mendatang.
Urutan depset yang dibuat harus kompatibel dengan urutan depset transitive
-nya. Pesanan "default"
kompatibel dengan pesanan lainnya, semua pesanan lainnya hanya kompatibel dengan pesanan sendiri.
Parameter
Parameter | Deskripsi |
---|---|
direct
|
sequence; atau None ;
default adalah None Daftar elemen langsung dari depset. |
order
|
string;
default adalah "default" Strategi traversal untuk depset baru. Lihat di sini untuk nilai yang memungkinkan. |
transitive
|
urutan depset; atau None ;
default adalah None Daftar depset yang elemennya akan menjadi elemen tidak langsung dari depset. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])
Parameter
Parameter | Deskripsi |
---|---|
toolchains
|
sequence;
default adalah [] Set toolchain yang diperlukan grup eksekusi ini. Daftar dapat berisi objek String, Label, atau StarlarkToolchainTypeApi, dalam kombinasi apa pun. |
exec_compatible_with
|
urutan string;
default adalah [] Daftar batasan pada platform eksekusi. |
exec_transition
transition exec_transition(implementation, inputs, outputs)
transition()
yang digunakan untuk menentukan transisi exec. Lihat dokumentasi (atau penerapannya) untuk mengetahui praktik terbaik. Hanya dapat digunakan dari bawaan Bazel.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
dapat dipanggil:
wajib |
inputs
|
urutan string;
wajib |
outputs
|
urutan string;
wajib |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)
use_extension
.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
dapat dipanggil:
wajib Fungsi yang mengimplementasikan ekstensi modul ini. Harus mengambil satu parameter, module_ctx . Fungsi ini dipanggil sekali pada awal build untuk menentukan kumpulan repositori yang tersedia.
|
tag_classes
|
dict;
default adalah {} Kamus untuk mendeklarasikan semua class tag yang digunakan oleh ekstensi. Class ini memetakan dari nama class tag ke objek tag_class .
|
doc
|
string; atau None ;
default adalah None Deskripsi ekstensi modul yang dapat diekstrak dengan alat pembuat dokumentasi. |
environ
|
urutan string;
default adalah [] Menyediakan daftar variabel lingkungan yang diandalkan oleh ekstensi modul ini. Jika variabel lingkungan dalam daftar tersebut berubah, ekstensi akan dievaluasi ulang. |
os_dependent
|
bool;
default adalah False Menunjukkan apakah ekstensi ini bergantung pada OS atau tidak |
arch_dependent
|
bool;
default adalah False Menunjukkan apakah ekstensi ini bergantung pada arsitektur atau tidak |
provider
unknown provider(doc=None, *, fields=None, init=None)
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
Lihat Aturan (Penyedia) untuk mengetahui panduan komprehensif tentang cara menggunakan penyedia.
Menampilkan nilai callable Provider
jika init
tidak ditentukan.
Jika init
ditentukan, akan menampilkan tuple yang terdiri dari 2 elemen: nilai callable Provider
dan nilai callable konstruktor mentah. Lihat Aturan (Inisialisasi kustom untuk penyedia kustom) dan pembahasan parameter init
di bawah untuk mengetahui detailnya.
Parameter
Parameter | Deskripsi |
---|---|
doc
|
string; atau None ;
default adalah None Deskripsi penyedia yang dapat diekstrak oleh alat pembuat dokumentasi. |
fields
|
urutan string; atau dict; atau None ;
default-nya adalah None Jika ditentukan, akan membatasi kumpulan kolom yang diizinkan. Kemungkinan nilainya adalah:
|
init
|
dapat dipanggil: atau None ;
default adalah None Callback opsional untuk pra-pemrosesan dan memvalidasi nilai kolom penyedia selama pembuatan instance. Jika init ditentukan, provider() akan menampilkan tuple yang berisi 2 elemen: simbol penyedia normal dan konstruktor mentah.Berikut deskripsi tepatnya; lihat Aturan (Inisialisasi kustom penyedia) untuk mengetahui diskusi dan kasus penggunaan yang intuitif. Misalkan
init tidak diberikan, panggilan ke simbol P itu sendiri akan bertindak sebagai panggilan ke fungsi konstruktor default c ; dengan kata lain, P(*args, **kwargs) menampilkan c(*args, **kwargs) . Misalnya,MyInfo = provider() m = MyInfo(foo = 1) m adalah instance MyInfo dengan m.foo == 1 .Namun, jika
Catatan: langkah-langkah di atas menyiratkan bahwa error terjadi jika Dengan cara ini, callback Jika MyInfo, _new_myinfo = provider(init = ...) |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc=None)
module extension
, atau digunakan oleh use_repo_rule
.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
dapat dipanggil:
wajib fungsi yang mengimplementasikan aturan ini. Harus memiliki satu parameter, repository_ctx . Fungsi ini dipanggil selama fase pemuatan untuk setiap instance aturan.
|
attrs
|
dict; atau None ;
default adalah None kamus untuk mendeklarasikan semua atribut aturan. Atribut ini memetakan dari nama atribut ke objek atribut (lihat modul attr). Atribut yang dimulai dengan _ bersifat pribadi, dan dapat digunakan untuk menambahkan dependensi implisit pada label ke file (aturan repositori tidak dapat bergantung pada artefak yang dihasilkan). Atribut name ditambahkan secara implisit dan tidak boleh ditentukan.
|
local
|
bool;
default adalah False Tunjukkan bahwa aturan ini mengambil semuanya dari sistem lokal dan harus dievaluasi ulang setiap kali pengambilan. |
environ
|
urutan string;
default adalah [] Tidak digunakan lagi. Parameter ini tidak digunakan lagi. Sebagai gantinya, migrasikan ke repository_ctx.getenv .Menyediakan daftar variabel lingkungan yang menjadi dependensi aturan repositori ini. Jika variabel lingkungan dalam daftar tersebut berubah, repositori akan diambil kembali. |
configure
|
bool;
default adalah False Menunjukkan bahwa repositori memeriksa sistem untuk tujuan konfigurasi |
remotable
|
bool;
default adalah False Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Harap tidak bergantung padanya. Fitur ini dapat diaktifkan secara eksperimental dengan menyetel --experimental_repo_remote_exec Kompatibel dengan eksekusi jarak jauh |
doc
|
string; atau None ;
default adalah None Deskripsi aturan repositori yang dapat diekstrak dengan alat yang menghasilkan dokumentasi. |
aturan
callable rule(implementation, *, test=unbound, attrs={}, outputs=None, executable=unbound, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc=None, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])
Aturan harus ditetapkan ke variabel global dalam file .bzl; nama variabel global adalah nama aturan.
Aturan pengujian harus memiliki nama yang diakhiri dengan _test
, sedangkan semua aturan lainnya tidak boleh memiliki akhiran ini. (Pembatasan ini hanya berlaku untuk aturan, bukan targetnya.)
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
function;
wajib fungsi Starlark yang menerapkan aturan ini harus memiliki tepat satu parameter: ctx. Fungsi tersebut dipanggil selama fase analisis untuk setiap instance aturan. Dapat mengakses atribut yang disediakan oleh pengguna. Aplikasi harus membuat tindakan untuk menghasilkan semua output yang dideklarasikan. |
test
|
bool;
default adalah unbound Apakah aturan ini merupakan aturan pengujian, yaitu apakah aturan tersebut merupakan subjek perintah blaze test . Semua aturan pengujian secara otomatis dianggap executable; executable = True tidak perlu ditetapkan (dan tidak disarankan) untuk aturan pengujian secara eksplisit. Nilai default-nya adalah False . Lihat halaman Aturan untuk mengetahui informasi selengkapnya.
|
attrs
|
dict;
default adalah kamus {} untuk mendeklarasikan semua atribut aturan. Atribut ini memetakan dari nama atribut ke objek atribut (lihat modul attr). Atribut yang dimulai dengan _ bersifat pribadi, dan dapat digunakan untuk menambahkan dependensi implisit pada label. Atribut name ditambahkan secara implisit dan tidak boleh ditentukan. Atribut visibility , deprecation , tags , testonly , dan features ditambahkan secara implisit dan tidak dapat diganti. Sebagian besar aturan hanya memerlukan beberapa atribut. Untuk membatasi penggunaan memori, ada batas jumlah atribut yang dapat dideklarasikan.
|
outputs
|
dict; atau None ; atau fungsi;
default adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Harap tidak bergantung padanya. Layanan ini dinonaktifkan dengan --incompatible_no_rule_outputs_param . Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi. Parameter ini tidak digunakan lagi. Migrasikan aturan untuk menggunakan OutputGroupInfo atau attr.output . Skema untuk menentukan output yang telah dideklarasikan. Tidak seperti atribut Nilai argumen ini adalah kamus atau fungsi callback yang menghasilkan kamus. Callback bekerja mirip dengan atribut dependensi yang dihitung: Nama parameter fungsi dicocokkan dengan atribut aturan, jadi misalnya jika Anda meneruskan Tiap entri dalam kamus membuat output yang telah dideklarasikan sebelumnya, dengan kuncinya adalah ID dan nilainya adalah template string yang menentukan label output. Dalam fungsi penerapan aturan, ID menjadi nama kolom yang digunakan untuk mengakses
Dalam praktiknya, placeholder pengganti yang paling umum adalah |
executable
|
bool;
default adalah unbound Apakah aturan ini dianggap dapat dieksekusi, yaitu apakah aturan ini merupakan subjek perintah blaze run . Defaultnya adalah False . Lihat halaman Aturan untuk mengetahui informasi selengkapnya.
|
output_to_genfiles
|
bool;
default adalah False Jika true (benar), file akan dibuat di direktori genfiles, bukan direktori bin. Jangan setel flag ini kecuali Anda memerlukannya untuk kompatibilitas dengan aturan yang ada (misalnya saat membuat file header untuk C++). |
fragments
|
urutan string;
default adalah [] Daftar nama fragmen konfigurasi yang diperlukan aturan dalam konfigurasi target. |
host_fragments
|
urutan string;
default adalah [] Daftar nama fragmen konfigurasi yang diperlukan aturan dalam konfigurasi host. |
_skylark_testable
|
bool;
default adalah False (Eksperimental) Jika true (benar), aturan ini akan menampilkan tindakannya untuk diperiksa oleh aturan yang bergantung padanya melalui penyedia Actions . Penyedia juga tersedia untuk aturan itu sendiri dengan memanggil ctx.created_actions().Ini hanya boleh digunakan untuk menguji perilaku waktu analisis aturan Starlark. Tanda ini dapat dihapus pada masa mendatang. |
toolchains
|
sequence;
default adalah [] Jika ditetapkan, set toolchain yang diperlukan aturan ini. Daftar dapat berisi objek String, Label, atau StarlarkToolchainTypeApi, dalam kombinasi apa pun. Toolchain akan ditemukan dengan memeriksa platform saat ini, dan diberikan ke penerapan aturan melalui ctx.toolchain .
|
incompatible_use_toolchain_transition
|
bool;
default adalah False Tidak digunakan lagi, tidak lagi digunakan dan harus dihapus. |
doc
|
string; atau None ;
default adalah None Deskripsi aturan yang dapat diekstrak dengan alat pembuat dokumentasi. |
provides
|
sequence;
default adalah [] Daftar penyedia yang harus ditampilkan oleh fungsi implementasi. Muncul error jika fungsi implementasi menghilangkan salah satu jenis penyedia yang tercantum di sini dari nilai yang ditampilkannya. Namun, fungsi implementasi mungkin menampilkan penyedia tambahan yang tidak tercantum di sini. Setiap elemen daftar adalah objek |
exec_compatible_with
|
urutan string;
default adalah [] Daftar batasan pada platform eksekusi yang berlaku untuk semua target jenis aturan ini. |
analysis_test
|
bool;
default adalah False Jika true (benar), aturan ini diperlakukan sebagai pengujian analisis. Catatan: Aturan pengujian analisis terutama ditentukan menggunakan infrastruktur yang disediakan di library Starlark inti. Lihat Menguji untuk mendapatkan panduan. Jika sebuah aturan ditetapkan sebagai aturan pengujian analisis, aturan tersebut akan diizinkan untuk menggunakan transisi konfigurasi yang ditentukan menggunakan analysis_test_transition di atributnya, tetapi dapat menerapkan beberapa batasan berikut:
|
build_setting
|
BuildSetting; atau None ;
default adalah None Jika ditetapkan, menjelaskan jenis build setting aturan ini. Lihat modul config . Jika disetel, atribut wajib bernama "build_setting_default" secara otomatis ditambahkan ke aturan ini, dengan jenis yang sesuai dengan nilai yang diteruskan di sini.
|
cfg
|
default adalah None Jika ditetapkan, mengarah ke transisi konfigurasi yang akan diterapkan aturan ke konfigurasinya sendiri sebelum analisis. |
exec_groups
|
dict; atau None ;
default adalah None Dikte nama grup eksekusi (string) ke exec_group . Jika ditetapkan, mengizinkan aturan untuk menjalankan tindakan pada beberapa platform eksekusi dalam satu target. Lihat dokumentasi grup eksekusi untuk info selengkapnya.
|
initializer
|
default adalah None Eksperimental: fungsi Stalark yang menginisialisasi atribut aturan. Fungsi ini dipanggil pada waktu pemuatan untuk setiap instance aturan. Metode ini dipanggil dengan Metode ini harus menampilkan kamus dari nama atribut ke nilai yang diinginkan. Atribut yang tidak ditampilkan tidak akan terpengaruh. Menampilkan Inisialisasi dievaluasi sebelum nilai default yang ditentukan dalam definisi atribut. Akibatnya, jika parameter dalam tanda tangan penginisialisasi berisi nilai default, parameter tersebut akan menimpa nilai default dari definisi atribut (kecuali jika menampilkan Demikian pula, jika parameter dalam tanda tangan penginisialisasi tidak memiliki nilai default, parameter tersebut akan menjadi wajib. Dalam kasus semacam ini, sebaiknya hapus setelan default/wajib pada definisi atribut. Anda sebaiknya menggunakan Pada aturan yang diperluas, semua penginisialisasi akan dipanggil dari turunan ke ancestor. Setiap penginisialisasi hanya meneruskan atribut publik yang diketahuinya. |
parent
|
default adalah None Eksperimental: aturan Stalark yang diperluas. Saat ditetapkan, atribut publik akan digabungkan dan juga penyedia yang diiklankan. Aturan cocok dengan executable dan test dari induk. Nilai fragments , toolchains , exec_compatible_with , dan exec_groups digabungkan. Parameter lama atau tidak digunakan lagi mungkin tidak dapat ditetapkan. Transisi konfigurasi masuk cfg induk diterapkan setelah konfigurasi masuk aturan ini.
|
extendable
|
bool; atau Label; atau string; atau None ;
default-nya adalah None Eksperimental: Label daftar yang diizinkan yang menentukan aturan mana yang dapat memperluas aturan ini. Atribut ini juga dapat ditetapkan ke True/False untuk selalu mengizinkan/tidak mengizinkan perluasan. Secara default, Bazel akan selalu mengizinkan ekstensi. |
subrules
|
urutan Sub-aturan;
default adalah [] Eksperimental: Daftar sub-aturan yang digunakan oleh aturan ini. |
pilih
unknown select(x, no_match_error='')
select()
adalah fungsi bantuan yang membuat atribut aturan dapat dikonfigurasi. Lihat membuat ensiklopedia untuk mengetahui detailnya.
Parameter
Parameter | Deskripsi |
---|---|
x
|
dict;
wajib Dikte yang memetakan kondisi konfigurasi ke nilai. Setiap kunci adalah Label atau string label yang mengidentifikasi instance config_setting atau constraint_value. Lihat dokumentasi tentang makro untuk mengetahui kapan harus menggunakan Label, bukan string. |
no_match_error
|
string;
default adalah '' Error kustom opsional yang akan dilaporkan jika tidak ada kondisi yang cocok. |
subaturan
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
function;
wajib Fungsi Starlark yang menerapkan subaturan ini |
attrs
|
dict;
default adalah {} Kamus untuk mendeklarasikan semua atribut (pribadi) sub-aturan. Sub-aturan hanya boleh memiliki atribut pribadi berjenis label (yaitu label atau daftar label). Nilai yang di-resolve sesuai dengan label ini secara otomatis diteruskan oleh Bazel ke fungsi penerapan subaturan sebagai argumen yang dinamai (sehingga fungsi implementasi diperlukan untuk menerima parameter bernama yang cocok dengan nama atribut). Jenis nilai ini adalah:
|
toolchains
|
sequence;
default adalah [] Jika disetel, set toolchain yang diperlukan oleh sub-aturan ini. Daftar dapat berisi objek String, Label, atau StarlarkToolchainTypeApi, dalam kombinasi apa pun. Toolchain akan ditemukan dengan memeriksa platform saat ini, dan diberikan ke implementasi subaturan melalui ctx.toolchains .
|
fragments
|
urutan string;
default adalah [] Daftar nama fragmen konfigurasi yang diperlukan sub-aturan dalam konfigurasi target. |
subrules
|
urutan Sub-aturan;
default adalah [] Daftar subaturan lain yang diperlukan oleh subaturan ini. |
tag_class
tag_class tag_class(attrs={}, *, doc=None)
Parameter
Parameter | Deskripsi |
---|---|
attrs
|
dict;
default adalah {} Kamus untuk mendeklarasikan semua atribut class tag ini. Atribut ini memetakan dari nama atribut ke objek atribut (lihat modul attr). |
doc
|
string; atau None ;
default adalah None Deskripsi class tag yang dapat diekstrak dengan alat pembuat dokumentasi. |
visibilitas
None
visibility(value)
Menyetel visibilitas beban modul .bzl yang sedang diinisialisasi.
Visibilitas muatan modul mengatur apakah file BUILD dan .bzl lain dapat memuatnya atau tidak. (Hal ini berbeda dengan visibilitas target file sumber .bzl yang mendasarinya, yang mengatur apakah file tersebut muncul sebagai dependensi target lain.) Visibilitas beban berfungsi di level paket: Untuk memuat modul, file yang melakukan pemuatan harus berada di paket yang telah diberi visibilitas ke modul. Modul selalu dapat dimuat dalam paketnya sendiri, terlepas dari visibilitasnya.
visibility()
hanya dapat dipanggil sekali per file .bzl, dan hanya di level teratas, bukan di dalam fungsi. Gaya yang disukai adalah menempatkan panggilan ini tepat di bawah pernyataan load()
dan logika singkat yang diperlukan untuk menentukan argumen.
Jika tanda --check_bzl_visibility
ditetapkan ke salah (false), pelanggaran visibilitas pemuatan akan memberikan peringatan, tetapi tidak akan menggagalkan build.
Parameter
Parameter | Deskripsi |
---|---|
value
|
wajib Daftar string spesifikasi paket, atau string spesifikasi paket tunggal. Spesifikasi paket mengikuti format yang sama seperti
Huruf "@" {i>syntax<i} tidak diizinkan; semua spesifikasi diinterpretasikan relatif terhadap repositori modul saat ini. Jika Perhatikan bahwa flag |