Aturan
action_listener
Lihat sumber aturanaction_listener(name, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, package_metadata, 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.
Sebagai gantinya, aturan 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
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 Nama unik untuk target ini. |
extra_actions
|
Daftar label; wajib Daftar targetextra_action
yang harus ditambahkan action_listener ini ke grafik build.
Misalnya, [ "//my/tools:analyzer" ].
|
mnemonics
|
Daftar string; wajib Daftar mnemonik tindakan yang harus diproses olehaction_listener ini, misalnya [ "Javac" ].
Mnemonik bukan antarmuka publik. Tidak ada jaminan bahwa mnemonik dan tindakannya tidak akan berubah. |
extra_action
Lihat sumber aturanextra_action(name, data, aspect_hints, cmd, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, out_templates, package_metadata, 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
jika ditentukan sebagai target build reguler. Sebagai gantinya, aturan ini memungkinkan developer alat
menyisipkan tindakan tambahan ke dalam grafik build yang menutupi tindakan yang ada.
Lihat action_listener untuk mengetahui detail
cara mengaktifkan extra_actions.
extra_action berjalan sebagai command line. Alat command line mendapatkan
akses ke file yang berisi buffer protokol sebagai $(EXTRA_ACTION_FILE)
dengan informasi mendetail tentang tindakan asli yang ditutupinya.
Alat ini juga memiliki akses ke semua file input yang dapat diakses oleh tindakan asli.
Lihat extra_actions_base.proto
untuk mengetahui detail data yang disimpan di dalam buffer 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 berdasarkanlabel dalam argumen extra_actions
dari action_listener aturan.
|
cmd
|
String; wajib Perintah yang akan dijalankan.Seperti atribut cmd genrule dengan perbedaan berikut:
|
out_templates
|
Daftar string; default-nya adalah extra_action.
Template dapat menggunakan variabel berikut:
|
requires_action_output
|
Boolean; default-nya adalah extra_action ini memerlukan output tindakan asli untuk ada sebagai input ke extra_action ini.
Jika benar (default-nya salah), extra_action dapat mengasumsikan bahwa the original action outputs are available as part of its inputnya. |
tools
|
Daftar label; default-nya adalah tool untuk aturan ini.
Lihat definisi dependensi untuk mengetahui informasi selengkapnya.
Sistem build memastikan prasyarat ini dibuat sebelum menjalankan perintah
Semua alat dan dependensi datanya dikonsolidasikan ke dalam satu pohon yang di dalamnya perintah dapat menggunakan jalur relatif. Direktori kerja akan menjadi root pohon terpadu tersebut. |