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

नियम

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

Name; required

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

deps

List of labels; optional

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

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

List of strings; optional

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

List of labels; optional

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

objc_import

objc_import(name, 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

Name; required

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

hdrs

List of labels; optional

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

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

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

Boolean; optional; default is False

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

List of labels; required

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

List of strings; optional

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

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

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

sdk_dylibs

List of strings; optional

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

List of strings; optional

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

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

sdk_includes

List of strings; optional

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

List of labels; optional

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

List of strings; optional

ऐसे 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, includes, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, runtime_deps, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

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

तर्क

विशेषताएं
name

Name; required

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

deps

List of labels; optional

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

List of labels; optional

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

List of labels; optional

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

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

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

Boolean; optional; default is False

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

List of strings; optional

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

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

defines

List of strings; optional

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

Boolean; optional; default is False

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

List of strings; optional

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

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

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

linkopts

List of strings; optional

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

Label; optional

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

String; optional

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

List of labels; optional

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

Label; optional

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

List of labels; optional

रनटाइम पर देर से लोड किए गए फ़्रेमवर्क टारगेट की सूची. वे इसमें शामिल हैं: लेकिन बिल्ड के समय साथ में लिंक नहीं किया गया हो.
sdk_dylibs

List of strings; optional

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

List of strings; optional

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

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

sdk_includes

List of strings; optional

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

List of labels; optional

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

List of strings; optional

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

available_xcodes

available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)

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

तर्क

विशेषताएं
name

Name; required

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

default

Label; required; nonconfigurable

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

List of labels; optional; nonconfigurable

इस प्लैटफ़ॉर्म पर उपलब्ध 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

Name; required

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

default

Label; optional; nonconfigurable

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

Label; optional; nonconfigurable

xcode_version targets that are available locally. These are used along with local_versions to select a mutually available version. This may not be set if versions is set.
remote_versions

Label; optional; nonconfigurable

xcode_version targets that are available remotely. These are used along with remote_versions to select a mutually available version. This may not be set if versions is set.
versions

List of labels; optional; nonconfigurable

xcode_version targets that may be used. If the value of the xcode_version build flag matches one of the aliases or version number of any of the given xcode_version targets, the matching target will be used. This may not be set if remote_versions or local_versions is set. को स्वीकार किया गया

xcode_version

xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)

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

तर्क

विशेषताएं
name

Name; required

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

default_ios_sdk_version

String; optional; nonconfigurable

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

String; optional; nonconfigurable

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

String; optional; nonconfigurable

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

String; optional; nonconfigurable

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

String; required; nonconfigurable

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