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=[], extra_requested_features=[], extra_disabled_features=[], stamp=-1)

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

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

पैरामीटर

पैरामीटर ब्यौरा
ज़रूरी है
यह Starlark नियम का कॉन्टेक्स्ट है.
sequence of Targets; या None; डिफ़ॉल्ट रूप से None
होता है Target की ऐसी सूची जो बाइनरी के डिपेंडेंसी ग्राफ़ में मौजूद हैं, लेकिन जिनकी लाइब्रेरी को बाइनरी में लिंक नहीं किया जाना चाहिए. यह उन डिपेंडेंसी के लिए है जो रनटाइम में किसी दूसरी इमेज में मिलेंगी. जैसे, बंडल लोडर या कोई भी डाइनैमिक लाइब्रेरी/फ़्रेमवर्क जिसे यह बाइनरी लोड करेगी.
स्ट्रिंग का क्रम; डिफ़ॉल्ट वैल्यू []
है लिंकर ऐक्शन को पास किए जाने वाले अतिरिक्त लिंक विकल्प.
Files का sequence; डिफ़ॉल्ट वैल्यू []
है लिंकर ऐक्शन को पास करने के लिए अतिरिक्त फ़ाइलें.
स्ट्रिंग का क्रम; डिफ़ॉल्ट वैल्यू []
है लिंकर ऐक्शन को पास की जाने वाली अतिरिक्त सुविधाएं.
स्ट्रिंग का क्रम; डिफ़ॉल्ट वैल्यू []
है लिंकर ऐक्शन को पास की जाने वाली, बंद की गई अतिरिक्त सुविधाएं.
डिफ़ॉल्ट वैल्यू -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 नियम का कॉन्टेक्स्ट है.

new_dynamic_framework_provider

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

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

पैरामीटर

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

new_executable_binary_provider

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

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

पैरामीटर

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

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

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

पैरामीटर

पैरामीटर ब्यौरा
kwargs डिफ़ॉल्ट रूप से {}
होता है आर्ग्युमेंट की डिक्शनरी.

Objc

Provider apple_common.Objc

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

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

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

प्लैटफ़ॉर्म

struct apple_common.platform

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

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

platform_type

struct apple_common.platform_type

यह enum की तरह का स्ट्रक्चर है. इसमें Apple प्लैटफ़ॉर्म टाइप से जुड़े ये फ़ील्ड शामिल होते हैं:
  • ios
  • macos
  • tvos
  • visionos
  • 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 प्लैटफ़ॉर्म टाइप के टारगेट बनाती हैं. उदाहरण के लिए, इस डिक्शनरी में ऐसे वैरिएबल शामिल हैं जो प्लैटफ़ॉर्म का नाम और एसडीके का वर्शन दिखाते हैं. कुंजियां, वैरिएबल के नाम हैं और वैल्यू, उनकी वैल्यू हैं.

पैरामीटर

पैरामीटर ब्यौरा
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 सेवा देने वाली कंपनी के लिए कंस्ट्रक्टर/कुंजी.