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