कॉन्फ़िगरेशन

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

उदाहरण: यहां दिए गए नियम को, rule() फ़ंक्शन के build_setting पैरामीटर को सेट करके, बिल्ड सेटिंग के तौर पर मार्क किया गया है. खास तौर पर, यह int टाइप की बिल्ड सेटिंग है और यह flag है. इसका मतलब है कि इस बिल्ड सेटिंग को कमांड लाइन पर कॉल किया जा सकता है.

  my_rule = rule(
    implementation = _impl,
    build_setting = config.int(flag = True),
    ...
  )

सदस्य

बूल

BuildSetting config.bool(*, flag=False)

बूलियन टाइप की बिल्ड सेटिंग

पैरामीटर

पैरामीटर ब्यौरा
flag bool; डिफ़ॉल्ट रूप से False
होता है यह बताता है कि कमांड लाइन पर इस बिल्ड सेटिंग को कॉल किया जा सकता है या नहीं.

exec

ExecTransitionFactory config.exec(exec_group=None)

यह फ़ंक्शन, एक्ज़ीक्यूशन ट्रांज़िशन बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
exec_group string; या None; डिफ़ॉल्ट रूप से None
होता है यह उस एक्ज़ीक्यूशन ग्रुप का नाम है जिसके एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल यह ट्रांज़िशन करेगा. अगर यह विकल्प नहीं दिया जाता है, तो यह एक्ज़ेक ट्रांज़िशन, टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करेगा.

int

BuildSetting config.int(*, flag=False)

पूर्णांक टाइप की बिल्ड सेटिंग

पैरामीटर

पैरामीटर ब्यौरा
flag bool; डिफ़ॉल्ट रूप से False
होता है यह बताता है कि कमांड लाइन पर इस बिल्ड सेटिंग को कॉल किया जा सकता है या नहीं.

कोई नहीं

transition config.none()

यह एक ऐसा ट्रांज़िशन बनाता है जो सभी कॉन्फ़िगरेशन को हटा देता है और सभी फ़्लैग को अनसेट कर देता है. इसका इस्तेमाल ऐसे मामले में किया जाता है जहां डिपेंडेंसी सिर्फ़ डेटा पर आधारित होती है और इसमें ऐसा कोई कोड शामिल नहीं होता जिसे बनाने की ज़रूरत हो. हालांकि, इसका विश्लेषण सिर्फ़ एक बार किया जाना चाहिए.

स्ट्रिंग

BuildSetting config.string(*, flag=False, allow_multiple=False)

स्ट्रिंग टाइप की बिल्ड सेटिंग

पैरामीटर

पैरामीटर ब्यौरा
flag bool; डिफ़ॉल्ट रूप से False
होता है यह बताता है कि कमांड लाइन पर इस बिल्ड सेटिंग को कॉल किया जा सकता है या नहीं.
allow_multiple bool; डिफ़ॉल्ट रूप से False
होता है इस्तेमाल नहीं किया जाता. इसके बजाय, repeatable = True के साथ string_list सेटिंग का इस्तेमाल करें. अगर यह सेट होता है, तो इस फ़्लैग को कमांड लाइन पर कई बार सेट किया जा सकता है. ट्रांज़िशन और बिल्ड सेटिंग लागू करने वाले फ़ंक्शन में ऐक्सेस किए गए फ़्लैग की वैल्यू, स्ट्रिंग की सूची होगी. इंसर्शन ऑर्डर और दोहराई गई वैल्यू, दोनों को बनाए रखा जाता है. अगर आपको अलग-अलग व्यवहार चाहिए, तो इस सूची को बिल्ड सेटिंग लागू करने वाले फ़ंक्शन में पोस्ट-प्रोसेस किया जा सकता है.

string_list

BuildSetting config.string_list(*, flag=False, repeatable=False)

यह स्ट्रिंग की सूची के टाइप वाली बिल्ड सेटिंग है. कमांड लाइन पर, कॉमा लगाकर अलग की गई वैल्यू का इस्तेमाल करके सूची पास करें. जैसे, --//my/setting=foo,bar.

पैरामीटर

पैरामीटर ब्यौरा
flag bool; डिफ़ॉल्ट रूप से False
होता है यह बताता है कि कमांड लाइन पर इस बिल्ड सेटिंग को कॉल किया जा सकता है या नहीं.
repeatable bool; डिफ़ॉल्ट वैल्यू False
है अगर इस फ़्लैग को सेट किया जाता है, तो कॉमा से अलग की गई वैल्यू के बजाय, इसे कमांड लाइन पर कई बार सेट किया जा सकता है. साथ ही, हर वैल्यू को एक स्ट्रिंग के तौर पर माना जाता है, ताकि उसे सूची की वैल्यू में जोड़ा जा सके. इंसर्शन ऑर्डर और दोहराई गई वैल्यू, दोनों को बनाए रखा जाता है. अगर आपको अलग-अलग व्यवहार चाहिए, तो इस सूची को बिल्ड सेटिंग लागू करने वाले फ़ंक्शन में पोस्ट-प्रोसेस किया जा सकता है.

string_set

BuildSetting config.string_set(*, flag=False, repeatable=False)

यह सेट-टाइप की गई स्ट्रिंग की बिल्ड सेटिंग होती है. इस सेटिंग की वैल्यू, Starlark में स्ट्रिंग का सेट होगी. कमांड लाइन पर, कॉमा लगाकर अलग की गई वैल्यू, जैसे कि --//my/setting=foo,bar का इस्तेमाल करके कोई सेट पास करें.

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

पैरामीटर

पैरामीटर ब्यौरा
flag bool; डिफ़ॉल्ट रूप से False
होता है यह बताता है कि कमांड लाइन पर इस बिल्ड सेटिंग को कॉल किया जा सकता है या नहीं.
repeatable bool; डिफ़ॉल्ट वैल्यू False
है अगर यह फ़्लैग सेट किया जाता है, तो कॉमा से अलग की गई वैल्यू के बजाय, इस फ़्लैग को कमांड लाइन पर कई बार सेट किया जा सकता है. साथ ही, हर वैल्यू को सेट वैल्यू में जोड़ने के लिए, एक स्ट्रिंग के तौर पर माना जाता है. दोहराई गई वैल्यू का सिर्फ़ एक इंस्टेंस सेव किया जाता है. साथ ही, वैल्यू को किस क्रम में डाला गया है, इससे कोई फ़र्क़ नहीं पड़ता.

टारगेट

transition config.target()

यह फ़ंक्शन, टारगेट ट्रांज़िशन बनाता है. यह एक नो-ऑप ट्रांज़िशन है. इसका इस्तेमाल तब किया जाता है, जब ट्रांज़िशन ऑब्जेक्ट की ज़रूरत होती है, लेकिन कुछ भी नहीं बदलना होता है. attr.label() में cfg = "target" के बराबर.