लेबल

समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

BUILD टारगेट आइडेंटिफ़ायर.

हर Label इंस्टेंस l के लिए, स्ट्रिंग के तौर पर दिखाए गए str(l) में Label(str(l)) == l प्रॉपर्टी होती है. भले ही, Label() कॉल कहीं भी हो.

सदस्य

लेबल

Label Label(input)

यह फ़ंक्शन, उस पैकेज के संदर्भ में लेबल स्ट्रिंग को Label ऑब्जेक्ट में बदलता है जहां कॉल करने वाली .bzl सोर्स फ़ाइल मौजूद होती है. अगर दिया गया मान पहले से ही Label है, तो इसमें कोई बदलाव नहीं किया जाता.

मैक्रो के लिए, मिलता-जुलता फ़ंक्शन native.package_relative_label(), इनपुट को Label में, फ़िलहाल बनाए जा रहे पैकेज के हिसाब से बदल देता है. उस फ़ंक्शन का इस्तेमाल करके स्ट्रिंग-टू-लेबल कन्वर्ज़न की नकल करें जो लेबल वैल्यू वाले नियम एट्रिब्यूट के ज़रिए अपने-आप होता है.

पैरामीटर

पैरामीटर ब्यौरा
input string; या Label; ज़रूरी है
इनपुट लेबल स्ट्रिंग या लेबल ऑब्जेक्ट. अगर लेबल ऑब्जेक्ट को पास किया जाता है, तो उसे पहले जैसा किया जाता है.

नाम

string Label.name

पैकेज में इस लेबल का नाम. उदाहरण के लिए:
Label("//pkg/foo:abc").name == "abc"

पैकेज

string Label.package

इस लेबल का पैकेज हिस्सा. उदाहरण के लिए:
Label("//pkg/foo:abc").package == "pkg/foo"

संबंधित

Label Label.relative(relName)

यह किसी ऐसे लेबल को रिज़ॉल्व करता है जो एब्सोलूट (// से शुरू होता है) या मौजूदा पैकेज से रिलेटिव होता है. अगर यह लेबल किसी रिमोट रिपॉज़िटरी में है, तो उस रिपॉज़िटरी के हिसाब से आर्ग्युमेंट का हल निकाला जाएगा. अगर आर्ग्युमेंट में कोई रिपॉज़िटरी का नाम है, तो मौजूदा लेबल को अनदेखा कर दिया जाता है और आर्ग्युमेंट को वैसा ही दिखाया जाता है जैसा वह है. हालांकि, अगर रिपॉज़िटरी का नाम मौजूदा रिपॉज़िटरी मैपिंग में है, तो उसे फिर से लिखा जाता है. रिज़र्व किए गए लेबल को पहले की तरह दिखाया जाएगा.
उदाहरण के लिए:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux")
Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux")
Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux")
Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public")
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")

अगर डेटा स्टोर करने की जगह की मैपिंग {'@other' : '@remapped'} है, तो डेटा को फिर से मैप किया जाएगा:

Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")

पैरामीटर

पैरामीटर ब्यौरा
relName ज़रूरी है
वह लेबल जिसे इस लेबल के हिसाब से हल किया जाएगा.

workspace_name

string Label.workspace_name

इस लेबल का रिपॉज़िटरी हिस्सा. उदाहरण के लिए,
Label("@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

execroot के हिसाब से, इस लेबल के फ़ाइल फ़ोल्डर के लिए, एक्सीक्यूशन रूट दिखाता है. उदाहरण के लिए:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"