ट्रांज़िशन

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

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

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

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