ऑब्जेक्टिव-सी के नियम

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की रिपोर्ट करें सोर्स देखें नाइटली · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

नियम

j2objc_library

नियम का सोर्स देखें
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

यह नियम, Java सोर्स का अनुवाद करने के लिए J2ObjC का इस्तेमाल करता है Objective-C में फ़ाइलें शामिल की जाती हैं, जिनका इस्तेमाल objc_library और objc_binary के डिपेंडेंसी के तौर पर किया जा सकता है नियम. J2ObjC के बारे में विस्तृत जानकारी J2ObjC साइट

बिल्ड फ़्लैग का इस्तेमाल करके, ज़रूरत के मुताबिक J2ObjC ट्रांसपिलेशन फ़्लैग तय किए जा सकते हैं --j2objc_translation_flags.

कृपया ध्यान दें कि j2objc_library टारगेट में शामिल अनुवाद की गई फ़ाइलें को कंपाइलेशन के डिफ़ॉल्ट कॉन्फ़िगरेशन का इस्तेमाल करके कंपाइल किया जाता है. हालांकि, इसके लिए वही कॉन्फ़िगरेशन दिया जाता है जो एक objc_library नियम है जिसके एट्रिब्यूट में कंपाइलेशन का कोई विकल्प नहीं दिया गया है.

साथ ही, जनरेट किए गए कोड की डुप्लीकेट कॉपी को टारगेट लेवल पर हटाया जाता है, न कि सोर्स लेवल पर. अगर आपके पास दो अलग-अलग Java टारगेट में एक जैसी Java सोर्स फ़ाइलें शामिल हैं, तो आपको डुप्लीकेट सिंबल वाली गड़बड़ी दिख सकती है लिंक के समय पर. इस समस्या के समाधान का सही तरीका यह है कि शेयर की गई Java स्रोत फ़ाइलों को एक सामान्य लक्ष्य को अलग कर दें जिस पर निर्भर हो सकता है.

तर्क

विशेषताएं
name

नाम; आवश्यक

इस टारगेट के लिए यूनीक नाम.

deps

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

j2objc_library, java_library, java_import और java_proto_library टारगेट, जिनमें यह शामिल है Objective-C में ट्रांसपिल की जाने वाली Java फ़ाइलें.

java_library और java_import के वे सभी टारगेट जिन्हें पूरा किया जा सकता है exports, deps और runtime_deps तक ट्रांज़िट तौर पर अनुवाद और कंपाइल किया जाएगा. इसमें Java एनोटेशन प्रोसेसिंग से जनरेट की गई फ़ाइलें भी शामिल हैं. बिना srcjar वाले code>java_Import टारगेट के लिए काम नहीं करता है बताया गया है.

J2ObjC अनुवाद के काम करने का तरीका, इस बात पर निर्भर करता है कि सोर्स Java सोर्स किस तरह का है ऐसी फ़ाइलें जो अस्थायी तौर पर बंद किए जाने के दौरान शामिल की जाती हैं. इसमें शामिल हर .java स्रोत फ़ाइलों के लिए java_library में से srcs, संबंधित .h और .m सोर्स फ़ाइल जनरेट हो जाएगा. इसके srcs में शामिल हर सोर्स जार के लिए java_import में से java_library या srcjar, एक उस जार के सभी कोड के साथ संबंधित .h और .m सोर्स फ़ाइल जनरेट की जाएगी.

उपयोगकर्ता अपने कोड में J2ObjC से जनरेट की गई हेडर फ़ाइलें इंपोर्ट कर सकते हैं. ये फ़ाइलें, ओरिजनल Java आर्टफ़ैक्ट के रूट-रिलेटिव पाथ हैं. उदाहरण के लिए, //some/package/foo.java के पास some/package/foo.h का इंपोर्ट पाथ है और //some/package/bar.srcjar के पास some/package/bar.h है

अगर proto_library नियम इस नियम के ट्रांज़िटिव क्लोज़र में हैं, तो J2ObjC Protos इन्हें बाइनरी लेवल पर जनरेट, कंपाइल, और लिंक किया जा सकता है. प्रोटो के लिए //some/proto/foo.proto, उपयोगकर्ता इंपोर्ट का इस्तेमाल करके जनरेट किए गए कोड का रेफ़रंस दे सकते हैं पाथ some/proto/foo.j2objc.pb.h.

entry_classes

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

उन Java क्लास की सूची जिनके साथ अनुवाद किए गए ऑब्जेसी काउंटरपार्ट का रेफ़रंस सीधे तौर पर दिया जाएगा उपयोगकर्ता ऑब्जेसी कोड से. अगर --j2objc_dead_code_removal फ़्लैग चालू है, तो यह एट्रिब्यूट ज़रूरी है. Java की क्लास को उनके कैननिकल नाम में बताई जानी चाहिए Java भाषा की जानकारी. --j2objc_dead_code_removal फ़्लैग होने पर, एंट्री क्लास की सूची को अस्थायी तौर पर इकट्ठा किया जाएगा और खराब कोड का विश्लेषण करने के लिए, एंट्री पॉइंट के तौर पर इस्तेमाल किया जाएगा. इसके बाद, इस्तेमाल नहीं की गई क्लास को ऑब्जेसी ऐप्लिकेशन बंडल के फ़ाइनल वर्शन से हटा दिया जाएगा.
jre_deps

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

अतिरिक्त JRE एम्युलेशन लाइब्रेरी की सूची, जिसका अनुवाद सभी Java कोड के लिए ज़रूरी है j2objc_library नियम. डिफ़ॉल्ट रूप से, सिर्फ़ मुख्य JRE फ़ंक्शन को लिंक किया जाता है.

objc_import

नियम का सोर्स देखें
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, features, includes, licenses, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, visibility, weak_sdk_frameworks)

यह नियम पहले से कंपाइल की गई स्टैटिक लाइब्रेरी को .a फ़ाइल. यह objc_library के साथ काम करने वाले एट्रिब्यूट.

तर्क

विशेषताएं
name

नाम; आवश्यक

इस टारगेट के लिए यूनीक नाम.

deps

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

उन टारगेट की सूची जिन पर यह टारगेट निर्भर करता है.
hdrs

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

C, C++, Objective-C, और Objective-C++ हेडर फ़ाइलों की सूची पब्लिश की गई निर्भर नियमों में शामिल स्रोतों से इस लाइब्रेरी में शामिल किया जाएगा.

ये हेडर, लाइब्रेरी के सार्वजनिक इंटरफ़ेस के बारे में बताते हैं को इस नियम में मौजूद सोर्स से या किसी दूसरे सोर्स से शामिल किए जाने के लिए उपलब्ध कराया गया हो नियम. इस लाइब्रेरी के क्लाइंट को हेडर शामिल नहीं करने चाहिए को srcs एट्रिब्यूट में लिस्ट किया जाना चाहिए.

मॉड्यूल चालू होने पर, इन्हें सोर्स से अलग इकट्ठा किया जाएगा.

बूलियन; False डिफ़ॉल्ट है

अगर 1 है, तो कोई भी बंडल या बाइनरी जो सीधे तौर पर या किसी दूसरे तरीके से इस पर निर्भर करता है लाइब्रेरी में सूचीबद्ध फ़ाइलों की सभी ऑब्जेक्ट फ़ाइलों से srcs और non_arc_srcs, भले ही कुछ में नहीं बाइनरी से रेफ़रंस वाले सिंबल. यह तब उपयोगी होता है, जब आपके कोड को स्पष्ट रूप से कोड द्वारा कॉल नहीं किया जाता है बाइनरी, जैसे कि अगर आपका कोड कुछ कॉलबैक पाने के लिए रजिस्टर होता है कुछ सेवाओं ने उपलब्ध कराया है.
archives

लेबल की सूची; आवश्यक

Objective-C टारगेट को दी गई .a फ़ाइलों की सूची इस टारगेट पर निर्भर रहती हैं.
includes

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

इस टारगेट में जोड़ने के लिए, #include/#import खोज पाथ की सूची टारगेट के हिसाब से ये सभी काम करते हैं. यह तीसरे पक्ष और ओपन सोर्स वाली लाइब्रेरी को सपोर्ट करने के लिए है जो फ़ाइल फ़ोल्डर के पूरे पाथ को उनकी #import/#include के स्टेटमेंट.

पाथ की व्याख्या पैकेज डायरेक्ट्री के हिसाब से की जाती है और genfiles और bin रूट (उदाहरण के लिए, blaze-genfiles/pkg/includedir और blaze-out/pkg/includedir) वास्तविक क्लाइंट रूट का उपयोग कर सकते हैं.

COPS के उलट, इस नियम के लिए ये फ़्लैग जोड़े जाते हैं और इस पर निर्भर सभी नियमों के लिए बनाया गया है. (ध्यान दें: वे नियम नहीं हैं जिन पर यह निर्भर करता है!) होना ध्यान रखें, क्योंकि इसके दूर तक पहुंचने वाले प्रभाव हो सकते हैं. संदेह होने पर, जोड़ें "-आईकोट" फ़्लैग करने के बजाय COPTS पर फ़्लैग कर सकते हैं.

sdk_dylibs

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

SDK टूल .dylib लाइब्रेरी के नाम जिनसे लिंक करना है. उदाहरण के लिए, "libz" या "libarchive" हो. "libc++" अगर बाइनरी में C++ या Objective-C++ सोर्स, अपने डिपेंडेंसी ट्री में. बाइनरी लिंक करते समय, उस बाइनरी के ट्रांज़िटिव डिपेंडेंसी ग्राफ़ में दी गई सभी लाइब्रेरी इस्तेमाल किया गया.
sdk_frameworks

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

SDK टूल के फ़्रेमवर्क के नाम जिनके साथ लिंक करना है. जैसे, "AddressBook", "QuartzCore"). "यूआईकिट" और "फ़ाउंडेशन" iOS, tvOS, visionOS, और WatchOS प्लैटफ़ॉर्म पर भी उपलब्ध हैं. macOS के लिए, सिर्फ़ "Fundation" इस्तेमाल करें हमेशा शामिल होता है.

टॉप लेवल की Apple बाइनरी को लिंक करने पर, उस बाइनरी ट्रांज़िटिव डिपेंडेंसी ग्राफ़ लिंक किया गया है.

sdk_includes

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

इस टारगेट में जोड़ने के लिए, #include/#import खोज पाथ की सूची और ये सभी टारगेट पर निर्भर करते हैं, जहां हर पाथ $(SDKROOT)/usr/include.
textual_hdrs

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

C, C++, Objective-C, और Objective-C++ फ़ाइलों की सूची इस नियम में, सोर्स फ़ाइलों के हिसाब से या इस नियम में मौजूद उपयोगकर्ताओं की ओर से, हेडर के तौर पर शामिल किया गया है लाइब्रेरी. hdrs के उलट, इन्हें अलग से कंपाइल नहीं किया जाएगा स्रोत.
weak_sdk_frameworks

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

ऐसे SDK टूल फ़्रेमवर्क के नाम जिनके साथ कमज़ोर लिंक किए जाने चाहिए. उदाहरण के लिए, "MediaAccessibility". नियमित तौर पर लिंक किए गए SDK टूल के फ़्रेमवर्क और सिंबल के बीच फ़र्क़ कमज़ोर लिंक किए गए फ़्रेमवर्क से कोई गड़बड़ी नहीं होती, रनटाइम के दौरान मौजूद नहीं होते हैं.

objc_library

नियम का सोर्स देखें
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

यह नियम, दिए गए Objective-C सोर्स फ़ाइलों से एक स्टैटिक लाइब्रेरी बनाता है.

तर्क

विशेषताएं
name

नाम; आवश्यक

इस टारगेट के लिए यूनीक नाम.

deps

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

फ़ाइनल बंडल बनाने के लिए, एक साथ जोड़े गए टारगेट की सूची.
srcs

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

C, C++, Objective-C, और Objective-C++ सोर्स और हेडर की सूची फ़ाइलें और/या (`.s`, `.S` या `.asm`) असेंबली सोर्स फ़ाइलें, जिन्हें बनाने के लिए प्रोसेस किया जाता है लाइब्रेरी टारगेट. ये आपकी चेक-इन की गई फ़ाइलें और जनरेट की गई सभी फ़ाइलें होती हैं. सोर्स फ़ाइलों को Clang के साथ .o फ़ाइलों में कंपाइल किया जाता है. हेडर फ़ाइलें srcs एट्रिब्यूट में, किसी भी सोर्स या हेडर से शामिल/इंपोर्ट की जा सकती है है, लेकिन एचडीआर में मौजूद हेडर या ऐसे किसी टारगेट के मुताबिक नहीं जो . इसके अलावा, पहले से कंपाइल की गई .o फ़ाइलों को सोर्स के तौर पर दिखाया जा सकता है. इन बातों का ध्यान रखें पक्का करें कि दी गई .o फ़ाइलों और फ़ाइल फ़ोल्डर के कॉन्फ़िगरेशन में बिल्ड का इस्तेमाल किया जा सकता है, ताकि सिंबल लिंकर से जुड़ी गड़बड़ियां न छूटें.
hdrs

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

C, C++, Objective-C, और Objective-C++ हेडर फ़ाइलों की सूची पब्लिश की गई निर्भर नियमों में शामिल स्रोतों से इस लाइब्रेरी में शामिल किया जाएगा.

ये हेडर, लाइब्रेरी के सार्वजनिक इंटरफ़ेस के बारे में बताते हैं को इस नियम में मौजूद सोर्स से या किसी दूसरे सोर्स से शामिल किए जाने के लिए उपलब्ध कराया गया हो नियम. इस लाइब्रेरी के क्लाइंट को हेडर शामिल नहीं करने चाहिए को srcs एट्रिब्यूट में लिस्ट किया जाना चाहिए.

मॉड्यूल चालू होने पर, इन्हें सोर्स से अलग इकट्ठा किया जाएगा.

बूलियन; False डिफ़ॉल्ट है

अगर 1 है, तो कोई भी बंडल या बाइनरी जो सीधे तौर पर या किसी दूसरे तरीके से इस पर निर्भर करता है लाइब्रेरी में सूचीबद्ध फ़ाइलों की सभी ऑब्जेक्ट फ़ाइलों से srcs और non_arc_srcs, भले ही कुछ में नहीं बाइनरी से रेफ़रंस वाले सिंबल. यह तब उपयोगी होता है, जब आपके कोड को स्पष्ट रूप से कोड द्वारा कॉल नहीं किया जाता है बाइनरी, जैसे कि अगर आपका कोड कुछ कॉलबैक पाने के लिए रजिस्टर होता है कुछ सेवाओं ने उपलब्ध कराया है.
copts

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

कंपाइलर को पास करने के लिए अतिरिक्त फ़्लैग. "वैरिएबल बनाएं" के विकल्प पर निर्भर करता है और बोर्न शेल टोकनाइज़ेशन. ये फ़्लैग सिर्फ़ इस टारगेट पर लागू होंगे, उन पर नहीं या उन पर निर्भर है जो इस पर निर्भर करते हैं.

ध्यान दें कि जनरेट किए गए Xcode प्रोजेक्ट के लिए, "-I" का इस्तेमाल करके डायरेक्ट्री पाथ तय किए गए हैं फ़्लैग इन कर दिया है कॉप्ट पार्स किए गए हैं, पहले "$(workSPACE_ROOT)/" से पहले जोड़े गए हैं अगर वे रिलेटिव पाथ हों, और Xcode के हेडर के सर्च पाथ में जोड़ा गया.

defines

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

कंपाइलर को भेजने के लिए अतिरिक्त -D फ़्लैग. उन्हें इसमें होना चाहिए फ़ॉर्म KEY=VALUE या साधारण KEY और ये हैं इस लक्ष्य के लिए न केवल कंपाइलर को पास किया गया (copts के रूप में ) हैं, लेकिन साथ ही इस लक्ष्य के सभी objc_ निर्भर हैं. "वैरिएबल बनाएं" के विकल्प पर निर्भर करता है और बोर्न शेल टोकनाइज़ेशन.
enable_modules

बूलियन; False डिफ़ॉल्ट है

-fmodules के ज़रिए क्लैंग मॉड्यूल सपोर्ट को चालू करता है. इसे 1 पर सेट करने पर, सिस्टम हेडर और दूसरे टारगेट को @इंपोर्ट किया जा सकेगा: @Import UIKit; @Import path_to_package_target;
implementation_deps

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

लाइब्रेरी टारगेट की जाने वाली दूसरी लाइब्रेरी की सूची, इस पर निर्भर करती है. इससे नापसंद करें deps, हेडर और इन लाइब्रेरी के पाथ (और उनके सभी ट्रांज़िटिव डिप) का इस्तेमाल सिर्फ़ इस लाइब्रेरी को कंपाइल करने के लिए किया जाता है, न कि उन लाइब्रेरी के लिए जिन्हें निर्भर है. implementation_deps के साथ तय की गई लाइब्रेरी अब भी लिंक हैं जो इस लाइब्रेरी पर निर्भर बाइनरी टारगेट में हैं.
includes

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

इस टारगेट में जोड़ने के लिए, #include/#import खोज पाथ की सूची टारगेट के हिसाब से ये सभी काम करते हैं. यह तीसरे पक्ष और ओपन सोर्स वाली लाइब्रेरी को सपोर्ट करने के लिए है जो फ़ाइल फ़ोल्डर के पूरे पाथ को उनकी #import/#include के स्टेटमेंट.

पाथ की व्याख्या पैकेज डायरेक्ट्री के हिसाब से की जाती है और genfiles और bin रूट (उदाहरण के लिए, blaze-genfiles/pkg/includedir और blaze-out/pkg/includedir) वास्तविक क्लाइंट रूट का उपयोग कर सकते हैं.

COPS के उलट, इस नियम के लिए ये फ़्लैग जोड़े जाते हैं और इस पर निर्भर सभी नियमों के लिए बनाया गया है. (ध्यान दें: वे नियम नहीं हैं जिन पर यह निर्भर करता है!) होना ध्यान रखें, क्योंकि इसके दूर तक पहुंचने वाले प्रभाव हो सकते हैं. संदेह होने पर, जोड़ें "-आईकोट" फ़्लैग करने के बजाय COPTS पर फ़्लैग कर सकते हैं.

linkopts

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

लिंकर को भेजने के लिए अतिरिक्त फ़्लैग.
module_map

लेबल; डिफ़ॉल्ट रूप से None है

इस टारगेट के लिए, कस्टम Clang मॉड्यूल मैप. कस्टम मॉड्यूल मैप का इस्तेमाल करने की सलाह नहीं दी जाती है. ज़्यादातर उपयोगकर्ताओं को Baज़ल से जनरेट किए गए मॉड्यूल मैप इस्तेमाल करने चाहिए. अगर बताया गया है, तो Basel इस टारगेट के लिए मॉड्यूल मैप जनरेट नहीं करेगा, लेकिन ‘ कंपाइलर को मॉड्यूल मैप दिया.
module_name

String; "" डिफ़ॉल्ट है

इस टारगेट के लिए मॉड्यूल का नाम सेट करता है. डिफ़ॉल्ट रूप से, मॉड्यूल का नाम ऐसा टारगेट पाथ होता है जिसमें _ से बदले गए खास चिह्न, जैसे कि //foo/baz:bar को foo_baz_bar के तौर पर इंपोर्ट किया जा सकता है.
non_arc_srcs

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

Objective-C फ़ाइलों की ऐसी सूची जिन्हें बनाने के लिए प्रोसेस की जाती है ARC का इस्तेमाल नहीं करने वाले लाइब्रेरी टारगेट के तौर पर होती है. इस एट्रिब्यूट में मौजूद फ़ाइलों को srcs एट्रिब्यूट को सबमिट किया जाता है, लेकिन ARC को चालू किए बिना कंपाइल किया जाता है.
pch

लेबल; डिफ़ॉल्ट रूप से None है

कंपाइल की जा रही हर सोर्स फ़ाइल के शुरू में जोड़ने के लिए हेडर फ़ाइल (दोनों चाप) और नॉन-आर्क). बिल्ड फ़ाइलों में Pch फ़ाइलों के इस्तेमाल की सलाह नहीं दी जाती है. इसलिए, ऐसा होना चाहिए अब सेवा में नहीं है. चूंकि pch फ़ाइलों को वास्तव में पहले से कंपाइल नहीं किया जाता है, इसलिए यह एक बिल्ड-स्पीड एन्हैंसमेंट है. इसके बजाय, यह सिर्फ़ ग्लोबल डिपेंडेंसी है. बिल्ड से का इस्तेमाल करते हैं, लेकिन आप उस चीज़ को सीधे तौर पर शामिल कर रहे हैं, जो आपको में ज़रूरत के हिसाब से देखा जा सकता है.
sdk_dylibs

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

SDK टूल .dylib लाइब्रेरी के नाम जिनसे लिंक करना है. उदाहरण के लिए, "libz" या "libarchive" हो. "libc++" अगर बाइनरी में C++ या Objective-C++ सोर्स, अपने डिपेंडेंसी ट्री में. बाइनरी लिंक करते समय, उस बाइनरी के ट्रांज़िटिव डिपेंडेंसी ग्राफ़ में दी गई सभी लाइब्रेरी इस्तेमाल किया गया.
sdk_frameworks

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

SDK टूल के फ़्रेमवर्क के नाम जिनके साथ लिंक करना है. जैसे, "AddressBook", "QuartzCore"). "यूआईकिट" और "फ़ाउंडेशन" iOS, tvOS, visionOS, और WatchOS प्लैटफ़ॉर्म पर भी उपलब्ध हैं. macOS के लिए, सिर्फ़ "Fundation" इस्तेमाल करें हमेशा शामिल होता है.

टॉप लेवल की Apple बाइनरी को लिंक करने पर, उस बाइनरी ट्रांज़िटिव डिपेंडेंसी ग्राफ़ लिंक किया गया है.

sdk_includes

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

इस टारगेट में जोड़ने के लिए, #include/#import खोज पाथ की सूची और ये सभी टारगेट पर निर्भर करते हैं, जहां हर पाथ $(SDKROOT)/usr/include.
textual_hdrs

लेबल की सूची; डिफ़ॉल्ट रूप से [] है

C, C++, Objective-C, और Objective-C++ फ़ाइलों की सूची इस नियम में, सोर्स फ़ाइलों के हिसाब से या इस नियम में मौजूद उपयोगकर्ताओं की ओर से, हेडर के तौर पर शामिल किया गया है लाइब्रेरी. hdrs के उलट, इन्हें अलग से कंपाइल नहीं किया जाएगा स्रोत.
weak_sdk_frameworks

स्ट्रिंग की सूची; [] डिफ़ॉल्ट है

ऐसे SDK टूल फ़्रेमवर्क के नाम जिनके साथ कमज़ोर लिंक किए जाने चाहिए. उदाहरण के लिए, "MediaAccessibility". नियमित तौर पर लिंक किए गए SDK टूल के फ़्रेमवर्क और सिंबल के बीच फ़र्क़ कमज़ोर लिंक किए गए फ़्रेमवर्क से कोई गड़बड़ी नहीं होती, रनटाइम के दौरान मौजूद नहीं होते हैं.

available_xcodes

नियम का सोर्स देखें
available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)

xcode_config नियम के इंस्टेंस के आधार पर, इस नियम के दो टारगेट तय किए जा सकते हैं दूर से और स्थानीय तौर पर उपलब्ध xcode वर्शन को दिखाता है. इससे एक साथ उपलब्ध एक्सकोड में से कोई आधिकारिक xcode वर्शन चुनने की अनुमति मिलती है.

तर्क

विशेषताएं
name

नाम; आवश्यक

इस टारगेट के लिए यूनीक नाम.

default

लेबल; कॉन्फ़िगर नहीं किया जा सकता; आवश्यक

इस प्लैटफ़ॉर्म के लिए डिफ़ॉल्ट xcode वर्शन.
versions

लेबल की सूची; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से [] है

इस प्लैटफ़ॉर्म पर उपलब्ध Xcode वर्शन.

xcode_config

नियम का सोर्स देखें
xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)

इस नियम के किसी एक टारगेट का रेफ़रंस, --xcode_version_config बिल्ड में दिया जा सकता है फ़्लैग का इस्तेमाल करके, --xcode_version फ़्लैग का स्वीकार किए गए आधिकारिक xcode वर्शन में अनुवाद करें. इससे रजिस्टर किए गए कई उपनामों में से, एक आधिकारिक xcode वर्शन चुनने की अनुमति मिलती है.

तर्क

विशेषताएं
name

नाम; आवश्यक

इस टारगेट के लिए यूनीक नाम.

default

लेबल; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से None है

इस्तेमाल करने के लिए xcode का डिफ़ॉल्ट आधिकारिक वर्शन. दिए गए xcode_version टारगेट से तय किए वर्शन का इस्तेमाल तब किया जाना चाहिए जब कोई xcode_version बिल्ड फ़्लैग मौजूद नहीं है. अगर कोई है, तो यह ज़रूरी है versions सेट हो गए हैं. यह सेट नहीं किया जा सकता, अगर remote_versions या local_versions सेट हो गया है.
local_versions

लेबल; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से None है

स्थानीय तौर पर उपलब्ध xcode_version टारगेट. इन दोनों का इस्तेमाल local_versions के साथ किया जाता है, ताकि आप म्यूचुअल रूप से उपलब्ध हों वर्शन है. अगर versions सेट है, तो हो सकता है कि यह सेट न हो.
remote_versions

लेबल; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से None है

xcode_version टारगेट, जो कहीं से भी उपलब्ध हैं. इन दोनों का इस्तेमाल remote_versions के साथ किया जाता है, ताकि आप म्यूचुअल रूप से उपलब्ध हों वर्शन है. अगर versions सेट है, तो हो सकता है कि यह सेट न हो.
versions

लेबल की सूची; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से [] है

xcode_version टारगेट स्वीकार किए गए, जिनका इस्तेमाल किया जा सकता है. अगर xcode_version बिल्ड फ़्लैग की वैल्यू किसी उपनाम से मेल खाती है या दिए गए xcode_version टारगेट में से किसी का भी वर्शन नंबर, जो टारगेट का इस्तेमाल किया जाएगा. यह सेट नहीं किया जा सकता, अगर remote_versions या local_versions सेट हो गया है.

xcode_version

नियम का सोर्स देखें
xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_visionos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)

यह एक आधिकारिक xcode वर्शन को दिखाता है, जिसमें उस xcode वर्शन के लिए स्वीकार किए जाने वाले उपनाम होते हैं. xcode_config नियम देखें.

तर्क

विशेषताएं
name

नाम; आवश्यक

इस टारगेट के लिए यूनीक नाम.

default_ios_sdk_version

String; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से "" है

iOS sdk वर्शन, जिसे Xcode के इस वर्शन के इस्तेमाल के दौरान डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. ios_sdk_version बिल्ड फ़्लैग यहां बताई गई वैल्यू को बदल देगा.
default_macos_sdk_version

String; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से "" है

macosx sdk वर्शन, जिसे xcode के इस वर्शन के इस्तेमाल के दौरान डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. macos_sdk_version बिल्ड फ़्लैग यहां बताई गई वैल्यू को बदल देगा.
default_tvos_sdk_version

String; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से "" है

tvos sdk वर्शन, जिसे xcode के इस वर्शन के इस्तेमाल के दौरान डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. tvos_sdk_version बिल्ड फ़्लैग यहां बताई गई वैल्यू को बदल देगा.
default_visionos_sdk_version

String; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से "" है

visionos sdk वर्शन, जिसे xcode के इस वर्शन के इस्तेमाल के दौरान डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. visionos_sdk_version बिल्ड फ़्लैग यहां बताई गई वैल्यू को बदल देगा.
default_watchos_sdk_version

String; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से "" है

Watchos sdk वर्शन, जिसे xcode के इस वर्शन के इस्तेमाल के दौरान डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. watchos_sdk_version बिल्ड फ़्लैग यहां बताई गई वैल्यू को बदल देगा.
version

String; कॉन्फ़िगर नहीं किया जा सकता; आवश्यक

Xcode के किसी वर्शन का आधिकारिक वर्शन नंबर.