Aturan
action_listener
Lihat 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. Gunakan aspek sebagai gantinya.
Aturan action_listener
tidak menghasilkan output apa pun itu sendiri.
Sebaliknya, hal ini memungkinkan
pengembang alat untuk memasukkan
extra_action
ke dalam sistem build,
dengan menyediakan pemetaan dari tindakan ke extra_action
.
Argumen aturan ini memetakan mnemonik aksi ke
extra_action
aturan.
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 diisi Nama unik untuk target ini. |
extra_actions
|
Daftar label; wajib diisi Daftarextra_action target
action_listener ini harus ditambahkan ke grafik build.
Mis. [ "//my/tools:analyzer" ] .
|
mnemonics
|
Daftar {i>string<i}; wajib diisi Daftar mnemonik tindakan yang harus dipantauaction_listener ini
misalnya, [ "Javac" ] .
Mnemonik bukanlah antarmuka publik. Tidak ada jaminan bahwa mnemonik dan tindakannya tidak akan 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. Gunakan aspek sebagai gantinya.
Aturan extra_action
tidak menghasilkan output yang berarti
dan jika ditetapkan sebagai target build reguler. Sebaliknya, hal ini memungkinkan
pengembang alat
untuk menyisipkan tindakan tambahan ke dalam grafik build yang membayangi tindakan yang ada.
Lihat action_listener
untuk mengetahui detailnya
tentang cara mengaktifkan extra_action
.
extra_action
dijalankan sebagai command line. Alat command line mendapatkan
akses ke file yang berisi buffering protokol sebagai $(EXTRA_ACTION_FILE)
dengan informasi detail tentang
tindakan awal yang dibayangi.
Fungsi ini juga memiliki akses ke semua file input yang dapat diakses oleh tindakan asli.
Lihat extra_actions_base.proto
untuk detail tentang data yang disimpan di dalam penyangga protokol. Setiap file proto
berisi pesan ExtraActionInfo.
Sama seperti semua tindakan lainnya, tindakan tambahan akan di-sandbox, dan harus dirancang untuk menanganinya.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. Anda dapat merujuk ke aturan ini denganlabel dalam argumen extra_actions
dari action_listener aturan.
|
cmd
|
String; wajib diisi Perintah yang akan dijalankan.Seperti atribut genrule cmd dengan hal berikut perbedaan:
|
out_templates
|
Daftar {i>string<i}; default-nya adalah extra_action .
Template dapat menggunakan variabel berikut:
|
requires_action_output
|
Boolean; default-nya adalah extra_action ini memerlukan output dari
tindakan asli yang akan ada sebagai input untuk extra_action ini.
Jika true (benar) (default salah), extra_action dapat mengasumsikan bahwa output tindakan asli tersedia sebagai bagian dari inputnya. |
tools
|
Daftar label; default adalah tool untuk aturan ini.
Lihat definisi dependensi untuk mengetahui informasi selengkapnya tidak akurat atau tidak sesuai.
Sistem build memastikan prasyarat ini dibuat sebelum menjalankan
Perintah Semua alat dan dependensi datanya digabungkan ke dalam satu hierarki di mana perintah dapat menggunakan jalur relatif. Direktori kerja akan menjadi akar dari pohon terpadu tersebut. |