การเปลี่ยน

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

แสดงการเปลี่ยนการกำหนดค่าในขอบการอ้างอิง เช่น หาก //package:foo ขึ้นอยู่กับ //package:bar ที่มีการเปลี่ยนการกำหนดค่า การกำหนดค่าของเป้าหมายทั้ง 2 รายการนี้จะแตกต่างกัน โดยการเปลี่ยนของ //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'

พารามิเตอร์ attr เป็นการอ้างอิงถึง ctx.attr ซึ่งจะทำให้ฟังก์ชันการติดตั้งใช้งานเข้าถึงแอตทริบิวต์ของกฎได้เพื่อให้การเปลี่ยนผ่านที่กำหนดพารามิเตอร์แอตทริบิวต์เป็นไปได้

ฟังก์ชันนี้ต้องส่งคืน dict จากตัวระบุการตั้งค่าบิลด์ไปยังค่าการตั้งค่าบิลด์ ซึ่งแสดงถึงการเปลี่ยนการกำหนดค่า: สำหรับแต่ละรายการใน dict ที่ส่งคืน การเปลี่ยนจะอัปเดตการตั้งค่านั้นเป็นค่าใหม่ การตั้งค่าอื่นๆ ทั้งหมดจะไม่มีการเปลี่ยนแปลง ฟังก์ชันนี้ยังแสดงlistของdictหรือdictของdictในกรณีที่มีการเปลี่ยนฉากแบบแยกได้ด้วย

inputs ลำดับของสตริง ต้องระบุ
รายการการตั้งค่าการสร้างที่ทรานซิชันนี้อ่านได้ ซึ่งจะกลายเป็นชุดคีย์ของพารามิเตอร์การตั้งค่าของพารามิเตอร์ฟังก์ชันการติดตั้งใช้งาน
outputs ลำดับของสตริง ต้องระบุ
รายการการตั้งค่าการสร้างที่ทรานซิชันนี้เขียนได้ ซึ่งต้องเป็นซูเปอร์เซ็ตของชุดคีย์ของพจนานุกรมที่การเปลี่ยนผ่านนี้ส่งคืน