लेबल

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

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

सदस्य

लेबल

Label Label(input)

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

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

पैरामीटर

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

name

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"