नियम
objc_import
नियम का सोर्स देखेंobjc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
यह नियम पहले से कंपाइल की गई स्टैटिक लाइब्रेरी को
.a
फ़ाइल. यह
objc_library
के साथ काम करने वाले एट्रिब्यूट.
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
deps
|
लेबल की सूची; डिफ़ॉल्ट |
hdrs
|
लेबल की सूची; डिफ़ॉल्ट रूप से इन हेडर से लाइब्रेरी के सार्वजनिक इंटरफ़ेस के बारे में पता चलता है. साथ ही, इन्हें इस नियम या इससे जुड़े नियमों में सोर्स के लिए शामिल करने के लिए उपलब्ध कराया जाएगा. इस लाइब्रेरी के क्लाइंट को हेडर शामिल नहीं करने चाहिए को srcs एट्रिब्यूट में लिस्ट किया जाना चाहिए. अगर मॉड्यूल चालू हैं, तो इन्हें सोर्स से अलग से कंपाइल किया जाएगा. |
alwayslink
|
बूलियन; srcs और non_arc_srcs , भले ही कुछ में नहीं
बाइनरी से रेफ़रंस वाले सिंबल.
यह तब काम आता है, जब बाइनरी में कोड से आपके कोड को साफ़ तौर पर कॉल नहीं किया जाता. उदाहरण के लिए, अगर आपका कोड किसी सेवा से मिलने वाला कॉलबैक पाने के लिए रजिस्टर करता है.
|
archives
|
लेबल की सूची; आवश्यक Objective-C टारगेट को दी गई.a फ़ाइलों की सूची
इस टारगेट पर निर्भर रहती हैं.
|
includes
|
स्ट्रिंग की सूची; #include/#import खोज पाथ की सूची
टारगेट के हिसाब से ये सभी काम करते हैं.
यह सुविधा, तीसरे पक्ष और ओपन सोर्स वाली उन लाइब्रेरी के साथ काम करती है जो अपने #import/#include स्टेटमेंट में, वर्कस्पेस का पूरा पाथ नहीं बताती हैं.
पाथ की व्याख्या पैकेज डायरेक्ट्री के हिसाब से की जाती है और
genfiles और bin रूट (उदाहरण के लिए, COPS के उलट, इस नियम के लिए ये फ़्लैग जोड़े जाते हैं और इस पर निर्भर सभी नियमों के लिए बनाया गया है. (ध्यान दें: उन नियमों के बारे में नहीं जिन पर यह निर्भर करता है!) बहुत सावधान रहें, क्योंकि इसकी वजह से कई चीज़ों पर असर पड़ सकता है. संदेह होने पर, जोड़ें "-आईकोट" फ़्लैग के बजाय COPTS पर फ़्लैग कर सकते हैं. |
sdk_dylibs
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से |
sdk_frameworks
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से किसी टॉप लेवल Apple बाइनरी को लिंक करते समय, उस बाइनरी के ट्रांज़िटिव डिपेंडेंसी ग्राफ़ में मौजूद सभी SDK टूल के फ़्रेमवर्क लिंक हो जाते हैं. |
sdk_includes
|
स्ट्रिंग की सूची; #include/#import खोज पाथ की सूची. इसमें हर पाथ, $(SDKROOT)/usr/include से जुड़ा होता है.
|
textual_hdrs
|
लेबल की सूची; डिफ़ॉल्ट |
weak_sdk_frameworks
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से |
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, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
यह नियम, दी गई Objective-C सोर्स फ़ाइलों से स्टैटिक लाइब्रेरी बनाता है.
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
deps
|
लेबल की सूची; डिफ़ॉल्ट |
srcs
|
लेबल की सूची; डिफ़ॉल्ट रूप से |
hdrs
|
लेबल की सूची; डिफ़ॉल्ट इन हेडर से लाइब्रेरी के सार्वजनिक इंटरफ़ेस के बारे में पता चलता है. साथ ही, इन्हें इस नियम या इससे जुड़े नियमों में सोर्स के लिए शामिल करने के लिए उपलब्ध कराया जाएगा. इस लाइब्रेरी के क्लाइंट को हेडर शामिल नहीं करने चाहिए को srcs एट्रिब्यूट में लिस्ट किया जाना चाहिए. अगर मॉड्यूल चालू हैं, तो इन्हें सोर्स से अलग से कंपाइल किया जाएगा. |
alwayslink
|
बूलियन; srcs और non_arc_srcs , भले ही कुछ में नहीं
बाइनरी से रेफ़रंस वाले सिंबल.
यह तब काम आता है, जब बाइनरी में कोड से आपके कोड को साफ़ तौर पर कॉल नहीं किया जाता. उदाहरण के लिए, अगर आपका कोड किसी सेवा से मिलने वाला कॉलबैक पाने के लिए रजिस्टर करता है.
|
copts
|
स्ट्रिंग की सूची; ध्यान दें कि जनरेट किए गए Xcode प्रोजेक्ट के लिए, copts में "-I" फ़्लैग का इस्तेमाल करके बताए गए डायरेक्ट्री पाथ को पार्स किया जाता है. अगर ये रिलेटिव पाथ हैं, तो "$(WORKSPACE_ROOT)/" से पहले जोड़े जाते हैं और इससे जुड़े Xcode टारगेट के हेडर सर्च पाथ में जोड़े जाते हैं. |
defines
|
स्ट्रिंग की सूची; -D फ़्लैग. ये KEY=VALUE या सिर्फ़ KEY फ़ॉर्म में होने चाहिए. साथ ही, इन्हें सिर्फ़ इस टारगेट के लिए कंपाइलर को ही नहीं, बल्कि इस टारगेट पर निर्भर सभी objc_ को भी पास किया जाता है.
"Make variable" के बदले और Bourne shell टोकनाइज़ेशन के हिसाब से.
|
enable_modules
|
बूलियन; |
implementation_deps
|
लेबल की सूची; डिफ़ॉल्ट deps , हेडर और इन लाइब्रेरी के पाथ (और उनके सभी
ट्रांज़िटिव डिप) का इस्तेमाल सिर्फ़ इस लाइब्रेरी को कंपाइल करने के लिए किया जाता है, न कि उन लाइब्रेरी के लिए जिन्हें
निर्भर है. implementation_deps के साथ तय की गई लाइब्रेरी अब भी लिंक हैं
जो इस लाइब्रेरी पर निर्भर बाइनरी टारगेट में हैं.
|
includes
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से #include/#import खोज पाथ की सूची
टारगेट के हिसाब से ये सभी काम करते हैं.
यह सुविधा, तीसरे पक्ष और ओपन सोर्स वाली उन लाइब्रेरी के साथ काम करती है जो अपने #import/#include स्टेटमेंट में, वर्कस्पेस का पूरा पाथ नहीं बताती हैं.
पाथ की व्याख्या पैकेज डायरेक्ट्री के हिसाब से की जाती है और
genfiles और bin रूट (उदाहरण के लिए, COPTS के उलट, ये फ़्लैग इस नियम और उस पर निर्भर हर नियम के लिए जोड़े जाते हैं. (ध्यान दें: वे नियम नहीं हैं जिन पर यह निर्भर करता है!) बहुत सावधान रहें, क्योंकि इसकी वजह से कई चीज़ों पर असर पड़ सकता है. अगर आपको कोई संदेह है, तो COPTS में "-iquote" फ़्लैग जोड़ें. |
linkopts
|
स्ट्रिंग की सूची; |
module_map
|
लेबल; डिफ़ॉल्ट |
module_name
|
स्ट्रिंग; डिफ़ॉल्ट रूप से |
non_arc_srcs
|
लेबल की सूची; डिफ़ॉल्ट |
pch
|
लेबल; डिफ़ॉल्ट |
sdk_dylibs
|
स्ट्रिंग की सूची; |
sdk_frameworks
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से किसी टॉप लेवल Apple बाइनरी को लिंक करते समय, उस बाइनरी के ट्रांज़िटिव डिपेंडेंसी ग्राफ़ में मौजूद सभी SDK टूल के फ़्रेमवर्क लिंक हो जाते हैं. |
sdk_includes
|
स्ट्रिंग की सूची; #include/#import खोज पाथ की सूची
और ये सभी टारगेट पर निर्भर करते हैं, जहां हर पाथ
$(SDKROOT)/usr/include .
|
stamp
|
बूलियन; |
textual_hdrs
|
लेबल की सूची; डिफ़ॉल्ट |
weak_sdk_frameworks
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से |