ट्रांज़िशन

यह डिपेंडेंसी के किनारे पर कॉन्फ़िगरेशन ट्रांज़िशन को दिखाता है. उदाहरण के लिए, अगर //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 ज़रूरी है
इस ट्रांज़िशन को लागू करने वाला फ़ंक्शन. इस फ़ंक्शन में हमेशा दो पैरामीटर होते हैं: settings और attr. settings पैरामीटर एक डिक्शनरी है. इसमें कुंजियों का सेट, इनपुट पैरामीटर से तय होता है. इसलिए, अगर inputs में //foo शामिल है, तो हर बिल्ड सेटिंग --//foo=bar के लिए, settings में एक एंट्री settings['//foo']='bar' होगी.

attr पैरामीटर, ctx.attr का रेफ़रंस है. यह लागू करने वाले फ़ंक्शन को नियम के एट्रिब्यूट का ऐक्सेस देता है, ताकि एट्रिब्यूट-पैरामीटर वाले ट्रांज़िशन संभव हो सकें.

इस फ़ंक्शन को बिल्ड सेटिंग वैल्यू बनाने के लिए, बिल्ड सेटिंग आइडेंटिफ़ायर से dict मिलना चाहिए; यह कॉन्फ़िगरेशन ट्रांज़िशन को दिखाता है: दिए गए dict में हर एंट्री के लिए, ट्रांज़िशन उस सेटिंग को नई वैल्यू पर अपडेट कर देता है. अन्य सभी सेटिंग में कोई बदलाव नहीं हुआ है. स्प्लिट ट्रांज़िशन की स्थिति में, यह फ़ंक्शन dict का list या dict का dict भी दिखा सकता है.

inputs sequence of strings; ज़रूरी है
बिल्ड सेटिंग की सूची, जिन्हें इस ट्रांज़िशन के ज़रिए पढ़ा जा सकता है. यह, लागू होने वाले फ़ंक्शन पैरामीटर के सेटिंग पैरामीटर का कुंजी सेट बन जाता है.
outputs sequence of strings; ज़रूरी है
बिल्ड सेटिंग की ऐसी सूची जिसे इस ट्रांज़िशन के ज़रिए लिखा जा सकता है. यह इस संक्रमण से लौटाए गए शब्दकोश के कुंजी सेट का सुपरसेट होना चाहिए.