Quy tắc
action_listener
Xem nguồn quy tắcaction_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: Chúng tôi không còn sử dụng hành động bổ sung nữa. Thay vào đó, hãy sử dụng các khía cạnh.
Quy tắc action_listener
không tạo ra bất kỳ kết quả đầu ra nào.
Thay vào đó, công cụ này cho phép 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 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 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
đã 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 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 Một danh sách các ký hiệu hành động màaction_listener này nên theo dõi, ví dụ: [ "Javac" ] .
Mã mnemonic không phải là giao diện công khai. Không có gì đảm bảo rằng câu thần chú và hành động của câu thần chú đó sẽ không thay đổi. |
extra_action
Xem nguồn quy tắcextra_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: Chúng tôi không còn sử dụng hành động bổ sung nữa. Thay vào đó, hãy sử dụng phương diện.
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 đó, tính năng này cho phép các nhà phát triển công cụ chèn thêm các thao tác khá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 dòng lệnh. Công cụ dòng lệnh sẽ truy cập vào một 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ề hành động ban đầu mà nó đang theo dõi.
Hành động này cũng có quyền truy cập vào tất 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 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 hành động khác, các hành động bổ sung được đưa vào hộp cát và phải được thiết kế để xử lý hành động đó.
Đố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 bằnglabel trong đối số extra_actions của quy tắc action_listener .
|
cmd
|
Chuỗi; bắt buộc Lệnh để chạy.Giống như thuộc tính cmd genrule với các điểm khác biệt sau:
|
out_templates
|
Danh sách chuỗi; mặc định là extra_action tạo.
Mẫu có thể sử dụng các biến sau:
|
requires_action_output
|
Boolean; mặc định là extra_action này yêu cầu đầu ra của thao tác ban đầu phải xuất hiện dưới dạng dữ liệu đầu vào cho extra_action này.
Khi giá trị là true (mặc định là false), hàm extra_action có thể giả định rằng các kết quả đầu ra của hành động ban đầu có sẵn như là một phần của dữ liệu đầu vào. |
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 xây 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 trong đó lệnh có thể sử dụng đường dẫn tương đối. Thư mục đang hoạt động sẽ là thư mục gốc của cây hợp nhất đó. |