नियम
objc_import
नियम का सोर्स देखेंobjc_import(name, deps, hdrs, alwayslink, archives, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, includes, package_metadata, 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_includes
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू #include/#import खोज पाथ की सूची. इसमें हर पाथ, #include/#import के हिसाब से होता है.$(SDKROOT)/usr/include
|
textual_hdrs
|
लेबल की सूची; डिफ़ॉल्ट वैल्यू |
weak_sdk_frameworks
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू |
objc_library
नियम का सोर्स देखेंobjc_library(name, deps, srcs, data, hdrs, alwayslink, aspect_hints, compatible_with, conlyopts, copts, cxxopts, defines, deprecation, enable_modules, exec_compatible_with, exec_group_compatible_with, exec_properties, features, implementation_deps, includes, linkopts, module_map, module_name, non_arc_srcs, package_metadata, 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 में दी गई फ़ाइलों के लिए सभी ऑब्जेक्ट फ़ाइलों में लिंक होगा. भले ही, कुछ में बाइनरी से रेफ़रंस किए गए कोई भी सिंबल मौजूद न हों.
यह तब काम आता है, जब आपके कोड को बाइनरी में कोड के ज़रिए साफ़ तौर पर कॉल नहीं किया जाता. उदाहरण के लिए, अगर आपका कोड किसी सेवा से मिले कॉलबैक को पाने के लिए रजिस्टर करता है.
|
conlyopts
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू ध्यान दें कि जनरेट किए गए Xcode प्रोजेक्ट के लिए, copts में "-I" फ़्लैग का इस्तेमाल करके तय किए गए डायरेक्ट्री पाथ को पार्स किया जाता है. अगर वे रिलेटिव पाथ हैं, तो उनके पहले "$(WORKSPACE_ROOT)/" जोड़ा जाता है. साथ ही, उन्हें Xcode के टारगेट से जुड़े हेडर सर्च पाथ में जोड़ा जाता है. |
copts
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू ध्यान दें कि जनरेट किए गए Xcode प्रोजेक्ट के लिए, copts में "-I" फ़्लैग का इस्तेमाल करके तय किए गए डायरेक्ट्री पाथ को पार्स किया जाता है. अगर वे रिलेटिव पाथ हैं, तो उनके पहले "$(WORKSPACE_ROOT)/" जोड़ा जाता है. साथ ही, उन्हें Xcode के टारगेट से जुड़े हेडर सर्च पाथ में जोड़ा जाता है. |
cxxopts
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू ध्यान दें कि जनरेट किए गए Xcode प्रोजेक्ट के लिए, copts में "-I" फ़्लैग का इस्तेमाल करके तय किए गए डायरेक्ट्री पाथ को पार्स किया जाता है. अगर वे रिलेटिव पाथ हैं, तो उनके पहले "$(WORKSPACE_ROOT)/" जोड़ा जाता है. साथ ही, उन्हें Xcode के टारगेट से जुड़े हेडर सर्च पाथ में जोड़ा जाता है. |
defines
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू -D फ़्लैग. ये KEY=VALUE या सिर्फ़ KEY के फ़ॉर्म में होने चाहिए. साथ ही, इन्हें इस टारगेट के कंपाइलर को (copts के तौर पर) ही नहीं, बल्कि इस टारगेट के सभी objc_ डिपेंडेंट को भी पास किया जाता है.
"वैरिएबल बनाएं" के हिसाब से बदलाव किया जा सकता है. साथ ही, बोर्न शेल टोकनाइज़ेशन के हिसाब से बदलाव किया जा सकता है.
|
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_includes
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू #include/#import खोज पाथ की सूची. इसमें हर पाथ, #include/#import के हिसाब से होता है.$(SDKROOT)/usr/include
|
stamp
|
बूलियन; डिफ़ॉल्ट वैल्यू |
textual_hdrs
|
लेबल की सूची; डिफ़ॉल्ट वैल्यू |
weak_sdk_frameworks
|
स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू |