BazelCon 2022, 16 नवंबर से 17 नवंबर तक न्यूयॉर्क में और ऑनलाइन उपलब्ध है.
आज ही रजिस्टर करें!

मकसद-C नियम

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

नियम

j2objc_library

j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

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

पसंद के मुताबिक बनाए गए 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 एनोटेशन को जनरेट करने वाली या java_import टारगेट वाली srcjar फ़ाइलों से जनरेट की गई फ़ाइलों के लिए कोई सहायता उपलब्ध नहीं है.

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

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

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

entry_classes

List of strings; optional

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

List of labels; optional

इस j2objc_library नियम से अनुवाद किए गए सभी Java कोड के लिए, ज़रूरी JRE एम्युलेशन लाइब्रेरी की सूची. डिफ़ॉल्ट रूप से, सिर्फ़ मुख्य 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++ हेडर फ़ाइलों की सूची, निर्भर नियमों में स्रोतों से शामिल की जाएगी.

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

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

Boolean; optional; default is False

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

List of labels; required

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

List of strings; optional

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

पाथ को पैकेज डायरेक्ट्री के हिसाब से समझा जाता है और जेनरिक फ़ाइलों और बिन रूट (उदाहरण के लिए, blaze-genfiles/pkg/includedir और blaze-out/pkg/includedir) को असल क्लाइंट रूट के साथ शामिल किया जाता है.

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

sdk_dylibs

List of strings; optional

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

List of strings; optional

लिंक करने के लिए SDK फ़्रेमवर्क के नाम (उदाहरण के लिए, "AddressBook", "QuartzCore"). "UIKit" और "foundation" को हमेशा iOS, tvOS, और WatchOS प्लैटफ़ॉर्म के लिए बनाते समय शामिल किया जाता है. macOS के लिए, सिर्फ़ "foundation" हमेशा शामिल किया जाता है.

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

sdk_includes

List of strings; optional

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

List of labels; optional

C, C++, Objective-C, और Objective-C++ फ़ाइलों की सूची, जिन्हें इस नियम में या इस लाइब्रेरी के उपयोगकर्ताओं की मदद से, सोर्स फ़ाइलों में हेडर के तौर पर शामिल किया गया है. hr के उलट, इन्हें अलग-अलग सोर्स से कंपाइल नहीं किया जाएगा.
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)

यह नियम, ऑब्जेक्टिव-सी सोर्स फ़ाइलों से स्टैटिक लाइब्रेरी बनाता है.

तर्क

विशेषताएं
name

Name; required

इस टारगेट के लिए कोई खास नाम.

deps

List of labels; optional

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

List of labels; optional

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

List of labels; optional

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

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

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

Boolean; optional; default is False

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

List of strings; optional

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

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

defines

List of strings; optional

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

Boolean; optional; default is False

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

List of strings; optional

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

पाथ को पैकेज डायरेक्ट्री के हिसाब से समझा जाता है और जेनरिक फ़ाइलों और बिन रूट (उदाहरण के लिए, blaze-genfiles/pkg/includedir और blaze-out/pkg/includedir) को असल क्लाइंट रूट के साथ शामिल किया जाता है.

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

linkopts

List of strings; optional

लिंकर को पास करने के लिए अतिरिक्त फ़्लैग.
module_map

Label; optional

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

String; optional

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

List of labels; optional

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

Label; optional

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

List of labels; optional

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

List of strings; optional

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

List of strings; optional

लिंक करने के लिए SDK फ़्रेमवर्क के नाम (उदाहरण के लिए, "AddressBook", "QuartzCore"). "UIKit" और "foundation" को हमेशा iOS, tvOS, और WatchOS प्लैटफ़ॉर्म के लिए बनाते समय शामिल किया जाता है. macOS के लिए, सिर्फ़ "foundation" हमेशा शामिल किया जाता है.

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

sdk_includes

List of strings; optional

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

List of labels; optional

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

List of strings; optional

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

उपलब्ध_xcodes

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

इस नियम के दो टारगेट, xcode_config नियम वाले इंस्टेंस पर निर्भर हो सकते हैं. ये इंस्टेंस, रिमोट तरीके से और स्थानीय तौर पर उपलब्ध xcode वर्शन के बारे में बताते हैं. इससे, सभी ग्रुप के लिए उपलब्ध 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 के इस वर्शन का इस्तेमाल करने पर, xcode के इस वर्शन का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है. ios_sdk_version बिल्ड फ़्लैग, यहां बताई गई वैल्यू को बदल देगा.
default_macos_sdk_version

String; optional; nonconfigurable

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

String; optional; nonconfigurable

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

String; optional; nonconfigurable

CANNOT TRANSLATE watchos_sdk_version बिल्ड फ़्लैग, यहां बताई गई वैल्यू को बदल देगा.
version

String; required; nonconfigurable

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