यह डिपेंडेंसी के किनारे पर कॉन्फ़िगरेशन ट्रांज़िशन को दिखाता है. उदाहरण के लिए, अगर //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' होगी.
इस फ़ंक्शन को बिल्ड सेटिंग वैल्यू बनाने के लिए, बिल्ड सेटिंग आइडेंटिफ़ायर से |
inputs
|
स्ट्रिंग का क्रम;
ज़रूरी है बिल्ड सेटिंग की सूची, जिन्हें इस ट्रांज़िशन की मदद से पढ़ा जा सकता है. यह, लागू होने वाले फ़ंक्शन पैरामीटर के सेटिंग पैरामीटर का कुंजी सेट बन जाता है. |
outputs
|
स्ट्रिंग का क्रम;
ज़रूरी है उन बिल्ड सेटिंग की सूची जिन्हें इस ट्रांज़िशन का इस्तेमाल करके लिखा जा सकता है. यह इस संक्रमण से लौटाए गए शब्दकोश के कुंजी सेट का सुपरसेट होना चाहिए. |