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

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

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

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

सदस्य

bool

BuildSetting config.bool(*, flag=False)

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

पैरामीटर

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

exec

ExecTransitionFactory config.exec(exec_group=None)

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

पैरामीटर

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

int

BuildSetting config.int(*, flag=False)

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

पैरामीटर

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

कोई नहीं

transition config.none()

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

string

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

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

पैरामीटर

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

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
अगर यह सेट है, तो कॉमा लगाकर अलग की गई वैल्यू के बजाय, इस फ़्लैग को कमांड लाइन पर कई बार सेट किया जा सकता है. साथ ही, हर वैल्यू को सेट की वैल्यू में जोड़ने के लिए, एक स्ट्रिंग के तौर पर माना जाता है. इसमें, दोहराई गई वैल्यू का सिर्फ़ एक इंस्टेंस बनाए रखा जाता है. साथ ही, वैल्यू जोड़ने का क्रम मायने नहीं रखता.

target

transition config.target()

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