तारीख सेव करें: BazelCon 2023, 24 से 25 अक्टूबर तक Google म्यूनिख में होगा! रजिस्ट्रेशन अब शुरू हो गया है! ज़्यादा जानें

Apple

समस्या की शिकायत करें सोर्स देखें

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

पैसे चुकाकर बने सदस्य

Apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

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

पैरामीटर

पैरामीटर जानकारी
xcode_config ज़रूरी है
एक कंपनी, जिसमें xcode कॉन्फ़िगरेशन के बारे में जानकारी है.

ऐप्पल_टूलचेन

apple_toolchain apple_common.apple_toolchain()

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

AppleDebug आउटपुट

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]

डॉट किया गया वर्शन

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 प्लैटफ़ॉर्म को टारगेट करने वाली बाइनरी फ़ाइल (एक से ज़्यादा आर्किटेक्चर) डाउनलोड करें. इस तरीके में, Star_rk डोमेन के apple_binary नियम का बल्क में नियम बनाया गया है. साथ ही, Rules_apple में इसके लिंक करने के लॉजिक के माइग्रेशन में मदद की गई है.

इस एपीआई पर बहुत ज़्यादा प्रयोग किया जा रहा है. इसमें कभी भी बदलाव किया जा सकता है. इस समय इस फ़ंक्शन की स्थिरता पर निर्भर न रहें.

पैरामीटर

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

struct apple_common.link_multi_arch_static_library(ctx)

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

इस एपीआई पर बहुत ज़्यादा प्रयोग किया जा रहा है. इसमें कभी भी बदलाव किया जा सकता है. इस समय इस फ़ंक्शन की स्थिरता पर निर्भर न रहें.

पैरामीटर

पैरामीटर जानकारी
ज़रूरी है
Starlark के नियम का संदर्भ.

मल्टी_आर्प्ट_स्प्लिट

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 से इकट्ठा की गई आर्किटेक्चर.

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

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; or None: डिफ़ॉल्ट = कोई नहीं
डाइनैमिक फ़्रेमवर्क का dylib बाइनरी आर्टफ़ैक्ट.
cc_info डिफ़ॉल्ट = कोई नहीं
वह CCInfo जिसमें बाइनरी से जोड़ी गई ट्रांज़िटिव डिपेंडेंसी के बारे में जानकारी होती है.
objc डिफ़ॉल्ट = कोई नहीं
एक ObjcProvider, जिसमें बाइनरी से लिंक की गई ट्रांज़िटिव डिपेंडेंसी के बारे में जानकारी होती है.
framework_dirs depset of strings; or 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=None)

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

पैरामीटर

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

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

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

पैरामीटर

पैरामीटर जानकारी
kwargs डिफ़ॉल्ट = {}
आर्ग्युमेंट का डिक्शनरी.

ऑब्जेक्ट

Provider apple_common.Objc

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

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

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

platform

struct apple_common.platform

Enum की तरह की संरचना में, Apple प्लैटफ़ॉर्म से जुड़े ये फ़ील्ड शामिल हैं:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

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

प्लैटफ़ॉर्म_टाइप

struct apple_common.platform_type

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

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

उदाहरण:

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 प्लैटफ़ॉर्म.

Xcode प्रॉपर्टी

Provider apple_common.XcodeProperties

XcodeVersionProperties सेवा देने वाली कंपनी के लिए कंस्ट्रक्टर/बटन.

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

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

XcodeVersionConfig सेवा देने वाली कंपनी के लिए कंस्ट्रक्टर/बटन.