Quy tắc
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)
CẢNH BÁO: Các hành động bổ sung không được dùng nữa. Thay vào đó, hãy sử dụng khung hình.
Quy tắc action_listener
không tự tạo ra bất kỳ kết quả nào.
Thay vào đó, nó cho phép các nhà phát triển công cụ chèn extra_action
vào hệ thống xây dựng, bằng cách cung cấp liên kết từ hành động đến extra_action
.
Các đối số của quy tắc này ánh xạ chức năng ghi nhớ hành động với các quy tắc extra_action
.
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 duy nhất cho mục tiêu này. |
extra_actions
|
extra_action nhắm đến action_listener này sẽ được thêm vào biểu đồ bản dựng.
Ví dụ: [ "//my/tools:analyzer" ] .
|
mnemonics
|
action_listener này nên theo dõi, ví dụ: [ "Javac" ] .
Trình ghi nhớ không phải là giao diện công khai. Không có gì đảm bảo rằng chức năng ghi nhớ và hành động của chúng sẽ không thay đổi. |
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)
CẢNH BÁO: Các hành động bổ sung không được dùng nữa. Thay vào đó, hãy sử dụng khung hình.
Quy tắc extra_action
không tạo ra kết quả 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 đó, nó cho phép các nhà phát triển công cụ chèn thêm thao tác vào biểu đồ bản dựng để ẩn 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 một dòng lệnh. Công cụ dòng lệnh sẽ có quyền truy cập vào tệp chứa vùng đệ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 ẩn.
Ứng dụng này cũng có quyền truy cập vào tất cả tệp đầu vào mà thao tác ban đầu có quyền truy cập.
Xem phần extra_actions_base.proto để biết thông tin chi tiết về dữ liệu được lưu trữ trong vùng đệ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 thao tác khác, thao tác bổ sung cũng nằm trong hộp cát và phải được thiết kế để xử lý thao tác này.
Đối số
Thuộc tính | |
---|---|
name |
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 bằnglabel trong đối số extra_actions của các quy tắc action_listener .
|
cmd
|
Ví dụ như thuộc tính cmd cmd có những điểm khác biệt sau:
|
out_templates
|
extra_action tạo.
Mẫu có thể sử dụng các biến sau:
|
requires_action_output
|
extra_action này yêu cầu phải có dữ liệu đầu ra của thao tác ban đầu làm dữ liệu đầu vào cho extra_action này.
Khi giá trị true (mặc định là false), thì extra_action có thể giả định rằng đầu ra của hành động ban đầu có sẵn như một phần của dữ liệu đầu vào. |
tools
|
tool đối với quy tắc này.
Xem định nghĩa về phần phụ thuộc để biết thêm thông tin.
Hệ thống xây dựng đảm bảo rằng 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ông cụ và phần phụ thuộc dữ liệu của công cụ đó đều được hợp nhất vào một cây duy nhất, trong đó lệnh có thể sử dụng các đường dẫn tương đối. Thư mục đang hoạt động sẽ là gốc của cây hợp nhất đó. |