แสดงการเปลี่ยนการกำหนดค่าในขอบการอ้างอิง เช่น หาก //package:foo ขึ้นอยู่กับ //package:bar ที่มีการเปลี่ยนการกำหนดค่า การกำหนดค่าของ //package:bar (และการขึ้นต่อกัน) จะเป็นการกำหนดค่าของ //package:foo บวกกับการเปลี่ยนแปลงที่ฟังก์ชันการเปลี่ยนระบุ
สมาชิก
การเปลี่ยนผ่าน
transition transition(*, implementation, inputs, outputs)
ตัวอย่าง
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"],
)ดูรายละเอียดเพิ่มเติมที่นี่
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
implementation
|
callable;
required ฟังก์ชันที่ใช้การเปลี่ยนสถานะนี้ ฟังก์ชันนี้มีพารามิเตอร์ 2 รายการเสมอ ได้แก่ settings และ attr settings param คือพจนานุกรมที่มีชุดคีย์ซึ่งกำหนดโดยพารามิเตอร์อินพุต ดังนั้น สำหรับการตั้งค่าบิลด์แต่ละรายการ --//foo=bar หาก inputs มี //foo settings จะมีรายการ settings['//foo']='bar'พารามิเตอร์ ฟังก์ชันนี้ต้องส่งคืน |
inputs
|
ลำดับของสตริง
ต้องระบุ รายการการตั้งค่าการสร้างที่การเปลี่ยนนี้อ่านได้ ซึ่งจะกลายเป็นชุดคีย์ของพารามิเตอร์การตั้งค่าของพารามิเตอร์ฟังก์ชันการติดตั้งใช้งาน |
outputs
|
ลำดับของสตริง
ต้องระบุ รายการการตั้งค่าบิลด์ที่การเปลี่ยนผ่านนี้เขียนได้ ซึ่งต้องเป็นซูเปอร์เซ็ตของชุดคีย์ของพจนานุกรมที่การเปลี่ยนผ่านนี้ส่งคืน |
and_then
transition transition.and_then(transition)
คุณสามารถใช้การคอมโพสเป็นการเปลี่ยนกฎหรือแอตทริบิวต์ได้ทุกที่ที่ใช้การเปลี่ยนคอมโพเนนต์ได้ การเปลี่ยนฉากที่ประกอบขึ้นอาจกำหนดเป้าหมายการกำหนดค่า exec ได้อย่างมากที่สุด 1 รายการ (เช่น config.exec) เมื่อการเปลี่ยนฉาก 2 รายการในเชนแยกการกำหนดค่า ผลลัพธ์จะมีการครอสโปรดักต์ของการแยกเหล่านั้น คีย์สำหรับการแยกที่รวมกันแต่ละรายการคือการต่อกันของคีย์คอมโพเนนต์ที่คั่นด้วยคอมมา
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
transition
|
การเปลี่ยนผ่าน
ต้องระบุ การเปลี่ยนผ่านที่จะใช้หลังจากนี้ |