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