ध्यान दें: यह सेक्शन, Bagel डेवलपर के लिए है. इसकी ज़रूरत नहीं है, क्योंकि नियम लेखक.
कई SkyFunction क्लास टूलचेन रिज़ॉल्यूशन प्रोसेस को लागू करती हैं:
RegisteredToolchainsFunction
औरRegisteredExecutionPlatformsFunction
मौजूदा समय के हिसाब से, उपलब्ध टूलचेन और एक्ज़ीक्यूशन प्लैटफ़ॉर्म खोजें .SingleToolchainResolutionFunction
हर एक्ज़ीक्यूशन प्लैटफ़ॉर्म के लिए एक ही टूलचेन टाइप को रिज़ॉल्व करता है. इसका मतलब है कि यह हर उस प्लैटफ़ॉर्म के लिए है जो रजिस्टर किए गए सबसे अच्छे टूलचेन को ये वीडियो कैसे बनाए जाते हैं:- इसकी जांच करके, पक्का करें कि टूलचेन और टारगेट प्लैटफ़ॉर्म साथ काम करते हों
target_compatible_with
एट्रिब्यूट. - पक्का करें कि टूलचेन और एक्ज़ीक्यूशन प्लैटफ़ॉर्म एक-दूसरे के साथ काम करते हों.
exec_compatible_with
एट्रिब्यूट की जांच की जा रही है. - अगर कई टूलचेन बचे हैं, तो सबसे ज़्यादा प्राथमिकता वाला वह टूल चुनें ( जिसे पहले रजिस्टर किया गया था).
- इसकी जांच करके, पक्का करें कि टूलचेन और टारगेट प्लैटफ़ॉर्म साथ काम करते हों
ToolchainResolutionFunction
कॉल अनुरोध किए गए हर टूलचेन टाइप के लिएSingleToolchainResolutionFunction
, और इसके बाद, इस्तेमाल करने के लिए सबसे सही प्लैटफ़ॉर्म तय करता है.- सबसे पहले, ऐसे एक्ज़ीक्यूशन प्लैटफ़ॉर्म को हटाएं जो अनुरोध किए गए हर टूलचेन टाइप के लिए टूलचेन.
- अगर कई एक्ज़ीक्यूशन प्लैटफ़ॉर्म छोड़ दिए जाते हैं, तो सबसे ज़्यादा प्राथमिकता वाला विकल्प चुनें
पहला (जिसे पहले रजिस्टर किया गया था).
- अगर एक्ज़ीक्यूशन प्लैटफ़ॉर्म पहले से ही टूलचेन के ज़रिए सेट किया गया हो ट्रांज़िशन है, तो नीचे बताए गए तरीके से इसे पहले चुना जाएगा.
जैसा कि टूलचेन और कॉन्फ़िगरेशन में बताया गया है,
टारगेट से टूलचेन पर निर्भरता एक खास कॉन्फ़िगरेशन का इस्तेमाल करती है, जो
दोनों के लिए, एक्ज़ीक्यूशन प्लैटफ़ॉर्म को एक जैसा बनाता है. नाम के बावजूद
"टूलचेन ट्रांज़िशन". इसे कॉन्फ़िगरेशन के तौर पर लागू नहीं किया जाता
लेकिन एक खास सब-क्लास के रूप में
ConfiguredTargetKey
, कॉल किया गया
ToolchainDependencyConfiguredTargetKey
.
ConfiguredTargetKey
के अन्य डेटा के अलावा, इस सब-क्लास में भी
एक्ज़ीक्यूशन प्लैटफ़ॉर्म का लेबल. जब ToolchainResolutionFunction
होता है
यह देखते हुए कि फ़ोर्स किए गए एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल किया जाए या नहीं,
ToolchainDependencyConfiguredTargetKey
में से मान्य है, तो इसका उपयोग यहां तक किया जाएगा
अगर यह सबसे ज़्यादा प्राथमिकता नहीं है.
ध्यान दें: अगर फ़ोर्स्ड एक्ज़ीक्यूशन प्लैटफ़ॉर्म मान्य नहीं है (ऐसा इसलिए, क्योंकि मान्य टूलचेन या नियम या टारगेट की एक्ज़ीक्यूशन की सीमाओं की वजह से हो सकता है), तो इसके बजाय, सबसे ज़्यादा प्राथमिकता वाले मान्य एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल किया जाएगा.