Apple_सामान्य

Starlark के लिए फ़ंक्शन, ताकि Apple के नियमों को लागू करने के अंदरूनी हिस्सों को ऐक्सेस किया जा सके.

सदस्य

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

यह एनवायरमेंट वैरिएबल का dict दिखाता है. इसे उन कार्रवाइयों के लिए सेट किया जाना चाहिए जिन्हें Apple होस्ट सिस्टम पर बिल्ड टूल चलाने की ज़रूरत होती है. जैसे, Xcode का इस्तेमाल किया जाने वाला वर्शन. कुंजियां वेरिएबल के नाम होती हैं और वैल्यू, वेरिएबल की वैल्यू होती हैं.

पैरामीटर

पैरामीटर ब्यौरा
xcode_config ज़रूरी है
यह एक ऐसी कंपनी है जिसमें Xcode कॉन्फ़िगरेशन की जानकारी होती है.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Apple टूलचेन से आइटम हल करने के लिए उपयोगी टूल.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

AppleDebugOutputs की सेवा देने वाली कंपनी का कंस्ट्रक्टर/कुंजी.

अगर कोई टारगेट, AppleDebugOutputs की सेवा देने वाली कंपनी को प्रॉपेगेट करता है, तो इसे उस कुंजी के तौर पर इस्तेमाल करें जिससे इसे वापस पाया जा सके. उदाहरण:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleDebugOutputs]

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

AppleDynamicFramework की सेवा देने वाली कंपनी का कंस्ट्रक्टर/कुंजी.

अगर कोई टारगेट, AppleDynamicFramework की सेवा देने वाली कंपनी को प्रॉपेगेट करता है, तो इसे उस कुंजी के तौर पर इस्तेमाल करें जिससे इसे वापस पाया जा सके. उदाहरण:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleDynamicFramework]

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

AppleExecutableBinary की सेवा देने वाली कंपनी का कंस्ट्रक्टर/कुंजी.

अगर कोई टारगेट, AppleExecutableBinary की सेवा देने वाली कंपनी को प्रॉपेगेट करता है, तो इसे उस कुंजी के तौर पर इस्तेमाल करें जिससे इसे वापस पाया जा सके. उदाहरण:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleExecutableBinary]

dotted_version

DottedVersion apple_common.dotted_version(version)

नया DottedVersion इंस्टेंस बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
version ज़रूरी है
DottedVersion की स्ट्रिंग के तौर पर.

struct apple_common.link_multi_arch_binary(ctx, avoid_deps=None, extra_linkopts=[], extra_link_inputs=[], stamp=-1)

Apple के प्लैटफ़ॉर्म को टारगेट करने वाले बाइनरी को लिंक करता है. यह बाइनरी, कई आर्किटेक्चर में हो सकती है. इस तरीके में, rules_apple डोमेन में Starlark apple_binary नियम का ज़्यादातर लॉजिक शामिल होता है. यह rules_apple में, लिंकिंग लॉजिक को Starlark में माइग्रेट करने में मदद करने के लिए मौजूद है.

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

पैरामीटर

पैरामीटर ब्यौरा
ज़रूरी है
Starlark नियम का कॉन्टेक्स्ट.
sequence of Targets; or None; डिफ़ॉल्ट = None
उन Target की सूची जो बाइनरी के डिपेंडेंसी ग्राफ़ में हैं, लेकिन जिनकी लाइब्रेरी को बाइनरी से लिंक नहीं किया जाना चाहिए. ऐसा उन डिपेंडेंसी के लिए होता है जो किसी दूसरी इमेज में रनटाइम के दौरान मिलती हैं. जैसे, बंडल लोडर या ऐसी कोई डाइनैमिक लाइब्रेरी/फ़्रेमवर्क जो इस बाइनरी से लोड की जाएगी.
sequence of strings; default = []
लिंकर ऐक्शन को पास किए जाने वाले अतिरिक्त लिंकऑप्ट.
sequence of Files; default = []
लिंकर ऐक्शन को पास करने के लिए अतिरिक्त फ़ाइलें.
डिफ़ॉल्ट = -1
लिंक की गई बाइनरी में बिल्ड की जानकारी शामिल करनी है या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर 0 है, तो बिल्ड की जानकारी हमेशा बाहर रखी जाती है. अगर -1 (डिफ़ॉल्ट) है, तो --[no]stamp फ़्लैग से व्यवहार तय होता है. टेस्ट नियमों के लिए, लागू किए जा सकने वाले आउटपुट जनरेट करते समय, इसे 0 पर सेट किया जाना चाहिए.

struct apple_common.link_multi_arch_static_library(ctx)

Apple प्लैटफ़ॉर्म को टारगेट करने वाली, संभावित तौर पर कई आर्किटेक्चर वाली स्टैटिक लाइब्रेरी को लिंक करता है. इस तरीके में, rules_apple डोमेन में Starlark apple_static_library नियम लॉजिक का एक हिस्सा शामिल होता है. यह rules_apple में, लिंकिंग लॉजिक को Starlark पर माइग्रेट करने में मदद करने के लिए मौजूद है.

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

पैरामीटर

पैरामीटर ब्यौरा
ज़रूरी है
Starlark नियम का कॉन्टेक्स्ट.

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

एक या एक से ज़्यादा Apple प्लैटफ़ॉर्म में डिपेंडेंसी बनाने के लिए, नियम एट्रिब्यूट के लिए कॉन्फ़िगरेशन ट्रांज़िशन.

इस ट्रांज़िशन का इस्तेमाल करने के लिए, 'platform_type' और 'minimum_os_version' स्ट्रिंग एट्रिब्यूट की वैल्यू तय होनी चाहिए. साथ ही, ये एट्रिब्यूट नियम के लिए ज़रूरी हैं.

platform_type एट्रिब्यूट की वैल्यू से, टारगेट आर्किटेक्चर तय होंगे. इन आर्किटेक्चर के लिए, इस कॉन्फ़िगरेशन ट्रांज़िशन के साथ डिपेंडेंसी बनाई जाएंगी.

इसके विकल्प:

  • ios: --ios_multi_cpus से इकट्ठा किए गए आर्किटेक्चर.
  • macos: --macos_cpus से इकट्ठा किए गए आर्किटेक्चर.
  • tvos: --tvos_cpus से इकट्ठा किए गए आर्किटेक्चर.
  • watchos: --watchos_cpus से इकट्ठा किए गए आर्किटेक्चर.

minimum_os_version, बिंदु वाली वर्शन स्ट्रिंग होनी चाहिए, जैसे कि '7.3'. इसका इस्तेमाल, प्लैटफ़ॉर्म टाइप के आधार पर कॉन्फ़िगरेशन पर, ऑपरेटिंग सिस्टम का कम से कम वर्शन सेट करने के लिए किया जाता है. उदाहरण के लिए, platform_type 'ios' और minimum_os_version '8.0' की वैल्यू सबमिट करने से यह पक्का होगा कि डिपेंडेंसी, iOS के कम से कम '8.0' वर्शन के साथ काम करेंगी.

new_dynamic_framework_provider

AppleDynamicFramework apple_common.new_dynamic_framework_provider(binary=None, cc_info=None, objc, framework_dirs=None, framework_files=None)

AppleDynamicFramework प्रोवाइडर का नया इंस्टेंस बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
binary File; or None; डिफ़ॉल्ट = None
डाइनैमिक फ़्रेमवर्क का dylib बाइनरी आर्टफ़ैक्ट.
cc_info डिफ़ॉल्ट = None
एक CcInfo, जिसमें बाइनरी से जुड़ी ट्रांज़िशन डिपेंडेंसी की जानकारी होती है.
objc ज़रूरी है
एक ObjcProvider, जिसमें बाइनरी से लिंक की गई ट्रांज़िशन डिपेंडेंसी के बारे में जानकारी होती है.
framework_dirs depset of strings; or None; default = None
डाइनैमिक फ़्रेमवर्क से लिंक करने के लिए, लिंक इनपुट के तौर पर इस्तेमाल किए जाने वाले फ़्रेमवर्क पाथ के नाम.
framework_files depset of Files; or None; डिफ़ॉल्ट = कोई नहीं
ऐसे आर्टफ़ैक्ट का पूरा सेट जिन्हें डाइनैमिक फ़्रेमवर्क से लिंक करने के लिए, इनपुट के तौर पर शामिल किया जाना चाहिए

new_executable_binary_provider

AppleExecutableBinary apple_common.new_executable_binary_provider(binary=None, cc_info=None, objc)

AppleExecutableBinaryInfo प्रोवाइडर का नया इंस्टेंस बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
binary File; or None; डिफ़ॉल्ट = कोई नहीं
एक्ज़ीक्यूटेबल का बाइनरी आर्टफ़ैक्ट.
cc_info डिफ़ॉल्ट = None
एक CcInfo, जिसमें बाइनरी से जुड़ी ट्रांज़िशन डिपेंडेंसी की जानकारी होती है.
objc ज़रूरी है
एक ObjcProvider, जिसमें बाइनरी से लिंक की गई ट्रांज़िशन डिपेंडेंसी के बारे में जानकारी होती है.

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

नया ObjcProvider इंस्टेंस बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
kwargs default = {}
आर्ग्युमेंट की डिक्शनरी.

Objc

Provider apple_common.Objc

Objc की सेवा देने वाली कंपनी का कंस्ट्रक्टर/कुंजी.

अगर कोई टारगेट, Objc की सेवा देने वाली कंपनी को प्रॉपेगेट करता है, तो इसे उस कुंजी के तौर पर इस्तेमाल करें जिससे इसे वापस पाया जा सके. उदाहरण:

dep = ctx.attr.deps[0]
p = dep[apple_common.Objc]

प्लैटफ़ॉर्म

struct apple_common.platform

यह एक ऐसा स्ट्रक्चर है जो एनम की तरह होता है. इसमें Apple प्लैटफ़ॉर्म से जुड़े ये फ़ील्ड होते हैं:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

इन वैल्यू को उन तरीकों में पास किया जा सकता है जिनमें किसी प्लैटफ़ॉर्म की ज़रूरत होती है, जैसे कि XcodeVersionConfig.sdk_version_for_platform.

platform_type

struct apple_common.platform_type

यह एक ऐसा स्ट्रक्चर है जो एनम की तरह होता है. इसमें Apple प्लैटफ़ॉर्म टाइप से जुड़े ये फ़ील्ड होते हैं:
  • ios
  • macos
  • tvos
  • watchos

इन वैल्यू को उन तरीकों में पास किया जा सकता है जिनमें प्लैटफ़ॉर्म टाइप की ज़रूरत होती है. जैसे, 'apple' कॉन्फ़िगरेशन फ़्रैगमेंट का multi_arch_platform तरीका.

उदाहरण:

ctx.fragments.apple.multi_arch_platform(apple_common.platform_type.ios)

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

यह ऐसे एनवायरमेंट वैरिएबल का dict दिखाता है जिन्हें उन ऐक्शन के लिए सेट किया जाना चाहिए जो दिए गए Apple प्लैटफ़ॉर्म टाइप के टारगेट बनाते हैं. उदाहरण के लिए, इस डिक्शनरी में ऐसे वैरिएबल होते हैं जो प्लैटफ़ॉर्म का नाम और SDK टूल के उस वर्शन की जानकारी देते हैं जिसका इस्तेमाल करके ऐप्लिकेशन बनाया जाना है. कुंजियां वेरिएबल के नाम होती हैं और वैल्यू उनकी संबंधित वैल्यू होती हैं.

पैरामीटर

पैरामीटर ब्यौरा
xcode_config ज़रूरी है
यह एक ऐसी कंपनी है जिसमें Xcode कॉन्फ़िगरेशन की जानकारी होती है.
platform ज़रूरी है
Apple प्लैटफ़ॉर्म.

XcodeProperties

Provider apple_common.XcodeProperties

XcodeVersionProperties की सेवा देने वाली कंपनी का कंस्ट्रक्टर/कुंजी.

अगर कोई टारगेट, XcodeVersionProperties की सेवा देने वाली कंपनी को प्रॉपेगेट करता है, तो इसे उस कुंजी के तौर पर इस्तेमाल करें जिससे इसे वापस पाया जा सके. उदाहरण:

dep = ctx.attr.deps[0]
p = dep[apple_common.XcodeVersionProperties]

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

XcodeVersionConfig की सेवा देने वाली कंपनी का कंस्ट्रक्टर/कुंजी.