लेबल

समस्या की शिकायत करें सोर्स देखें

बिल्ड टारगेट आइडेंटिफ़ायर.

हर 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"

relative

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

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