BazelCon 2022, 16 नवंबर से 17 नवंबर तक न्यूयॉर्क में और ऑनलाइन उपलब्ध है.
आज ही रजिस्टर करें!

apple_common

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
Apple के नियम लागू करने के तरीके को ऐक्सेस करने के लिए Starlark के फ़ंक्शन.

सदस्य

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

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

पैरामीटर

पैरामीटर विवरण
xcode_config ज़रूरी है
xcode कॉन्फ़िगरेशन के बारे में जानकारी देने वाली कंपनी.

Apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Apple के टूल से, आइटम हल करने के लिए इस्तेमाल होने वाली सुविधाएं.

AppleDebug आउटपुट

Provider apple_common.AppleDebugOutputs

AppleDebugOutputs सेवा के लिए कंस्ट्रक्टर/कुंजी.

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

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

Appleडाइनैमिक फ़्रेमवर्क

Provider apple_common.AppleDynamicFramework

AppleDynamicFramework सेवा के लिए कंस्ट्रक्टर/कुंजी.

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

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

Apple एक्ज़ीक्यूटेबल बाइनरी

Provider apple_common.AppleExecutableBinary

AppleExecutableBinary सेवा के लिए कंस्ट्रक्टर/कुंजी.

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

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

AppleStaticलाइब्रेरी

Provider apple_common.AppleStaticLibrary

AppleStaticLibrary सेवा के लिए कंस्ट्रक्टर/कुंजी.

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

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

डॉट वाला वर्शन

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 प्लैटफ़ॉर्म को टारगेट करने वाला बाइनरी (एक से ज़्यादा आर्किटेक्चर वाला) बाइनरी लिंक. इस तरीके में Starlark के लॉजिक का ज़्यादातर हिस्सा शामिल हैapple_binary नियम_Apple डोमेन के नियम में मौजूद है और नियम_apple में लिंक करने वाले लॉजिक को Starlark पर माइग्रेट करने में मदद करता है.

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

पैरामीटर

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

struct apple_common.link_multi_arch_static_library(ctx)

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

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

पैरामीटर

पैरामीटर विवरण
ज़रूरी है
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 से इकट्ठा की गई आर्किटेक्चर.

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

new_dynamic_framework_provider

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

Appleडाइनैमिकफ़्रेमवर्क देने वाला नया इंस्टेंस बनाता है.

पैरामीटर

पैरामीटर विवरण
binary File; or None; डिफ़ॉल्ट = कोई नहीं
डाइनैमिक फ़्रेमवर्क का dylib बाइनरी आर्टफ़ैक्ट.
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, objc)

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

पैरामीटर

पैरामीटर विवरण
binary File; or None; डिफ़ॉल्ट = कोई नहीं
एक्ज़ीक्यूटेबल की बाइनरी आर्टफ़ैक्ट.
objc ज़रूरी है
एक 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
  • watchos_device
  • watchos_simulator

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

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

struct apple_common.platform_type

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

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

उदाहरण:

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 सेवा के लिए कंस्ट्रक्टर/कुंजी.