Quy tắc
action_listener
Xem mã nguồn quy tắcaction_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)
CẢNH BÁO: Các hành động bổ sung không còn được dùng nữa. Thay vào đó, hãy sử dụng khía cạnh.
Bản thân quy tắc action_listener không tạo ra đầu ra nào.
Thay vào đó, quy tắc này cho phép nhà phát triển công cụ chèn
extra_action vào hệ thống bản dựng,
bằng cách cung cấp mối liên kết từ hành động đến extra_action
.
Các đối số của quy tắc này liên kết các từ viết tắt của hành động với
extra_action quy tắc.
Bằng cách chỉ định tuỳ chọn
--experimental_action_listener=<label>,
bản dựng sẽ sử dụng action_listener được chỉ định để chèn
extra_action vào biểu đồ bản dựng.
Ví dụ
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)",
)
Đối số
| Thuộc tính | |
|---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
extra_actions
|
Danh sách nhãn; bắt buộc Danh sách các mục tiêuextra_action
mà action_listener này cần thêm vào biểu đồ bản dựng.
Ví dụ: [ "//my/tools:analyzer" ].
|
mnemonics
|
Danh sách chuỗi; bắt buộc Danh sách các từ viết tắt của hành động màaction_listener này cần theo dõi, ví dụ: [ "Javac" ].
Từ viết tắt không phải là giao diện công khai. Không có gì đảm bảo rằng các từ viết tắt và hành động của chúng không thay đổi. |
extra_action
Xem mã nguồn quy tắcextra_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)
CẢNH BÁO: Các hành động bổ sung không còn được dùng nữa. Thay vào đó, hãy sử dụng khía cạnh.
Quy tắc extra_action không tạo ra đầu ra có ý nghĩa nào
khi được chỉ định làm mục tiêu bản dựng thông thường. Thay vào đó, quy tắc này cho phép nhà phát triển công cụ
chèn các hành động bổ sung vào biểu đồ bản dựng để che phủ các hành động hiện có.
Hãy xem action_listener để biết thông tin chi tiết
về cách bật extra_actions.
extra_action chạy dưới dạng dòng lệnh. Công cụ dòng lệnh có
quyền truy cập vào một tệp chứa bộ đệm giao thức dưới dạng $(EXTRA_ACTION_FILE)
với thông tin chi tiết về hành động ban đầu mà công cụ này đang che phủ.
Công cụ này cũng có quyền truy cập vào tất cả các tệp đầu vào mà hành động ban đầu có quyền truy cập.
Hãy xem extra_actions_base.proto
để biết thông tin chi tiết về dữ liệu được lưu trữ bên trong bộ đệm giao thức. Mỗi tệp proto
chứa một thông báo ExtraActionInfo.
Giống như tất cả các hành động khác, các hành động bổ sung được đưa vào hộp cát và cần được thiết kế để xử lý việc đó.
Đối số
| Thuộc tính | |
|---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. Bạn có thể tham chiếu đến quy tắc này theolabel trong đối số extra_actions
của các quy tắc action_listener.
|
cmd
|
Chuỗi; bắt buộc Lệnh cần chạy.Giống như thuộc tính lệnh genrule với những điểm khác biệt sau:
|
out_templates
|
Danh sách chuỗi; giá trị mặc định là extra_action tạo.
Mẫu này có thể sử dụng các biến sau:
|
requires_action_output
|
Boolean; giá trị mặc định là extra_action này yêu cầu đầu ra của hành động ban đầu phải có dưới dạng đầu vào cho extra_action.
Khi đúng (giá trị mặc định là sai), extra_action có thể giả định rằng các đầu ra của hành động ban đầu có sẵn trong đầu vào của hành động đó. |
tools
|
Danh sách nhãn; giá trị mặc định là tool cho quy tắc này.
Hãy xem định nghĩa về phần phụ thuộc để biết thêm thông tin.
Hệ thống bản dựng đảm bảo rằng các điều kiện tiên quyết này được xây dựng trước khi chạy lệnh
Tất cả các công cụ và phần phụ thuộc dữ liệu của chúng đều được hợp nhất thành một cây duy nhất mà trong đó lệnh có thể sử dụng đường dẫn tương đối. Thư mục làm việc sẽ be là gốc của cây hợp nhất đó. |