Aturan
action_listener
Melihat sumber aturanaction_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
PERINGATAN: Tindakan tambahan tidak digunakan lagi. Sebagai gantinya, gunakan aspek.
Aturan action_listener
tidak menghasilkan output apa pun itu sendiri.
Sebagai gantinya, ini memungkinkan developer alat menyisipkan
extra_action
ke dalam sistem build,
dengan menyediakan pemetaan dari tindakan ke extra_action
.
Argumen aturan ini memetakan mnemoni tindakan ke
aturan extra_action
.
Dengan menentukan opsi
--experimental_action_listener=<label>
,
build akan menggunakan action_listener
yang ditentukan untuk menyisipkan
extra_action
ke dalam grafik build.
Contoh
action_listener( name = "index_all_languages", mnemonics = [ "Javac", "CppCompile", "Python", ], extra_actions = [":indexer"], ) action_listener( name = "index_java", mnemonics = ["Javac"], extra_actions = [":indexer"], ) extra_action( name = "indexer", tools = ["//my/tools:indexer"], cmd = "$(location //my/tools:indexer)" + "--extra_action_file=$(EXTRA_ACTION_FILE)", )
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
extra_actions
|
Daftar label; wajib diisi Daftar targetextra_action
yang harus ditambahkan action_listener ini ke grafik build.
Misalnya, [ "//my/tools:analyzer" ] .
|
mnemonics
|
Daftar string; wajib diisi Daftar mnemonik tindakan yang harus diproses olehaction_listener ini, misalnya, [ "Javac" ] .
Mnemonik bukanlah antarmuka publik. Tidak ada jaminan bahwa mnemoni dan tindakannya tidak berubah. |
extra_action
Lihat sumber aturanextra_action(name, data, cmd, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, out_templates, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
PERINGATAN: Tindakan tambahan tidak digunakan lagi. Sebagai gantinya, gunakan aspek.
Aturan extra_action
tidak menghasilkan output yang bermakna
saat ditentukan sebagai target build reguler. Sebagai gantinya, API ini memungkinkan developer alat
menyisipkan tindakan tambahan ke dalam grafik build yang mengikuti tindakan yang ada.
Lihat action_listener
untuk mengetahui detail
cara mengaktifkan extra_action
.
extra_action
berjalan sebagai command line. Alat command line ini mendapatkan akses ke file yang berisi buffering protokol sebagai $(EXTRA_ACTION_FILE) dengan informasi mendetail tentang tindakan asli yang dibayangi olehnya.
Tindakan ini juga memiliki akses ke semua file input yang dapat diakses oleh tindakan asli.
Lihat extra_actions_base.proto
untuk mengetahui detail tentang data yang disimpan di dalam buffering protokol. Setiap file proto
berisi pesan ExtraActionInfo.
Sama seperti semua tindakan lainnya, tindakan tambahan di-sandbox, dan harus dirancang untuk menanganinya.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. Anda dapat merujuk ke aturan ini denganlabel dalam argumen extra_actions dari aturan action_listener .
|
cmd
|
String; wajib Perintah yang akan dijalankan.Seperti atribut cmd genrule dengan perbedaan berikut:
|
out_templates
|
Daftar string; defaultnya adalah extra_action .
Template dapat menggunakan variabel berikut:
|
requires_action_output
|
Boolean; default-nya adalah extra_action ini memerlukan output tindakan asli untuk ditampilkan sebagai input ke extra_action ini.
Jika benar (default salah), extra_action dapat mengasumsikan bahwa output tindakan asli tersedia sebagai bagian dari inputnya. |
tools
|
Daftar label; default-nya adalah tool untuk aturan ini.
Lihat definisi dependensi untuk mengetahui informasi selengkapnya.
Sistem build memastikan prasyarat ini di-build sebelum menjalankan perintah Semua alat dan dependensi datanya digabungkan ke dalam satu hierarki tempat perintah dapat menggunakan jalur relatif. Direktori kerja akan menjadi root dari pohon terpadu tersebut. |