cc_common

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है C++ कंपाइलेशन, लिंक करने, और कमांड लाइन बनाने में मदद करने वाली सुविधाएं.

सदस्य

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

अगर सुविधा के कॉन्फ़िगरेशन में, दी गई action_config को चालू किया गया है, तो 'सही' दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
Action_config का नाम.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

इस पासकोड का इस्तेमाल, सेवा देने वाली कंपनी को वापस पाने के लिए किया जाता है. इसमें C++ टूलचेन के बारे में जानकारी होती है

कंपाइल करें

tuple cc_common.compile(actions, feature_configuration, cc_toolchain, srcs=[], public_hdrs=[], private_hdrs=[], includes=[], quote_includes=[], system_includes=[], framework_includes=[], defines=[], local_defines=[], include_prefix='', strip_include_prefix='', user_compile_flags=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[], grep_includes=None)

इसका इस्तेमाल C++ कंपाइलेशन के लिए किया जाना चाहिए. (CompilationContext, CcCompilationOutputs) का टपल दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
actions ज़रूरी है
actions ऑब्जेक्ट.
feature_configuration ज़रूरी है
क्वेरी के लिए feature_configuration.
cc_toolchain ज़रूरी है
CcToolchainInfo प्रोवाइडर का इस्तेमाल किया जाएगा.
srcs डिफ़ॉल्ट = []
कंपाइल की जाने वाली सोर्स फ़ाइलों की सूची.
public_hdrs डिफ़ॉल्ट = []
सोर्स के कंपाइलेशन के लिए ज़रूरी हेडर की सूची. इसे ट्रांज़िट पर निर्भर नियमों के तहत शामिल किया जा सकता है.
private_hdrs डिफ़ॉल्ट = []
हेडर की सूची, जो सोर्स को इकट्ठा करने के लिए ज़रूरी है और डिपेंडेंट नियमों में शामिल नहीं है.
includes डिफ़ॉल्ट = []
ऐंगल ब्रैकेट और कोटेशन, दोनों से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ. आम तौर पर -I के साथ पास किया जाता है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
quote_includes डिफ़ॉल्ट = []
कोटेशन के ज़रिए बताई गई हेडर फ़ाइलों के लिए खोज पाथ, उदाहरण के लिए #include "foo/bar/header.h". वे exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर, इसे -iकोट के साथ पास किया जाता है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
system_includes डिफ़ॉल्ट = []
ऐंगल ब्रैकेट से जुड़ी हेडर फ़ाइलों के लिए खोज पाथ, उदाहरण के लिए #include <foo/bar/header.h>. वे exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर, इसे -isystem के साथ पास किया जाता है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
framework_includes डिफ़ॉल्ट = []
Apple फ़्रेमवर्क से हेडर फ़ाइलों के लिए पाथ खोजें. वे exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर -F के साथ पास किया जाता है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
defines डिफ़ॉल्ट = []
इस टारगेट को इकट्ठा करने के लिए, तय की गई वैल्यू का सेट. हर परिभाषा एक स्ट्रिंग होती है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
local_defines डिफ़ॉल्ट = []
इस टारगेट को इकट्ठा करने के लिए, तय की गई वैल्यू का सेट. हर परिभाषा एक स्ट्रिंग होती है. डिपेंडेंट लोगों को ट्रांज़िशन के तौर पर नहीं भेजा जाता.
include_prefix डिफ़ॉल्ट = ''
इस नियम के हेडर के पाथ में जोड़ा जाने वाला प्रीफ़िक्स. सेट होने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को ऐक्सेस किया जा सकता है. इस एट्रिब्यूट की वैल्यू, रिपॉज़िटरी-रिलेटिव पाथ से पहले की वैल्यू होती है. इस प्रीफ़िक्स को जोड़ने से पहले,trip_include_prefix एट्रिब्यूट में मौजूद प्रीफ़िक्स हटा दिया जाएगा.
strip_include_prefix डिफ़ॉल्ट = ''
इस नियम के हेडर के पाथ से स्ट्रिप किया जाने वाला प्रीफ़िक्स. अगर यह नीति सेट की जाती है, तो इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को अपने पाथ से ऐक्सेस किया जा सकता है. ऐसा, इस प्रीफ़िक्स को काटने के बाद किया जा सकता है. अगर यह रिलेटिव पाथ है, तो इसे पैकेज के हिसाब से लिया जाता है. अगर यह सटीक है, तो इसे रिपॉज़िटरी-रिलेटिव पाथ माना जाता है. इस प्रीफ़िक्स को हटाने के बाद, include_prefix एट्रिब्यूट में प्रीफ़िक्स जोड़ा जाएगा.
user_compile_flags डिफ़ॉल्ट = []
कंपाइलेशन के विकल्पों की अतिरिक्त सूची.
compilation_contexts डिफ़ॉल्ट = []
कंपाइलेशन के लिए इस्तेमाल की जाने वाली डिपेंडेंसी से हेडर.
name ज़रूरी है
इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट को नाम देने के लिए किया जाता है. `main_Output` आर्ग्युमेंट भी देखें.
disallow_pic_outputs डिफ़ॉल्ट = गलत
पीआईसी आउटपुट बनाया जाना चाहिए या नहीं.
disallow_nopic_outputs डिफ़ॉल्ट = गलत
क्या NOPIC आउटपुट बनाए जाने चाहिए.
additional_inputs डिफ़ॉल्ट = []
सोर्स को इकट्ठा करने के लिए ज़रूरी अतिरिक्त फ़ाइलों की सूची
grep_includes File; or None; डिफ़ॉल्ट = कोई नहीं

configure_features

FeatureConfiguration cc_common.configure_features(ctx=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])

सुविधा_कॉन्फ़िगरेशन इंस्टेंस बनाता है. cpp कॉन्फ़िगरेशन फ़्रैगमेंट की ज़रूरत है.

पैरामीटर

पैरामीटर ब्यौरा
ctx ctx; or None; डिफ़ॉल्ट = कोई नहीं
नियम का संदर्भ.
cc_toolchain ज़रूरी है
cc_toolchain जिसके लिए हम सुविधाएं कॉन्फ़िगर करते हैं.
language string; or None; डिफ़ॉल्ट = कोई नहीं
कॉन्फ़िगर की जाने वाली भाषा: c++ या objc (डिफ़ॉल्ट c++)
requested_features डिफ़ॉल्ट = []
चालू की जाने वाली सुविधाओं की सूची.
unsupported_features डिफ़ॉल्ट = []
उन सुविधाओं की सूची जो मौजूदा नियम के हिसाब से काम नहीं करती.

create_cc_toolchain_config_info

CcToolchainConfigInfo cc_common.create_cc_toolchain_config_info(ctx, features=[], action_configs=[], artifact_name_patterns=[], cxx_builtin_include_directories=[], toolchain_identifier, host_system_name=None, target_system_name, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)

यह सेवा CcToolchainConfigInfo की सेवा देने वाली कंपनी बनाती है

पैरामीटर

पैरामीटर ब्यौरा
ctx ज़रूरी है
नियम का संदर्भ.
features डिफ़ॉल्ट = []

इसमें एक सुविधा के लिए सभी फ़्लैग की खास बातें शामिल होती हैं.

तर्क:

नाम: सुविधा का नाम. 'फ़ीचर' जोड़कर, Basel में बिना बदलाव किए किसी सुविधा को पेश किया जा सकता है सेक्शन में जोड़ी जा सकती हैं और इससे जुड़ी स्ट्रिंग BUILD फ़ाइल में दी गई सुविधा के तौर पर जोड़ी जा सकती है.

चालू है: अगर 'सही है' है, तो यह सुविधा तब तक चालू रहती है, जब तक कि कोई नियम साफ़ तौर पर उसे 'काम नहीं करता' के तौर पर मार्क न कर दे.

फ़्लैग_सेट: कोई FlagSet सूची - अगर दी गई सुविधा चालू है, तो कार्रवाइयों के लिए फ़्लैग सेट लागू किए जाएंगे.

env_sets: EnvSet सूची - अगर दी गई सुविधा चालू है, तो env सेट उन कार्रवाइयों के लिए लागू होगी जिनके लिए वे बताई गई हैं.

ज़रूरी है: ऐसे फ़ीचर सेट की सूची जो तय करता है कि यह सुविधा कब टूलचेन में काम करेगी. यह सुविधा तब काम करती है, जब किसी सुविधा के सेट को पूरी तरह से लागू किया जाता हो. इसका मतलब है कि उस सुविधा के सेट की सभी सुविधाएं चालू हों. अगर 'ज़रूरी' है अगर यह सुविधा उपलब्ध नहीं है, तो यह सुविधा अलग से किसी सुविधा पर काम करती है. उदाहरण के लिए, बिल्ड मोड चालू होने (ऑप्ट / फ़ास्टबिल्ड / डीबीजी) के आधार पर फ़्लैग फ़िल्टर करने के लिए इसका इस्तेमाल करें.

इसका मतलब है: सुविधाओं या कार्रवाई कॉन्फ़िगरेशन की ऐसी स्ट्रिंग सूची जो इस सुविधा के चालू होने पर अपने-आप चालू हो जाती है. अगर पहले से मौजूद किसी सुविधा या कार्रवाई कॉन्फ़िगरेशन को चालू नहीं किया जा सकता, तो यह सुविधा (बिना आवाज़ के) भी चालू नहीं होगी.

उपलब्ध कराता है: उन नामों की सूची जिनके साथ इस सुविधा का विरोध है.

किसी सुविधा को तब चालू नहीं किया जा सकता, अगर:
- 'उपलब्ध कराता है' उस अलग सुविधा या कार्रवाई कॉन्फ़िगरेशन का नाम शामिल है जिसे हम चालू करना चाहते हैं.
- ' provided' 'providers' के समान मान है किसी दूसरी सुविधा या कार्रवाई कॉन्फ़िगरेशन में जिसे हम चालू करना चाहते हैं. इसका इस्तेमाल यह पक्का करने के लिए करें कि एक ही समय में, इसके साथ काम न करने वाली सुविधाओं को गलती से चालू न किया जा सके. इससे कंपाइलर की गड़बड़ियों का पता लगाना मुश्किल होता है.
action_configs डिफ़ॉल्ट = []

कार्रवाई से जुड़ा कॉन्फ़िगरेशन, Basel की कार्रवाई से जुड़ा होता है. साथ ही, यह चालू सुविधाओं के आधार पर किसी टूल को चुनने की अनुमति देता है. कार्रवाई कॉन्फ़िगरेशन को चालू करने के लिए, सुविधाओं की तरह ही सिमैंटिक का इस्तेमाल किया जाता है: किसी सुविधा की 'ज़रूरी' हो सकती है या 'अनुमान' कार्रवाई कॉन्फ़िगरेशन को उसी तरह से कॉन्फ़िगर करें जैसे यह किसी अन्य सुविधा के लिए की जाती है.

तर्क:

Action_name: Basel की उस कार्रवाई का नाम जिस पर यह कॉन्फ़िगरेशन लागू होता है, उदाहरण के लिए 'सी-कंपाइल' या 'c-मॉड्यूल-कंपाइल' का इस्तेमाल न करें.

चालू है: अगर 'सही है' है, तो यह कार्रवाई तब तक चालू रहती है, जब तक कि किसी नियम के टाइप में इसे साफ़ तौर पर 'काम नहीं करता' के तौर पर मार्क न किया गया हो.

टूल: कार्रवाई पर लागू किया गया टूल, सुविधा के सेट वाला पहला ऐसा टूल होगा जो सुविधा के कॉन्फ़िगरेशन से मेल खाता होगा. अगर कोई भी टूल किसी दिए गए सुविधा कॉन्फ़िगरेशन से मेल नहीं खाता है, तो गड़बड़ी होती है - इस वजह से, खाली सुविधा सेट के साथ एक डिफ़ॉल्ट टूल देना एक अच्छा आइडिया है.

फ़्लैग_सेट: अगर दी गई कार्रवाई का कॉन्फ़िगरेशन चालू है, तो उससे जुड़ी कार्रवाई पर फ़्लैग सेट लागू होंगे.

इसका मतलब है: सुविधाओं या ऐक्शन कॉन्फ़िगरेशन की ऐसी सूची जो इस ऐक्शन कॉन्फ़िगरेशन के चालू होने पर अपने-आप चालू होती है. अगर शामिल की गई किसी भी सुविधा या कार्रवाई कॉन्फ़िगरेशन को चालू नहीं किया जा सकता, तो यह कार्रवाई कॉन्फ़िगरेशन (बिना आवाज़ के) भी चालू नहीं होगा.

artifact_name_patterns डिफ़ॉल्ट = []

किसी कार्रवाई के लिए, इनपुट या आउटपुट आर्टफ़ैक्ट की दी गई कैटगरी के आर्टफ़ैक्ट का नाम.

तर्क:

कैटगरी_नाम: आर्टफ़ैक्ट की वह कैटगरी जिस पर यह विकल्प लागू होता है. इस फ़ील्ड की तुलना, Basel में बताई गई कैटगरी की सूची से की जाती है. कैटगरी के उदाहरणों में "linked_Output" शामिल हैं या आर्टफ़ैक्ट वाली इमेज हो. एक्सटेंशन के साथ मिलकर इसका इस्तेमाल, टारगेट नाम के आधार पर एक आर्टफ़ैक्ट का नाम बनाने के लिए किया जाता है.

एक्सटेंशन: इस चुने गए के लिए आर्टफ़ैक्ट बनाने के लिए एक्सटेंशन. प्रीफ़िक्स के साथ इसका इस्तेमाल, टारगेट के नाम के आधार पर आर्टफ़ैक्ट का नाम बनाने के लिए किया जाता है.

cxx_builtin_include_directories डिफ़ॉल्ट = []

बिल्ट-इन में C++ कंपाइलेशन के लिए डायरेक्ट्री शामिल हैं. ये वही पाथ होने चाहिए जिनका इस्तेमाल कंपाइलर करता है. साथ ही, आम तौर पर ये पाथ exec रूट से जुड़े होते हैं.

कंपाइलर के पाथ का पता 'gcc -E -xc++ - -v' से लगाया जा सकता है.

फ़िलहाल, हम C कंपाइलेशन के लिए भी C++ पाथ का इस्तेमाल करते हैं. यह तब तक सुरक्षित है, जब तक C++ और C हेडर फ़ाइलों के नाम में कोई अंतर न हो.

रिलेटिव पाथ का समाधान, कॉन्फ़िगरेशन फ़ाइल डायरेक्ट्री के आधार पर किया जाता है.

अगर कंपाइलर में --sysroot सपोर्ट है, तो इन पाथ को शामिल पाथ के बजाय %sysroot% का इस्तेमाल करना चाहिए और ब्लेज़ को सही बदलाव करने के लिए ज़रूरी जानकारी देने के लिए sysroot एट्रिब्यूट तय करना चाहिए.

toolchain_identifier ज़रूरी है

क्रॉसटूल रिलीज़ में टूलचेन का यूनीक आइडेंटिफ़ायर. किसी पाथ में डायरेक्ट्री के नाम के तौर पर इसका इस्तेमाल किया जा सकता हो.

यह इस रेगुलर एक्सप्रेशन से मैच होना चाहिए: [a-zA-Z_][\.\- \w]*

host_system_name string; or None; डिफ़ॉल्ट = कोई नहीं
अनदेखा किया गया.
target_system_name ज़रूरी है
GNU सिस्टम का नाम.
target_cpu ज़रूरी है
टारगेट आर्किटेक्चर स्ट्रिंग.
target_libc ज़रूरी है
libc वर्शन स्ट्रिंग (जैसे कि "glibc-2.2.2").
compiler ज़रूरी है
कंपाइलर वर्शन स्ट्रिंग (उदाहरण के लिए, "gcc-4.1.1").
abi_version string; or None; डिफ़ॉल्ट = कोई नहीं
abi का इस्तेमाल किया जा रहा है, जो gcc वर्शन है. उदाहरण: "जीसीसी-3.4"
abi_libc_version string; or None; डिफ़ॉल्ट = कोई नहीं
हम जिस abi का इस्तेमाल कर रहे हैं वह glibc वर्शन इस्तेमाल कर रहा है.
tool_paths डिफ़ॉल्ट = []

टूल की जगह.

तर्क:

नाम: टूल का नाम.

पाथ: टूल की लोकेशन; यह ऐब्सलूट पाथ (नॉन हर्मेटिक टूलचेन के मामले में) या cc_toolchain के पैकेज से मिलता-जुलता पाथ हो सकता है.

make_variables डिफ़ॉल्ट = []
मेक वैरिएबल, जिसे नियमों से ऐक्सेस किया जा सकता है.
builtin_sysroot string; or None; डिफ़ॉल्ट = कोई नहीं
पहले से मौजूद सिस्टम. अगर यह एट्रिब्यूट मौजूद नहीं है, तो Basel अलग सिस्टम का इस्तेमाल करने की अनुमति नहीं देता है. जैसे, --grte_top विकल्प के ज़रिए.
cc_target_os string; or None; डिफ़ॉल्ट = कोई नहीं
इसका इस्तेमाल सिर्फ़ अंदरूनी कामों के लिए करें.

create_compilation_context

CompilationContext cc_common.create_compilation_context(headers=unbound, system_includes=unbound, includes=unbound, quote_includes=unbound, framework_includes=unbound, defines=unbound, local_defines=unbound)

यह CompilationContext बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
headers डिफ़ॉल्ट = अनबाउंड
इस टारगेट को इकट्ठा करने के लिए, हेडर का सेट ज़रूरी है
system_includes डिफ़ॉल्ट = अनबाउंड
एंगल ब्रैकेट से संबंधित हेडर फ़ाइलों के लिए खोज पाथ का सेट, जैसे कि #include <foo/bar/header.h>. वे exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर -isystem के साथ पास किया जाता है
includes डिफ़ॉल्ट = अनबाउंड
कोण वाले ब्रैकेट और कोट, दोनों से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ का सेट.आम तौर पर, इसे -I से पास किया जाता है
quote_includes डिफ़ॉल्ट = अनबाउंड
कोट से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ का सेट, जैसे कि #include "foo/bar/header.h". वे exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर -iquote के साथ पास किया जाता है
framework_includes डिफ़ॉल्ट = अनबाउंड
हेडर फ़ाइलों के लिए फ़्रेमवर्क खोज पाथ का सेट (सिर्फ़ Apple प्लैटफ़ॉर्म)
defines डिफ़ॉल्ट = अनबाउंड
इस टारगेट को इकट्ठा करने के लिए, तय की गई वैल्यू का सेट. हर परिभाषा एक स्ट्रिंग होती है. यह ट्रांज़िटिव तौर पर, डिपेंडेंट लोगों को डिलीवर किया जा सकता है.
local_defines डिफ़ॉल्ट = अनबाउंड
इस टारगेट को इकट्ठा करने के लिए, तय की गई वैल्यू का सेट. हर परिभाषा एक स्ट्रिंग होती है. डिपेंडेंट लोगों को ट्रांज़िट के तौर पर लागू नहीं किया जाता.

create_compilation_outputs

CcCompilationOutputs cc_common.create_compilation_outputs(objects=None, pic_objects=None)

कंपाइलेशन आउटपुट ऑब्जेक्ट बनाएं.

पैरामीटर

पैरामीटर ब्यौरा
objects depset; or None; डिफ़ॉल्ट = कोई नहीं
ऑब्जेक्ट फ़ाइलों की सूची.
pic_objects depset; or None; डिफ़ॉल्ट = कोई नहीं
तस्वीर वाली ऑब्जेक्ट फ़ाइलों की सूची.

create_compile_variables

Variables cc_common.create_compile_variables(cc_toolchain, feature_configuration, source_file=None, output_file=None, user_compile_flags=None, include_directories=None, quote_include_directories=None, system_include_directories=None, framework_include_directories=None, preprocessor_defines=None, thinlto_index=None, thinlto_input_bitcode_file=None, thinlto_output_object_file=None, use_pic=False, add_legacy_cxx_options=False, variables_extension=unbound)

कंपाइलेशन ऐक्शन के लिए इस्तेमाल किए जाने वाले वैरिएबल दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
cc_toolchain ज़रूरी है
cc_toolchain जिसके लिए हम बिल्ड वैरिएबल बना रहे हैं.
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
source_file डिफ़ॉल्ट = कोई नहीं
कंपाइलेशन के लिए वैकल्पिक सोर्स फ़ाइल. cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में, इसे जोड़ने के बजाय source_file को यहां पास करें. ऐसा करना इसलिए ज़रूरी है, क्योंकि यह टूलचेन लेखक की ज़िम्मेदारी है कि वह कंपाइलर फ़्लैग को सही तरीके से तय कर सके और उसकी जगह तय कर सके.
output_file डिफ़ॉल्ट = कोई नहीं
कंपाइलेशन की वैकल्पिक आउटपुट फ़ाइल. cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में, इसे जोड़ने के बजाय इसके आउटपुट_file को यहां पास करें. ऐसा करना इसलिए ज़रूरी है, क्योंकि यह टूलचेन लेखक की ज़िम्मेदारी है कि वह कंपाइलर फ़्लैग को सही तरीके से तय कर सके और उसकी जगह तय कर सके.
user_compile_flags sequence of strings; or None; डिफ़ॉल्ट = कोई नहीं
अतिरिक्त कंपाइलेशन फ़्लैग की सूची (कॉप्ट).
include_directories depset; or None; डिफ़ॉल्ट = कोई नहीं
शामिल की गई डायरेक्ट्री का उदाहरण.
quote_include_directories depset; or None; डिफ़ॉल्ट = कोई नहीं
कोटेशन के निरूपण में डायरेक्ट्री शामिल हैं.
system_include_directories depset; or None; डिफ़ॉल्ट = कोई नहीं
सिस्टम के प्रतिनिधित्व में डायरेक्ट्री शामिल हैं.
framework_include_directories depset; or None; डिफ़ॉल्ट = कोई नहीं
फ़्रेमवर्क के निरूपण में डायरेक्ट्री शामिल होती हैं.
preprocessor_defines depset; or None; डिफ़ॉल्ट = कोई नहीं
प्रीप्रोसेसर का डेपसेट तय करता है.
thinlto_index string; or None; डिफ़ॉल्ट = कोई नहीं
एलटीओ इंडेक्स फ़ाइल का पाथ.
thinlto_input_bitcode_file string; or None; डिफ़ॉल्ट = कोई नहीं
LTO बैकएंड में इनपुट करने वाली बिटकोड फ़ाइल.
thinlto_output_object_file string; or None; डिफ़ॉल्ट = कोई नहीं
वह ऑब्जेक्ट फ़ाइल जो एलटीओ बैकएंड से आउटपुट करती है.
use_pic डिफ़ॉल्ट = गलत
सही होने पर, कंपाइलेशन से अलग-अलग पोज़िशन पर कोड जनरेट होगा.
add_legacy_cxx_options डिफ़ॉल्ट = गलत
अप्रयुक्त.
variables_extension dict; डिफ़ॉल्ट = अनबाउंड
इकट्ठा करने की कार्रवाइयों के लिए इस्तेमाल किए जाने वाले अतिरिक्त वैरिएबल का डिक्शनरी.

LibraryToLink cc_common.create_library_to_link(actions, feature_configuration=None, cc_toolchain=None, static_library=None, pic_static_library=None, dynamic_library=None, interface_library=None, pic_objects=unbound, objects=unbound, alwayslink=False, dynamic_library_symlink_path='', interface_library_symlink_path='')

इससे LibraryToLink को जोड़ा जाएगा

पैरामीटर

पैरामीटर ब्यौरा
actions ज़रूरी है
actions ऑब्जेक्ट.
feature_configuration डिफ़ॉल्ट = कोई नहीं
क्वेरी के लिए feature_configuration.
cc_toolchain डिफ़ॉल्ट = कोई नहीं
CcToolchainInfo प्रोवाइडर का इस्तेमाल किया जाएगा.
static_library File; or None; डिफ़ॉल्ट = कोई नहीं
File स्टैटिक लाइब्रेरी से लिंक किया जाना है.
pic_static_library File; or None; डिफ़ॉल्ट = कोई नहीं
File फ़ोटो वाली स्टैटिक लाइब्रेरी को लिंक करना है.
dynamic_library File; or None; डिफ़ॉल्ट = कोई नहीं
डाइनैमिक लाइब्रेरी का File जोड़ना है. हमेशा रनटाइम के लिए इस्तेमाल किया जाता है. साथ ही, interface_library के पास न होने पर, लिंक करने के लिए इस्तेमाल किया जाता है.
interface_library File; or None; डिफ़ॉल्ट = कोई नहीं
इंटरफ़ेस लाइब्रेरी का File लिंक करना है.
pic_objects sequence of Files; डिफ़ॉल्ट = अनबाउंड
प्रयोगात्मक, उपयोग न करें
objects sequence of Files; डिफ़ॉल्ट = अनबाउंड
प्रयोगात्मक, उपयोग न करें
डिफ़ॉल्ट = गलत
--पूरा_संग्रह ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं.
string; डिफ़ॉल्ट = ''
Solib डायरेक्ट्री में डाइनैमिक लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट इस्तेमाल के लिए खाली स्ट्रिंग.
डिफ़ॉल्ट = ''
Solib डायरेक्ट्री में इंटरफ़ेस लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट इस्तेमाल के लिए खाली स्ट्रिंग.

Variables cc_common.create_link_variables(cc_toolchain, feature_configuration, library_search_directories=None, runtime_library_search_directories=None, user_link_flags=None, output_file=None, param_file=None, def_file=None, is_using_linker=True, is_linking_dynamic_library=False, must_keep_debug=True, use_test_only_flags=False, is_static_linking_mode=True)

लिंक करने की कार्रवाइयों के लिए इस्तेमाल किए जाने वाले लिंक वैरिएबल दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
ज़रूरी है
cc_toolchain जिसके लिए हम बिल्ड वैरिएबल बना रहे हैं.
ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
None; or depset; डिफ़ॉल्ट = कोई नहीं
डायरेक्ट्री का सेट, जहां लिंकर लिंक के समय लाइब्रेरी ढूंढेगा.
None; or depset; डिफ़ॉल्ट = कोई नहीं
डायरेक्ट्री का सेट, जहां लोडर रनटाइम के दौरान लाइब्रेरी ढूंढेगा.
None; or sequence; डिफ़ॉल्ट = कोई नहीं
अतिरिक्त लिंक फ़्लैग की सूची (linkopts).
डिफ़ॉल्ट = कोई नहीं
आउटपुट फ़ाइल का पाथ (ज़रूरी नहीं)
डिफ़ॉल्ट = कोई नहीं
वैकल्पिक पैरामीटर फ़ाइल पाथ.
डिफ़ॉल्ट = कोई नहीं
.def फ़ाइल पाथ ज़रूरी नहीं है.
डिफ़ॉल्ट = सही
लिंकर का इस्तेमाल करते समय 'सही', जबकि आर्काइवर के इस्तेमाल पर 'गलत'. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए कार्रवाई नाम के साथ सिंक करे (is_used_linker = सही का इस्तेमाल करके, एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी से लिंक किया जा सकता है, is_used_linker = False ), स्टैटिक लाइब्रेरी को संग्रहित करने के लिए.
डिफ़ॉल्ट = गलत
डाइनैमिक लाइब्रेरी बनाते समय सही, एक्ज़ीक्यूटेबल या स्टैटिक लाइब्रेरी बनाते समय 'गलत'. इसे इस्तेमाल किए जाने वाली कार्रवाई के नाम के साथ सिंक रखने की ज़िम्मेदारी कॉलर की है. b/65151735 के ठीक होने के बाद, यह फ़ील्ड हटा दिया जाएगा.
डिफ़ॉल्ट = सही
'सही है' पर सेट करने पर, बैजल 'strip_debug_simbols' को दिखाएगा वैरिएबल को आम तौर पर, आउटपुट फ़ाइल से डीबग सिंबल को हटाने के लिए, लिंकर का इस्तेमाल करने के लिए इस्तेमाल किया जाता है.
डिफ़ॉल्ट = गलत
सही पर सेट होने पर, 'is_cc_test' वैरिएबल को सेट किया जाएगा.
डिफ़ॉल्ट = सही
अप्रयुक्त.

create_linker_input

LinkerInput cc_common.create_linker_input(owner, libraries=None, user_link_flags=None, additional_inputs=None)

यह LinkerInput बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
owner ज़रूरी है
उस टारगेट का लेबल जिसने इस इनपुट में इस्तेमाल की गई सभी फ़ाइलें बनाई हैं.
libraries None; or depset; डिफ़ॉल्ट = कोई नहीं
LibraryToLink की सूची.
None; or depset of strings; or sequence of strings; डिफ़ॉल्ट = कोई नहीं
उपयोगकर्ता के लिंक वाले फ़्लैग, स्ट्रिंग के तौर पर पास किए जाते हैं. [String], [[String]] या depset(String) को स्वीकार करता है. बाद वाले लेबल का इस्तेमाल नहीं किया जाता, क्योंकि इसे सिर्फ़ साथ काम करने के मकसद से रखा जाता है. साथ ही, डिपसेट को कम कर दिया जाता है. अगर आपको user_link_flags को अनफ़्लैट किए गए depsets() के ज़रिए लागू करना है, तो उन्हें Linkerइनपुट में रैप करें, ताकि वे आखिर तक फ़्लैट न हों.
additional_inputs None; or depset; डिफ़ॉल्ट = कोई नहीं
लिंक करने की कार्रवाई के बारे में अतिरिक्त इनपुट के लिए, जैसे कि स्क्रिप्ट लिंक करना.

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)

यह LinkingContext बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
linker_inputs None; or depset; डिफ़ॉल्ट = कोई नहीं
LinkerInput का चिह्न.
None; or sequence; डिफ़ॉल्ट = कोई नहीं
अब काम नहीं करता. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह --+incompatible_require_linker_input_cc_api के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है.
LibraryToLink की सूची.
None; or sequence; डिफ़ॉल्ट = कोई नहीं
अब काम नहीं करता. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह --+incompatible_require_linker_input_cc_api के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है.
उपयोगकर्ता लिंक के फ़्लैग की सूची, जिसे स्ट्रिंग के तौर पर पास किया जाता है.
additional_inputs None; or sequence; डिफ़ॉल्ट = कोई नहीं
अब काम नहीं करता. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह --+incompatible_require_linker_input_cc_api के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है.
लिंक करने की कार्रवाई के बारे में ज़्यादा जानकारी देने के लिए, जैसे कि स्क्रिप्ट लिंक करना.

create_linking_context_from_compilation_outputs

tuple cc_common.create_linking_context_from_compilation_outputs(actions, feature_configuration, cc_toolchain, compilation_outputs, user_link_flags=[], linking_contexts=[], name, language='c++', alwayslink=False, additional_inputs=[], disallow_static_libraries=False, disallow_dynamic_library=False, grep_includes=None)

इसका इस्तेमाल लाइब्रेरी के ऐसे नियम बनाने के लिए किया जाना चाहिए जो जानकारी को डाउनस्ट्रीम में लागू कर सकें, ताकि बाद में उन्हें किसी टॉप लेवल नियम के ज़रिए लिंक किया जा सके. यह नियम एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी बनाने के लिए, ट्रांज़िटिव लिंक करता है. (CcLinkingContext, CcLinkingOutputs) का टपल दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
actions ज़रूरी है
actions ऑब्जेक्ट.
feature_configuration ज़रूरी है
क्वेरी के लिए feature_configuration.
cc_toolchain ज़रूरी है
CcToolchainInfo प्रोवाइडर का इस्तेमाल किया जाएगा.
compilation_outputs ज़रूरी है
कंपाइलेशन आउटपुट, जिनमें लिंक करने के लिए ऑब्जेक्ट फ़ाइलें शामिल हैं.
डिफ़ॉल्ट = []
लिंक करने के विकल्पों की अतिरिक्त सूची.
linking_contexts डिफ़ॉल्ट = []
डिपेंडेंसी से जुड़ी लाइब्रेरी. इन लाइब्रेरी को link() कॉल के आउटपुट आर्टफ़ैक्ट से लिंक किया जाएगा. फिर चाहे वह बाइनरी हो या फिर लाइब्रेरी.
name ज़रूरी है
इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट को नाम देने के लिए किया जाता है.
language डिफ़ॉल्ट = 'c++'
अभी C++ इस्तेमाल किया जा सकता है. इस पैरामीटर का इस्तेमाल न करें.
डिफ़ॉल्ट = गलत
इस लाइब्रेरी को हमेशा लिंक किया जाना चाहिए या नहीं.
additional_inputs डिफ़ॉल्ट = []
लिंक करने की कार्रवाई के बारे में अतिरिक्त इनपुट के लिए, जैसे कि स्क्रिप्ट लिंक करना.
disallow_static_libraries डिफ़ॉल्ट = गलत
क्या स्टैटिक लाइब्रेरी बनाई जानी चाहिए.
disallow_dynamic_library डिफ़ॉल्ट = गलत
डाइनैमिक लाइब्रेरी बनाई जानी चाहिए या नहीं.
grep_includes File; or None; डिफ़ॉल्ट = कोई नहीं

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

इस फ़ील्ड का इस्तेमाल न करें. इसका मकसद सिर्फ़ config_setting.values{'compiler') से config_settings.flag_values{'@bazu_tools//tools/cpp:compiler'} पर माइग्रेट करने में मदद करना है

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

किसी कार्रवाई के लिए सेट किए जाने वाले एनवायरमेंट वैरिएबल दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/blob/Master/tools/build_defs/cc/action_names.bzl)
variables ज़रूरी है
टेंप्लेट को बड़ा करने के लिए, वैरिएबल बनाएं.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

दी गई कार्रवाई के लिए, एक्ज़ीक्यूशन की ज़रूरी शर्तें दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/blob/Master/tools/build_defs/cc/action_names.bzl)

get_memory_inefficient_command_line

sequence cc_common.get_memory_inefficient_command_line(feature_configuration, action_name, variables)

यह फ़ंक्शन किसी कार्रवाई के लिए, फ़्लैटन किए गए कमांड लाइन फ़्लैग दिखाता है. ऐसा करने के लिए, दिए गए वैरिएबल का इस्तेमाल किया जाता है. नेस्ट किए गए फ़्लैट सेट का इस्तेमाल नहीं किया जाना चाहिए या कम से कम बाहरी विश्लेषण वाले टूल का इस्तेमाल नहीं करना चाहिए. Args पर फिर से काम करने वाले मेमोरी कुशल फ़ंक्शन पर काम चल रहा है.

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/blob/Master/tools/build_defs/cc/action_names.bzl)
variables ज़रूरी है
टेंप्लेट को बड़ा करने के लिए, वैरिएबल बनाएं.

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

दी गई कार्रवाई के लिए टूल पाथ दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/blob/Master/tools/build_defs/cc/action_names.bzl)

is_enabled

bool cc_common.is_enabled(feature_configuration, feature_name)

अगर सुविधा के कॉन्फ़िगरेशन में दी गई सुविधा चालू है, तो 'सही' दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
feature_name ज़रूरी है
सुविधा का नाम.

CcLinkingOutputs cc_common.link(actions, feature_configuration, cc_toolchain, compilation_outputs=None, user_link_flags=[], linking_contexts=[], name, language='c++', output_type='executable', link_deps_statically=True, stamp=0, additional_inputs=[], grep_includes=None, additional_outputs=unbound)

इसका इस्तेमाल C++ ट्रांज़िटिव लिंकिंग के लिए किया जाना चाहिए.

पैरामीटर

पैरामीटर ब्यौरा
actions ज़रूरी है
actions ऑब्जेक्ट.
feature_configuration ज़रूरी है
क्वेरी के लिए feature_configuration.
cc_toolchain ज़रूरी है
CcToolchainInfo प्रोवाइडर का इस्तेमाल किया जाएगा.
compilation_outputs CcCompilationOutputs; or None; डिफ़ॉल्ट = कोई नहीं
कंपाइलेशन आउटपुट, जिनमें लिंक करने के लिए ऑब्जेक्ट फ़ाइलें शामिल हैं.
डिफ़ॉल्ट = []
लिंक करने वाले विकल्पों की अतिरिक्त सूची.
linking_contexts डिफ़ॉल्ट = []
डिपेंडेंसी से जुड़े कॉन्टेक्स्ट को लिंक करना, ताकि उन्हें इस नियम से जनरेट किए गए लिंकिंग कॉन्टेक्स्ट में जोड़ा जा सके.
name ज़रूरी है
इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट को नाम देने के लिए किया जाता है.
language डिफ़ॉल्ट = 'c++'
अभी C++ इस्तेमाल किया जा सकता है. इस पैरामीटर का इस्तेमाल न करें.
output_type डिफ़ॉल्ट = 'लागू किया जा सकता है'
यह 'लागू करने लायक' हो सकता है या 'डाइनैमिक_लाइब्रेरी' शामिल करें.
डिफ़ॉल्ट = सही
डिपेंडेंसी को स्टैटिक रूप से लिंक करने के लिए 'सही', डाइनैमिक तौर पर गलत.
stamp डिफ़ॉल्ट = 0
अगर आउटपुट_type 'एक्ज़िक्यूट किया जा सकता है' है, तो लिंक किए गए एक्ज़ीक्यूटेबल में बिल्ड की जानकारी शामिल की जाए या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर 0 है (बिल्ड की डिफ़ॉल्ट जानकारी को हमेशा बाहर रखा जाता है. अगर -1, डिफ़ॉल्ट व्यवहार का इस्तेमाल करता है, जिसे --[no]स्टैंप फ़्लैग से बदला जा सकता है. टेस्ट के नियमों के लिए एक्ज़ीक्यूटेबल आउटपुट जनरेट करते समय, इसे सेट नहीं होना चाहिए या 0 पर सेट किया जाना चाहिए.
additional_inputs sequence; or depset; डिफ़ॉल्ट = []
लिंक करने की कार्रवाई के बारे में अतिरिक्त इनपुट के लिए, जैसे कि स्क्रिप्ट लिंक करना.
grep_includes File; or None; डिफ़ॉल्ट = कोई नहीं
additional_outputs sequence; डिफ़ॉल्ट = अनबाउंड
लिंक करने की कार्रवाई के अतिरिक्त आउटपुट के लिए, जैसे कि Maps फ़ाइलें.

merge_cc_infos

CcInfo cc_common.merge_cc_infos(direct_cc_infos=[], cc_infos=[])

यह एक से ज़्यादा CcInfo को मर्ज करता है.

पैरामीटर

पैरामीटर ब्यौरा
direct_cc_infos डिफ़ॉल्ट = []
मर्ज किए जाने वाले CcInfo की सूची, जिसके हेडर को वापस सेवा देने वाली कंपनी के डायरेक्ट फ़ील्ड से एक्सपोर्ट किया जाएगा.
cc_infos डिफ़ॉल्ट = []
मर्ज किए जाने वाले CcInfo की सूची, जिसके हेडर को वापस सेवा देने वाली कंपनी के डायरेक्ट फ़ील्ड से एक्सपोर्ट नहीं किया जाएगा.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

यह एक से ज़्यादा CompilationContexts को मर्ज करता है.

पैरामीटर

पैरामीटर ब्यौरा
compilation_contexts डिफ़ॉल्ट = []
मर्ज किए जाने वाले CompilationContexts की सूची. हर कॉन्टेक्स्ट के हेडर को, लौटाए गए प्रोवाइडर के डायरेक्ट फ़ील्ड से एक्सपोर्ट किया जाएगा.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

कंपाइलेशन आउटपुट मर्ज करें.

पैरामीटर

पैरामीटर ब्यौरा
compilation_outputs डिफ़ॉल्ट = []