Pelanggan
- analysis_test_transition
- aspek
- configuration_field
- dependensi
- exec_group
- module_extension
- penyedia
- repository_rule
- aturan
- pilih
- sub-aturan
- tag_class
- visibilitas
analysis_test_transition
transition analysis_test_transition(settings)
Membuat transisi konfigurasi untuk diterapkan pada dependensi aturan analysis-test. 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 cakupan potensial yang terbatas jika dibandingkan dengan transisi yang dibuat menggunakan transition()
.
Fungsi ini terutama dirancang untuk memfasilitasi library inti Analysis Test Framework. Lihat dokumentasi (atau penerapannya) untuk mengetahui praktik terbaik.
Parameter
Parameter | Deskripsi |
---|---|
settings
|
diperlukan Kamus yang berisi informasi tentang setelan konfigurasi yang harus disetel oleh transisi konfigurasi ini. Kunci adalah label setelan build dan nilai merupakan nilai pascatransisi yang baru. Semua setelan lainnya tidak berubah. Gunakan ini untuk mendeklarasikan setelan konfigurasi tertentu yang harus ditetapkan oleh pengujian analisis agar dapat lulus. |
aspek
Aspect aspect(implementation, attr_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=[])Membuat aspek baru. Hasil fungsi ini harus disimpan dalam nilai global. Lihat pengantar Aspek untuk detail selengkapnya.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
diperlukan 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;
defaultnya adalah [] Daftar nama atribut. Aspek menyebar di sepanjang dependensi yang ditentukan dalam atribut target dengan nama ini. Nilai umum di sini mencakup deps dan exports . Daftar ini juga dapat berisi string tunggal "*" untuk disebarkan di sepanjang semua dependensi target.
|
attrs
|
dict;
defaultnya adalah {} Kamus yang mendeklarasikan semua atribut aspek. Elemen ini memetakan dari nama atribut ke objek atribut, seperti `attr.label` atau `attr.string` (lihat modul attr). Atribut aspek tersedia untuk fungsi implementasi sebagai kolom parameter ctx . Atribut implisit yang dimulai dengan Atribut eksplisit harus memiliki jenis |
required_providers
|
default-nya adalah [] Atribut ini memungkinkan aspek membatasi propagasinya hanya ke target yang aturannya mengiklankan penyedia yang diperlukannya. Nilai harus berupa daftar yang berisi penyedia individual atau daftar penyedia, tetapi bukan 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 menjadi daftar yang berisi satu daftar penyedia. Artinya, Agar beberapa aturan (misalnya, |
required_aspect_providers
|
default-nya adalah [] Atribut ini memungkinkan aspek ini memeriksa aspek lain. Nilai harus berupa daftar yang berisi penyedia individual atau daftar penyedia, tetapi bukan 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 menjadi daftar yang berisi satu daftar penyedia. Artinya, Agar aspek lain (misalnya, |
provides
|
default-nya adalah [] Daftar penyedia yang harus ditampilkan oleh fungsi penerapan. Akan terjadi error jika fungsi implementasi menghilangkan jenis penyedia yang tercantum di sini dari nilai yang ditampilkan. Namun, fungsi implementasi dapat menampilkan penyedia tambahan yang tidak tercantum di sini. Setiap elemen daftar adalah objek |
requires
|
urutan Aspek;
defaultnya adalah [] Daftar aspek yang perlu diterapkan sebelum aspek ini. |
fragments
|
urutan string;
defaultnya adalah [] Daftar nama fragmen konfigurasi yang diperlukan aspek dalam konfigurasi target. |
host_fragments
|
urutan string;
defaultnya adalah [] Daftar nama fragmen konfigurasi yang diperlukan aspek dalam konfigurasi host. |
toolchains
|
sequence;
default-nya adalah [] Jika disetel, 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
|
defaultnya adalah False Tidak digunakan lagi, tidak lagi digunakan dan harus dihapus. |
doc
|
string; atau None ;
default-nya adalah None Deskripsi aspek yang dapat diekstrak dengan alat pembuat dokumentasi. |
apply_to_generating_rules
|
defaultnya adalah False Jika true (benar), aspek akan, saat diterapkan ke file output, akan diterapkan ke aturan pembuatan file output. Misalnya, aspek menyebarkan secara transitif melalui atribut `deps` dan diterapkan ke `alpha` target. Misalkan `alpha` memiliki `deps = [':beta_output']`, dengan `beta_output` adalah output yang dideklarasikan dari target `beta`. Misalkan `beta` memiliki target `charlie` sebagai salah satu `alphas`-nya. Jika `apply_to_generated_rules=True aspek, maka akan menerapkan `Falsechar` untuk aspek `False`. Salah secara default. |
exec_compatible_with
|
urutan string;
defaultnya adalah [] Daftar batasan pada platform eksekusi yang berlaku untuk semua instance aspek ini. |
exec_groups
|
dict; atau None ;
default-nya adalah None Dict nama grup eksekusi (string) ke exec_group . Jika ditetapkan, aspek dapat menjalankan tindakan di beberapa platform eksekusi dalam satu instance. Lihat dokumentasi grup eksekusi untuk info selengkapnya.
|
subrules
|
urutan Subaturan;
defaultnya adalah [] Eksperimental: daftar subaturan yang digunakan oleh aspek ini. |
configuration_field
LateBoundDefault configuration_field(fragment, name)Mereferensikan nilai default yang terikat akhir untuk atribut jenis label. Nilai 'terikat akhir' jika konfigurasi harus dibuat sebelum menentukan nilai. Atribut apa pun yang menggunakan ini sebagai nilai harus bersifat pribadi.
Contoh penggunaan:
Menentukan atribut aturan:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Mengakses di penerapan aturan:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Parameter
Parameter | Deskripsi |
---|---|
fragment
|
required Nama fragmen konfigurasi yang berisi nilai yang terikat akhir. |
name
|
diperlukan Nama nilai yang akan diperoleh dari fragmen konfigurasi. |
dependensi
depset depset(direct=None, order="default", *, transitive=None)Membuat dependensi. Parameter
direct
adalah daftar elemen langsung dari dependensi, dan parameter transitive
adalah daftar dependensi yang elemennya menjadi elemen tidak langsung dari dependensi yang dibuat. Urutan elemen yang ditampilkan saat dependensi dikonversi menjadi daftar ditentukan oleh parameter order
. Lihat Ringkasan Depset untuk mengetahui informasi selengkapnya.
Semua elemen (langsung dan tidak langsung) dari dependensi harus berjenis sama, seperti yang diperoleh dengan ekspresi type(x)
.
Karena kumpulan berbasis hash digunakan untuk menghilangkan duplikat selama iterasi, semua elemen dependensi harus dapat di-hash. Namun, invarian ini saat ini tidak diperiksa secara konsisten di semua konstruktor. Gunakan tanda --incompatible_always_check_depset_element untuk mengaktifkan pemeriksaan yang konsisten; ini akan menjadi perilaku default dalam rilis mendatang; lihat Masalah 10313.
Selain itu, elemen saat ini harus tidak dapat diubah, meskipun pembatasan ini akan dilonggarkan di masa mendatang.
Urutan dependensi yang dibuat harus kompatibel dengan urutan dependensi transitive
-nya. Pesanan "default"
kompatibel dengan pesanan lainnya, semua pesanan lainnya hanya kompatibel dengan pesanan itu sendiri.
Parameter
Parameter | Deskripsi |
---|---|
direct
|
sequence; atau None ;
default-nya adalah None Daftar elemen langsung dari dependensi. |
order
|
default-nya adalah "default" Strategi traversal untuk dependensi baru. Lihat di sini untuk nilai yang memungkinkan. |
transitive
|
urutan dependensi; atau None ;
defaultnya adalah None Daftar dependensi yang elemennya akan menjadi elemen tidak langsung dari dependensi tersebut. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])Membuat grup eksekusi yang dapat digunakan untuk membuat tindakan untuk platform eksekusi tertentu selama penerapan aturan.
Parameter
Parameter | Deskripsi |
---|---|
toolchains
|
sequence;
default-nya 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;
defaultnya adalah [] Daftar batasan pada platform eksekusi. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)Membuat ekstensi modul baru. Simpan dalam nilai global agar dapat diekspor dan digunakan dalam file MODULE.bazel.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
diperlukan Fungsi yang mengimplementasikan ekstensi modul ini. Harus mengambil satu parameter, module_ctx . Fungsi ini dipanggil satu kali di awal build untuk menentukan set repo yang tersedia.
|
tag_classes
|
defaultnya adalah {} Kamus untuk mendeklarasikan semua class tag yang digunakan oleh ekstensi. Class tag ini dipetakan dari nama class tag ke objek tag_class .
|
doc
|
string; atau None ;
default-nya adalah None Deskripsi ekstensi modul yang dapat diekstrak dengan alat pembuat dokumentasi. |
environ
|
urutan string;
defaultnya adalah [] Menyediakan daftar variabel lingkungan yang diandalkan ekstensi modul ini. Jika variabel lingkungan dalam daftar tersebut berubah, ekstensi akan dievaluasi ulang. |
os_dependent
|
defaultnya adalah False Menunjukkan apakah ekstensi ini bergantung pada OS atau tidak |
arch_dependent
|
defaultnya adalah False Menunjukkan apakah ekstensi ini bergantung pada arsitektur atau tidak |
provider
unknown provider(doc=None, *, fields=None, init=None)Mendefinisikan simbol penyedia. Penyedia bisa dibuat instance-nya dengan memanggilnya, atau digunakan langsung sebagai kunci untuk mengambil instance penyedia tersebut dari target. Contoh:
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 panduan komprehensif tentang cara menggunakan penyedia.
Menampilkan nilai callable Provider
jika init
tidak ditentukan.
Jika init
ditentukan, menampilkan tuple yang berisi 2 elemen: nilai callable Provider
dan nilai callable konstruktor raw. Lihat Aturan (Inisialisasi kustom penyedia kustom) dan diskusi parameter init
di bawah untuk mengetahui detailnya.
Parameter
Parameter | Deskripsi |
---|---|
doc
|
string; atau None ;
default-nya adalah None Deskripsi penyedia yang dapat diekstrak dengan alat pembuat dokumentasi. |
fields
|
urutan string; atau dict; atau None ;
defaultnya adalah None Jika ditentukan, akan membatasi kumpulan kolom yang diizinkan. Nilai yang memungkinkan adalah:
|
init
|
callable; atau None ;
default-nya adalah None Callback opsional untuk memproses sebelumnya 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.Deskripsi tepatnya dapat dilihat; lihat Aturan (Inisialisasi kustom penyedia) untuk diskusi dan kasus penggunaan yang intuitif. Biarkan
init tidak diberikan, panggilan ke simbol P itu sendiri akan bertindak sebagai panggilan ke fungsi konstruktor default c ; dengan kata lain, P(*args, **kwargs) akan menampilkan c(*args, **kwargs) . Misalnya,MyInfo = provider() m = MyInfo(foo = 1)akan langsung dibuat sehingga 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)Membuat aturan repositori baru. Simpan dalam nilai global agar dapat dimuat dan dipanggil dari file WORKSPACE.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
diperlukan fungsi yang menerapkan aturan ini. Harus memiliki satu parameter, repository_ctx . Fungsi ini dipanggil selama fase pemuatan untuk setiap instance aturan.
|
attrs
|
dict; atau None ;
default-nya adalah kamus None 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
|
default-nya adalah False Tunjukkan bahwa aturan ini mengambil semuanya dari sistem lokal dan harus dievaluasi ulang pada setiap pengambilan. |
environ
|
urutan string;
defaultnya adalah [] Tidak digunakan lagi. Parameter ini tidak digunakan lagi. Migrasi ke repository_ctx.getenv sebagai gantinya.Menyediakan daftar variabel lingkungan yang menjadi dependensi aturan repositori ini. Jika variabel lingkungan dalam daftar tersebut berubah, repositori akan diambil kembali. |
configure
|
defaultnya adalah False Menunjukkan bahwa repositori memeriksa sistem untuk tujuan konfigurasi |
remotable
|
setelan defaultnya adalah False Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Jangan bergantung padanya. Fitur ini dapat diaktifkan secara eksperimental dengan menyetel ---experimental_repo_remote_exec Kompatibel dengan eksekusi jarak jauh |
doc
|
string; atau None ;
default-nya adalah None Deskripsi aturan repositori yang dapat diekstrak dengan alat pembuat 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=[])Membuat aturan baru, yang dapat dipanggil dari file BUILD atau makro untuk membuat target.
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
|
diperlukan fungsi Starlark yang menerapkan aturan ini, harus hanya memiliki satu parameter: ctx. Fungsi ini dipanggil selama fase analisis untuk setiap instance aturan. Dapat mengakses atribut yang disediakan oleh pengguna. SDK harus membuat tindakan untuk menghasilkan semua output yang dideklarasikan. |
test
|
bool;
default-nya adalah unbound Apakah aturan ini adalah aturan pengujian, yaitu, apakah aturan tersebut mungkin menjadi subjek perintah blaze test . Semua aturan pengujian secara otomatis dianggap dapat dieksekusi; aturan pengujian tidak diperlukan (dan tidak disarankan) untuk secara eksplisit menetapkan executable = True . Nilai defaultnya adalah False . Lihat halaman Aturan untuk informasi selengkapnya.
|
attrs
|
dict;
kamus default-nya 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, fungsi aturan memberlakukan batas pada ukuran atribut.
|
outputs
|
dict; atau None ; atau function;
default-nya adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Jangan bergantung padanya. Kunci ini dinonaktifkan dengan ---incompatible_no_rule_outputs_param . Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan dalam waktu dekat. Parameter ini tidak digunakan lagi. Migrasikan aturan untuk menggunakan OutputGroupInfo atau attr.output sebagai gantinya. Skema untuk menentukan output yang telah dideklarasikan sebelumnya. Tidak seperti atribut Nilai argumen ini adalah kamus atau fungsi callback yang menghasilkan kamus. Callback berfungsi mirip dengan atribut dependensi yang dihitung: Nama parameter fungsi dicocokkan dengan atribut aturan, jadi misalnya jika Anda meneruskan Setiap entri dalam kamus akan membuat output yang telah dideklarasikan sebelumnya dengan kuncinya adalah ID dan nilainya berupa template string yang menentukan label output. Dalam fungsi implementasi aturan, ID menjadi nama kolom yang digunakan untuk mengakses
Dalam praktiknya, placeholder substitusi yang paling umum adalah |
executable
|
bool;
default-nya adalah unbound Apakah aturan ini dianggap dapat dieksekusi, yaitu, apakah aturan tersebut dapat menjadi subjek perintah blaze run . Nilai defaultnya adalah False . Lihat halaman Aturan untuk informasi selengkapnya.
|
output_to_genfiles
|
defaultnya adalah False Jika true (benar), file akan dibuat dalam direktori genfiles, bukan direktori bin. Kecuali Anda membutuhkannya untuk kompatibilitas dengan aturan yang ada (misalnya saat membuat file header untuk C++), jangan tetapkan flag ini. |
fragments
|
urutan string;
defaultnya adalah [] Daftar nama fragmen konfigurasi yang diperlukan aturan dalam konfigurasi target. |
host_fragments
|
urutan string;
defaultnya adalah [] Daftar nama fragmen konfigurasi yang diperlukan aturan dalam konfigurasi host. |
_skylark_testable
|
default-nya adalah False (Eksperimental) Jika true (benar), aturan ini akan mengekspos tindakannya untuk diperiksa berdasarkan aturan yang bergantung pada aturan tersebut melalui penyedia Actions . Penyedia juga tersedia untuk aturan itu sendiri dengan memanggil ctx.created_actions().Perintah ini hanya boleh digunakan untuk menguji perilaku waktu analisis aturan Starlark. Tanda ini dapat dihapus pada masa mendatang. |
toolchains
|
sequence;
default-nya adalah [] Jika disetel, 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
|
defaultnya adalah False Tidak digunakan lagi, tidak lagi digunakan dan harus dihapus. |
doc
|
string; atau None ;
default-nya adalah None Deskripsi aturan yang dapat diekstrak dengan alat pembuat dokumentasi. |
provides
|
default-nya adalah [] Daftar penyedia yang harus ditampilkan oleh fungsi penerapan. Akan terjadi error jika fungsi implementasi menghilangkan jenis penyedia yang tercantum di sini dari nilai yang ditampilkan. Namun, fungsi implementasi dapat menampilkan penyedia tambahan yang tidak tercantum di sini. Setiap elemen daftar adalah objek |
exec_compatible_with
|
urutan string;
defaultnya adalah [] Daftar batasan pada platform eksekusi yang berlaku untuk semua target dari jenis aturan ini. |
analysis_test
|
default-nya adalah False Jika benar, aturan ini diperlakukan sebagai pengujian analisis. Catatan: Aturan pengujian analisis terutama ditentukan menggunakan infrastruktur yang disediakan dalam library Starlark inti. Lihat Pengujian untuk panduan. Jika ditentukan sebagai aturan pengujian analisis, aturan diizinkan untuk menggunakan transisi konfigurasi yang ditentukan menggunakan analysis_test_transition pada atributnya, tetapi dapat memilih untuk menerapkan beberapa batasan:
|
build_setting
|
BuildSetting; atau None ;
default-nya adalah None Jika ditetapkan, menjelaskan jenis build setting aturan ini. Lihat modul config . Jika kebijakan ini disetel, atribut wajib bernama "build_setting_default" akan otomatis ditambahkan ke aturan ini, dengan jenis yang sesuai dengan nilai yang diteruskan di sini.
|
cfg
|
default-nya adalah None Jika ditetapkan, mengarah ke transisi konfigurasi yang akan diterapkan aturan ke konfigurasinya sendiri sebelum analisis. |
exec_groups
|
dict; atau None ;
default-nya adalah None Dict nama grup eksekusi (string) ke exec_group . Jika ditetapkan, aturan dapat dijalankan oleh aturan di beberapa platform eksekusi dalam satu target. Lihat dokumentasi grup eksekusi untuk info selengkapnya.
|
initializer
|
defaultnya adalah None Eksperimental: fungsi Stalark menginisialisasi atribut aturan. Fungsi ini dipanggil pada waktu pemuatan untuk setiap instance aturan. Callback ini dipanggil dengan Fungsi 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 default, parameter tersebut akan bersifat wajib. Sebaiknya hapus setelan default/wajib pada definisi atribut dalam kasus tersebut. Merupakan praktik yang baik untuk menggunakan Untuk aturan yang diperluas, semua penginisialisasi dipanggil dari turunan ke ancestor. Setiap penginisialisasi hanya meneruskan atribut publik yang diketahuinya. |
parent
|
defaultnya adalah None Eksperimental: aturan Stalark yang diperluas. Jika ditetapkan, atribut publik akan digabungkan serta penyedia yang diiklankan. Aturan cocok dengan executable dan test dari induk. Nilai fragments , toolchains , exec_compatible_with , dan exec_groups digabungkan. Parameter lama atau yang tidak digunakan lagi mungkin tidak ditetapkan. Transisi konfigurasi masuk cfg dari 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. Parameter ini juga dapat disetel ke Benar/Salah untuk selalu mengizinkan/tidak mengizinkan perluasan. Secara default, Bazel selalu mengizinkan ekstensi. |
subrules
|
urutan Subaturan;
default-nya adalah [] Eksperimental: Daftar subaturan yang digunakan oleh aturan ini. |
pilih
unknown select(x, no_match_error='')
select()
adalah fungsi bantuan yang membuat atribut aturan dapat dikonfigurasi. Lihat ensiklopedia build untuk mengetahui detailnya.
Parameter
Parameter | Deskripsi |
---|---|
x
|
diperlukan dict 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
|
defaultnya adalah '' Error kustom opsional yang akan dilaporkan jika tidak ada kondisi yang cocok. |
subaturan
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])Membuat instance baru dari subaturan. Hasil fungsi ini harus disimpan dalam variabel global sebelum dapat digunakan.
Parameter
Parameter | Deskripsi |
---|---|
implementation
|
function;
wajib Fungsi Starlark yang mengimplementasikan subaturan ini |
attrs
|
dict;
defaultnya adalah {} Kamus untuk mendeklarasikan semua atribut (pribadi) dari subaturan. Sub-aturan hanya boleh memiliki atribut pribadi yang berjenis label (yaitu label atau daftar-label). Nilai yang di-resolve terkait label ini secara otomatis diteruskan oleh Bazel ke fungsi implementasi subaturan sebagai argumen bernama (sehingga fungsi implementasi diperlukan untuk menerima parameter bernama yang cocok dengan nama atribut). Jenis nilai ini adalah:
|
toolchains
|
sequence;
default-nya adalah [] Jika ditetapkan, kumpulan toolchain yang diperlukan subaturan 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;
defaultnya adalah [] Daftar nama fragmen konfigurasi yang diperlukan subaturan dalam konfigurasi target. |
subrules
|
urutan Subaturan;
defaultnya adalah [] Daftar subaturan lain yang diperlukan oleh subaturan ini. |
tag_class
tag_class tag_class(attrs={}, *, doc=None)Membuat objek tag_class baru, yang menentukan skema atribut untuk class tag, yang merupakan objek data yang dapat digunakan oleh ekstensi modul.
Parameter
Parameter | Deskripsi |
---|---|
attrs
|
defaultnya 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-nya adalah None Deskripsi class tag yang dapat diekstrak dengan alat pembuat dokumentasi. |
visibilitas
None
visibility(value)
Menyetel visibilitas pemuatan modul .bzl yang saat ini sedang diinisialisasi.
Visibilitas beban 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 mungkin muncul sebagai dependensi dari target lainnya.) Visibilitas pemuatan berfungsi di level paket: Untuk memuat modul, file yang melakukan pemuatan harus aktif 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 lebih disukai adalah menempatkan panggilan ini tepat di bawah pernyataan load()
dan logika singkat apa pun yang diperlukan untuk menentukan argumen.
Jika tanda --check_bzl_visibility
disetel ke salah (false), pelanggaran visibilitas pemuatan akan memberikan peringatan, tetapi tidak menggagalkan build.
Parameter
Parameter | Deskripsi |
---|---|
value
|
diperlukan Daftar string spesifikasi paket, atau string spesifikasi paket tunggal. Spesifikasi paket mengikuti format yang sama seperti untuk
Sintaksis "@" tidak diizinkan; semua spesifikasi ditafsirkan secara relatif terhadap repositori modul saat ini. Jika Perhatikan bahwa tanda |