नियम
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 रूट (जैसे, COPTS के उलट, ये फ़्लैग इस नियम और उस पर निर्भर हर नियम के लिए जोड़े जाते हैं. (ध्यान दें: उन नियमों के बारे में नहीं जिन पर यह निर्भर करता है!) बहुत सावधान रहें, क्योंकि इसकी वजह से काफ़ी नुकसान हो सकता है. अगर आपको कोई संदेह है, तो COPTS में "-iquote" फ़्लैग जोड़ें. |
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_ को भी पास किया जाता है.copts
"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
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से |