cc_common

C++ कंपाइल करने, लिंक करने, और कमांड लाइन जनरेट करने में मदद करने वाली सुविधाएं.

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

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

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

पैरामीटर

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

CcToolchainInfo

Provider cc_common.CcToolchainInfo

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

compile

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 डिफ़ॉल्ट = []
srcs के कंपाइलेशन के लिए ज़रूरी हेडर की सूची. इसे डिपेंडेंट नियमों के ज़रिए ट्रांज़िट के दौरान शामिल किया जा सकता है.
private_hdrs डिफ़ॉल्ट = []
हेडर की सूची, जो srcs के कंपाइलेशन के लिए ज़रूरी है. साथ ही, इसे डिपेंडेंट नियमों के हिसाब से शामिल नहीं किया जाना चाहिए.
includes डिफ़ॉल्ट = []
हेडर फ़ाइलों के लिए पाथ खोजें, जिनके रेफ़रंस के लिए ऐंगल ब्रैकेट और कोट, दोनों का इस्तेमाल किया गया हो. आम तौर पर -I के साथ पास किया जाता है. आश्रित लोगों को ट्रांज़िटिव रूप से भेजा जाता है.
quote_includes default = []
कोटेशन से रेफ़र की गई हेडर फ़ाइलों के लिए पाथ खोजें, जैसे कि #include "foo/bar/header.h". वे या तो exec मूल या निरपेक्ष के सापेक्ष हो सकते हैं. आम तौर पर -iquote के साथ पास किया जाता है. आश्रित लोगों को ट्रांज़िटिव रूप से भेजा जाता है.
system_includes default = []
एंगल ब्रैकेट से रेफ़र की गई हेडर फ़ाइलों के लिए पाथ खोजें, जैसे कि #include <foo/bar/header.h>. वे exec रूट या ऐब्सलूट, दोनों से जुड़े हो सकते हैं. आम तौर पर -isystem के साथ पास किया जाता है. आश्रित लोगों को ट्रांज़िटिव रूप से भेजा जाता है.
framework_includes डिफ़ॉल्ट = []
Apple फ़्रेमवर्क की हेडर फ़ाइलों के लिए खोज के पाथ. वे या तो exec मूल या निरपेक्ष के सापेक्ष हो सकते हैं. आम तौर पर -F के साथ पास किया जाता है. आश्रित लोगों को ट्रांज़िटिव रूप से भेजा जाता है.
defines डिफ़ॉल्ट = []
इस टारगेट को कंपाइल करने के लिए तय का सेट ज़रूरी है. हर परिभाषा एक स्ट्रिंग होती है. आश्रित लोगों को ट्रांज़िटिव रूप से भेजा जाता है.
local_defines डिफ़ॉल्ट = []
इस टारगेट को कंपाइल करने के लिए तय का सेट ज़रूरी है. हर परिभाषा एक स्ट्रिंग होती है. आश्रित लोगों को ट्रांज़िट रूप से नहीं भेजा जाता.
include_prefix डिफ़ॉल्ट = ''
इस नियम के हेडर के पाथ में जोड़ने के लिए प्रीफ़िक्स. सेट किए जाने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को ऐक्सेस किया जा सकता है. यह वैल्यू, उनके रिपॉज़िटरी-रिलेटिव पाथ से पहले जोड़ी गई इस एट्रिब्यूट की वैल्यू होती है. इस प्रीफ़िक्स को जोड़ने से पहले, Strip_include_prefix एट्रिब्यूट में मौजूद प्रीफ़िक्स को हटा दिया गया है.
strip_include_prefix डिफ़ॉल्ट = ''
इस नियम के हेडर के पाथ से हटाया जाने वाला प्रीफ़िक्स. सेट किए जाने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को इस प्रीफ़िक्स के कट करके, अपने पाथ पर ऐक्सेस किया जा सकता है. अगर यह रिलेटिव पाथ है, तो इसे पैकेज-रिलेटिव के तौर पर लिया जाता है. अगर यह पूरा है, तो इसे रिपॉज़िटरी-रिलेटिव पाथ के तौर पर माना जाता है. इस प्रीफ़िक्स को हटाने के बाद, include_prefix एट्रिब्यूट में प्रीफ़िक्स जोड़ दिया गया है.
user_compile_flags default = []
कंपाइलेशन विकल्पों की अतिरिक्त सूची.
compilation_contexts डिफ़ॉल्ट = []
कंपाइलेशन के लिए इस्तेमाल की गई डिपेंडेंसी के हेडर.
name ज़रूरी है
इसका इस्तेमाल, इस तरीके से बनाए गए ऐक्शन के आउटपुट आर्टफ़ैक्ट को नाम देने के लिए किया जाता है. `main_OUT` आर्ग्युमेंट भी देखें.
disallow_pic_outputs डिफ़ॉल्ट = False
PIC आउटपुट बनाए जाने चाहिए या नहीं.
disallow_nopic_outputs डिफ़ॉल्ट = False
NOPIC आउटपुट बनाया जाना चाहिए या नहीं.
additional_inputs डिफ़ॉल्ट = []
उन अतिरिक्त फ़ाइलों की सूची जो srcs को कंपाइल करने के लिए ज़रूरी हैं
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 डिफ़ॉल्ट = []

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

तर्क:

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

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

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

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

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

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

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

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

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

तर्क:

action_name: Bazel ऐक्शन का नाम, जिस पर यह कॉन्फ़िगरेशन लागू होता है. उदाहरण के लिए, 'c-compile' या 'c-module-compile'.

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

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

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

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

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

इनपुट या आउटपुट आर्टफ़ैक्ट की दी गई कैटगरी के आर्टफ़ैक्ट का नाम.

तर्क:

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

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

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

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

कंपाइलर जिस पाथ का इस्तेमाल करता है उसे '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 वर्शन है. E.g.: "जीसीसी-3.4"
abi_libc_version string; or None; डिफ़ॉल्ट = कोई नहीं
हम जिस abi का इस्तेमाल कर रहे हैं उसका glibc वर्शन है.
tool_paths डिफ़ॉल्ट = []

टूल की लोकेशन.

तर्क:

name: टूल का नाम.

पाथ: टूल की लोकेशन; नॉन हर्मेटिक टूलचेन के मामले में, यह पाथ हो सकता है. इसके अलावा, यह cc_toolchain के पैकेज से मिलता-जुलता पाथ हो सकता है.

make_variables डिफ़ॉल्ट = []
एक मेक वैरिएबल, जिसे नियमों से ऐक्सेस किया जा सकता है.
builtin_sysroot string; or None; डिफ़ॉल्ट = कोई नहीं
पहले से मौजूद सिस्टमोट. अगर यह एट्रिब्यूट मौजूद नहीं है, तो Bazel किसी दूसरे sysroot को इस्तेमाल करने की अनुमति नहीं देता है, जैसे कि --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_मेमोरी_inefficiency_command_line से जनरेट की गई कमांड लाइन के आखिर में जोड़े जाने के लिए, Source_file को पास करें. ऐसा करने पर, टूलचेन लेखक के पास यह तय करने का अधिकार होता है कि वह कंपाइलर फ़्लैग सही तरीके से तय कर सके और उसकी जगह तय कर सके.
output_file डिफ़ॉल्ट = कोई नहीं
कंपाइलेशन की वैकल्पिक आउटपुट फ़ाइल. कृपया cc_Common.get_3_inefficiency_command_line से जनरेट की गई कमांड लाइन के आखिर में जोड़े जाने के लिए, exit_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; डिफ़ॉल्ट = कोई नहीं
ऑब्जेक्ट फ़ाइल जो LTO बैकएंड का आउटपुट है.
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; डिफ़ॉल्ट = अनबाउंड
एक्सपेरिमेंटल, इस्तेमाल न करें
डिफ़ॉल्ट = False
क्या --whole_archive ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं.
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_using_linker = एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी को लिंक करने के लिए सही, is_use_linker = स्टैटिक लाइब्रेरी को संग्रहित करने के लिए गलत).
डिफ़ॉल्ट = गलत
डाइनैमिक लाइब्रेरी बनाते समय 'सही है' पर सेट है, एक्ज़ीक्यूटेबल या स्टैटिक लाइब्रेरी के दौरान 'गलत'. कॉल करने वाले (कॉलर) की ज़िम्मेदारी यह है कि उसे, इस्तेमाल की जाने वाली कार्रवाई के नाम के साथ सिंक रखा जाए. b/65151735 के ठीक हो जाने पर, यह फ़ील्ड हटा दिया जाएगा.
डिफ़ॉल्ट = True
'सही है' पर सेट करने पर, bazel 'strip_debug_SIMbols' वैरिएबल को दिखाता है. आम तौर पर, इसका इस्तेमाल आउटपुट फ़ाइल से डीबग सिंबल को हटाने के लिए, लिंकर का इस्तेमाल करने के लिए किया जाता है.
डिफ़ॉल्ट = गलत
सही पर सेट होने पर, 'is_cc_test' वैरिएबल सेट हो जाएगा.
डिफ़ॉल्ट = True
इस्तेमाल नहीं किया गया.

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() के ज़रिए लागू करना है, तो उन्हें LinkerInput में रैप करें, ताकि वे आखिर तक फ़्लैट न हों.
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++ का इस्तेमाल किया जा सकता है. इस पैरामीटर का इस्तेमाल न करें.
डिफ़ॉल्ट = False
क्या इस लाइब्रेरी को हमेशा लिंक किया जाना चाहिए.
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{'@bazel_tools//tools/cpp:compiler'} में माइग्रेट करने में मदद करना है

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

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

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करना ज़रूरी है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/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 ज़रूरी है
कार्रवाई का नाम. यह @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/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 ज़रूरी है
कार्रवाई का नाम. यह @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/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 ज़रूरी है
कार्रवाई का नाम. यह @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/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 डिफ़ॉल्ट = 'executable'
यह 'executable' या 'Dynamic_library' हो सकता है.
डिफ़ॉल्ट = True
डिपेंडेंसी को स्टैटिक रूप से लिंक करने के लिए 'सही' और डाइनैमिक तौर पर 'गलत'.
stamp डिफ़ॉल्ट = 0
अगर exit_type 'एक्ज़ीक्यूबल' है, तो लिंक किए गए एक्ज़ीक्यूटेबल में बिल्ड की जानकारी शामिल करनी है या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर वैल्यू 0 है (बिल्ड की डिफ़ॉल्ट जानकारी हमेशा शामिल नहीं की जाती है. अगर -1, डिफ़ॉल्ट व्यवहार का इस्तेमाल करता है, जिसे --[no]स्टैंप फ़्लैग से बदला जा सकता है. जांच के नियमों के लिए एक्ज़ीक्यूटेबल आउटपुट जनरेट करते समय, इसे सेट नहीं (या 0 पर सेट करना) होना चाहिए.
additional_inputs sequence; or depset; डिफ़ॉल्ट = []
लिंक करने की कार्रवाई के लिए दूसरे इनपुट के लिए, उदाहरण: लिंक करने की स्क्रिप्ट.
grep_includes File; or None; डिफ़ॉल्ट = कोई नहीं
additional_outputs sequence; डिफ़ॉल्ट = अनबाउंड
लिंक करने की कार्रवाई से जुड़े दूसरे आउटपुट के लिए, उदाहरण के लिए: मैप फ़ाइलें.

merge_cc_infos

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

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

पैरामीटर

पैरामीटर ब्यौरा
direct_cc_infos default = []
मर्ज की जाने वाली CcInfo की सूची, जिनके हेडर, लौटाए गए प्रोवाइडर के डायरेक्ट फ़ील्ड से एक्सपोर्ट किए जाएंगे.
cc_infos default = []
मर्ज की जाने वाली 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 डिफ़ॉल्ट = []