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
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"