ट्रांज़िशन

किसी समस्या की शिकायत करें स्रोत देखें

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

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

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

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