Aturan
action_listener
action_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 aspects.
Aturan action_listener
tidak menghasilkan output apa pun.
Sebagai gantinya, solusi ini memungkinkan developer alat menyisipkan
extra_action
ke dalam sistem build,
dengan menyediakan pemetaan dari tindakan ke extra_action
.
Argumen aturan ini memetakan mnemonik tindakan ke
aturan extra_action
.
Dengan menentukan opsi
--experimental_action_listener=<label>
,
build akan menggunakan action_listener
yang ditentukan untuk menyisipkan
extra_action
ke 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 unik untuk target ini. |
extra_actions
|
extra_action target
yang harus ditambahkan action_listener ini ke grafik build.
Misalnya, [ "//my/tools:analyzer" ] .
|
mnemonics
|
action_listener , misalnya, [ "Javac" ] .
Mnemonik bukan antarmuka publik. Tidak ada jaminan bahwa mnemonik dan aksinya tidak akan berubah. |
extra_action
extra_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 aspects.
Aturan extra_action
tidak menghasilkan output yang berarti
jika ditetapkan sebagai target build reguler. Sebagai gantinya, hal ini memungkinkan developer alat
menyisipkan tindakan tambahan ke dalam grafik build yang membayangi tindakan yang ada.
Lihat action_listener
untuk mengetahui detail
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 mendetail tentang tindakan asli yang dibayanginya.
Kode 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 tindakan lainnya, tindakan tambahan di-sandbox dan harus dirancang untuk menanganinya.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. Anda dapat merujuk pada aturan ini denganlabel dalam argumen extra_actions dari aturan action_listener .
|
cmd
|
Seperti atribut genrule cmd dengan perbedaan berikut:
|
out_templates
|
extra_action .
Template ini dapat menggunakan variabel berikut:
|
requires_action_output
|
extra_action ini mengharuskan output tindakan asli ada sebagai input untuk extra_action ini.
Jika true (default false), ekstra_action dapat mengasumsikan bahwa output tindakan asli tersedia sebagai bagian dari inputnya. |
tools
|
tool untuk aturan ini.
Lihat definisi dependensi untuk informasi selengkapnya.
Sistem build memastikan prasyarat ini dibuat 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. |