Biểu thị hiệu ứng chuyển đổi cấu hình trên cạnh của phần phụ thuộc. Ví dụ: nếu //package:foo phụ thuộc vào //package:bar khi chuyển đổi cấu hình, thì cấu hình của hai mục tiêu này sẽ khác nhau: hiệu ứng chuyển đổi của //package:bar sẽ được xác định theo hiệu ứng chuyển đổi của //package:foo, tuỳ thuộc vào hàm được xác định bằng đối tượng chuyển đổi.
Một hiệu ứng chuyển đổi đọc một tập hợp các chế độ cài đặt bản dựng đầu vào và ghi một tập hợp các chế độ cài đặt bản dựng đầu ra.
Ví dụ:
def _transition_impl(settings, attr):
# This transition just reads the current CPU value as a demonstration.
# A real transition could incorporate this into its followup logic.
current_cpu = settings["//command_line_option:cpu"]
return {"//command_line_option:compilation_mode": "dbg"}
build_in_debug_mode = transition(
implementation = _transition_impl,
inputs = ["//command_line_option:cpu"],
outputs = ["//command_line_option:compilation_mode"],
)
bắt buộc
Hàm triển khai hiệu ứng chuyển đổi này. Hàm này luôn có 2 tham số: settings và attr. Tham số settings là một từ điển có tập hợp các khoá được xác định theo thông số đầu vào. Vì vậy, đối với mỗi chế độ cài đặt bản dựng --//foo=bar, nếu inputs chứa //foo, thì settings sẽ có một mục nhập settings['//foo']='bar'.
Tham số attr là tham chiếu đến ctx.attr. Điều này cho phép hàm triển khai truy cập vào các thuộc tính của quy tắc để có thể chuyển đổi có tham số thuộc tính.
Hàm này phải trả về một dict từ giá trị nhận dạng chế độ cài đặt bản dựng đến giá trị chế độ cài đặt bản dựng; đây thể hiện quá trình chuyển đổi cấu hình: đối với mỗi mục nhập trong dict được trả về, hiệu ứng chuyển đổi sẽ cập nhật chế độ cài đặt đó thành giá trị mới. Mọi chế độ cài đặt khác đều không thay đổi. Hàm này cũng có thể trả về list của dict hoặc dict của dict trong trường hợp chuyển đổi phân tách.
inputs
trình tự của chuỗi;
bắt buộc
Danh sách chế độ cài đặt bản dựng mà hiệu ứng chuyển đổi này có thể đọc. Lớp này sẽ trở thành tập hợp khoá của tham số cài đặt của tham số hàm triển khai.
outputs
trình tự của chuỗi;
bắt buộc
Danh sách các chế độ cài đặt bản dựng có thể được ghi bằng hiệu ứng chuyển đổi này. Đây phải là tập mẹ của tập hợp khoá của từ điển được quá trình chuyển đổi này trả về.