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++ टूलचेन के बारे में जानकारी होती है

कंपाइल करें

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=[], conly_flags=[], cxx_flags=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[])

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

पैरामीटर

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

configure_features

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

यह feature_configuration इंस्टेंस बनाता है. इसके लिए, cpp कॉन्फ़िगरेशन फ़्रैगमेंट की ज़रूरत होती है.

पैरामीटर

पैरामीटर ब्यौरा
ctx ctx; या None; डिफ़ॉल्ट रूप से None
होता है नियम का कॉन्टेक्स्ट.
cc_toolchain ज़रूरी है
cc_toolchain, जिसके लिए हम सुविधाएं कॉन्फ़िगर करते हैं.
language string या None; डिफ़ॉल्ट रूप से 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 डिफ़ॉल्ट रूप से []
होता है इसमें किसी सुविधा के लिए, फ़्लैग से जुड़ी सभी खास बातें शामिल होती हैं.

तर्क:

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

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

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

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

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

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

provides: इस सुविधा के साथ काम न करने वाले नामों की सूची.

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

तर्क:

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

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

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

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

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

artifact_name_patterns डिफ़ॉल्ट रूप से []
होता है कार्रवाई के लिए, इनपुट या आउटपुट आर्टफ़ैक्ट की किसी दी गई कैटगरी के आर्टफ़ैक्ट का नाम.

तर्क:

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

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

cxx_builtin_include_directories डिफ़ॉल्ट वैल्यू []
है

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

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

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

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

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

toolchain_identifier ज़रूरी है

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

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

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

तर्क:

name: टूल का नाम.

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

make_variables डिफ़ॉल्ट तौर पर []
होता है यह एक ऐसा वैरिएबल है जिसे नियमों के लिए ऐक्सेस किया जा सकता है.
builtin_sysroot string; या None; डिफ़ॉल्ट रूप से None
होता है पहले से मौजूद sysroot. अगर यह एट्रिब्यूट मौजूद नहीं है, तो Bazel किसी दूसरे sysroot का इस्तेमाल करने की अनुमति नहीं देता. जैसे, --grte_top विकल्प के ज़रिए.
cc_target_os string; या None; डिफ़ॉल्ट रूप से 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 डिफ़ॉल्ट तौर पर unbound
होता है इस टारगेट को कंपाइल करने के लिए ज़रूरी हेडर का सेट
system_includes डिफ़ॉल्ट वैल्यू unbound
यह ऐंगल ब्रैकेट से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ का सेट है. जैसे, #include <foo/bar/header.h>. ये एक्ज़ेक रूट के हिसाब से या ऐब्सलूट हो सकते हैं. आम तौर पर -isystem के साथ पास किया जाता है
includes डिफ़ॉल्ट वैल्यू unbound
है यह हेडर फ़ाइलों के लिए खोज पाथ का सेट है. इन्हें ऐंगल ब्रैकेट और कोट, दोनों से रेफ़रंस किया जाता है. आम तौर पर, इन्हें -I के साथ पास किया जाता है
quote_includes डिफ़ॉल्ट वैल्यू unbound
है यह कोट्स से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ का सेट है. जैसे, #include "foo/bar/header.h". ये पाथ, एक्ज़ीक्यूटिव रूट के हिसाब से या पूरे पाथ के हिसाब से तय किए जा सकते हैं. आम तौर पर, इसे -iquote के साथ पास किया जाता है
framework_includes डिफ़ॉल्ट वैल्यू unbound
है यह हेडर फ़ाइलों के लिए फ़्रेमवर्क सर्च पाथ का सेट है. यह सिर्फ़ Apple प्लैटफ़ॉर्म के लिए है
defines डिफ़ॉल्ट रूप से unbound
होता है इस टारगेट को कंपाइल करने के लिए ज़रूरी सेट तय करता है. हर परिभाषा एक स्ट्रिंग होती है. डिपेंडेंट को ट्रांसफ़र किया जाता है.
local_defines डिफ़ॉल्ट रूप से unbound
होता है इस टारगेट को कंपाइल करने के लिए ज़रूरी सेट तय करता है. हर परिभाषा एक स्ट्रिंग होती है. यह अनुमति, उन लोगों को नहीं मिलती है जो किसी दूसरे व्यक्ति पर निर्भर हैं.

create_compilation_outputs

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

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

पैरामीटर

पैरामीटर ब्यौरा
objects depset; या None; डिफ़ॉल्ट रूप से None
होता है ऑब्जेक्ट फ़ाइलों की सूची.
pic_objects depset; या None; डिफ़ॉल्ट रूप से 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 डिफ़ॉल्ट वैल्यू None
है कंपाइलेशन के लिए सोर्स फ़ाइल (यह ज़रूरी नहीं है). कृपया source_file को cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में जोड़ने के बजाय, यहां पास करें. ऐसा इसलिए, क्योंकि इससे टूलचेन के लेखक को कंपाइलर फ़्लैग को सही तरीके से तय करने और उन्हें सही जगह पर रखने का मौका मिलता है.
output_file डिफ़ॉल्ट रूप से None
होता है यह कंपाइल की गई फ़ाइल का वैकल्पिक आउटपुट होता है. कृपया यहां output_file पास करें. इसे cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में न जोड़ें. ऐसा इसलिए, क्योंकि टूलचेन के लेखक के पास कंपाइलर फ़्लैग को सही तरीके से तय करने और उन्हें सही जगह पर रखने का अधिकार होता है.
user_compile_flags string का sequence; या None; डिफ़ॉल्ट रूप से None
होता है अतिरिक्त कंपाइलेशन फ़्लैग (copts) की सूची.
include_directories depset; या None; डिफ़ॉल्ट रूप से None
होता है इसमें शामिल की गई डायरेक्ट्री का depset.
quote_include_directories depset; या None; डिफ़ॉल्ट रूप से None
होता है कोट किए गए फ़ाइलें शामिल करने वाली डायरेक्ट्री का depset.
system_include_directories depset; या None; डिफ़ॉल्ट रूप से None
होता है सिस्टम में शामिल डायरेक्ट्री का depset.
framework_include_directories depset; या None; डिफ़ॉल्ट रूप से None
होता है फ़्रेमवर्क में शामिल डायरेक्ट्री का depset.
preprocessor_defines depset; या None; डिफ़ॉल्ट रूप से None
होता है प्रीप्रोसेसर के लिए, depset तय करता है.
thinlto_index string; या None; डिफ़ॉल्ट रूप से None
होता है एलटीओ इंडेक्स फ़ाइल का पाथ.
thinlto_input_bitcode_file string या None; डिफ़ॉल्ट रूप से None
होता है यह बिटकोड फ़ाइल है, जिसे एलटीओ बैकएंड में इनपुट किया जाता है.
thinlto_output_object_file string; या None; डिफ़ॉल्ट रूप से None
होता है यह LTO बैकएंड से आउटपुट की गई ऑब्जेक्ट फ़ाइल होती है.
use_pic डिफ़ॉल्ट रूप से False
होता है 'सही है' पर सेट होने पर, कंपाइलेशन से पोज़िशन इंडिपेंडेंट कोड जनरेट होगा.
add_legacy_cxx_options डिफ़ॉल्ट वैल्यू False
Unused है.
variables_extension dict; डिफ़ॉल्ट रूप से unbound
होता है यह एक डिक्शनरी है, जिसमें कंपाइल ऐक्शन के लिए इस्तेमाल किए गए अतिरिक्त वैरिएबल की जानकारी होती है.

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 डिफ़ॉल्ट रूप से, None
feature_configuration के लिए क्वेरी की जाती है.
cc_toolchain डिफ़ॉल्ट रूप से None
होता है इस्तेमाल की जाने वाली CcToolchainInfo कंपनी.
static_library File; या None; डिफ़ॉल्ट रूप से None
होता है लिंक की जाने वाली स्टैटिक लाइब्रेरी का File.
pic_static_library File; या None; डिफ़ॉल्ट रूप से None
होता है लिंक की जाने वाली pic स्टैटिक लाइब्रेरी का File.
dynamic_library File; या None; डिफ़ॉल्ट रूप से None
होता है लिंक की जाने वाली डाइनैमिक लाइब्रेरी का File. इसका इस्तेमाल हमेशा रनटाइम के लिए किया जाता है. साथ ही, अगर interface_library पास नहीं किया जाता है, तो इसका इस्तेमाल लिंकिंग के लिए किया जाता है.
interface_library File; या None; डिफ़ॉल्ट रूप से None
होता है लिंक किए जाने वाले इंटरफ़ेस लाइब्रेरी का File.
pic_objects sequence of Files; डिफ़ॉल्ट रूप से unbound
होता है एक्सपेरिमेंटल, इसका इस्तेमाल न करें
objects sequence of Files; डिफ़ॉल्ट रूप से unbound
होता है एक्सपेरिमेंटल, इसका इस्तेमाल न करें
डिफ़ॉल्ट वैल्यू 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; या depset; डिफ़ॉल्ट रूप से None
होता है यह उन डायरेक्ट्री का depset है जहां लिंकर, लिंक करने के समय लाइब्रेरी खोजेगा.
None; या depset; डिफ़ॉल्ट रूप से None
होता है यह उन डायरेक्ट्री का depset होता है जहां लोडर, रनटाइम के दौरान लाइब्रेरी खोजेगा.
None; या sequence; डिफ़ॉल्ट तौर पर None
होता है अतिरिक्त लिंक फ़्लैग (linkopts) की सूची.
डिफ़ॉल्ट वैल्यू None
है आउटपुट फ़ाइल का पाथ देना ज़रूरी नहीं है.
डिफ़ॉल्ट वैल्यू None
है पैरामीटर फ़ाइल का पाथ देने का विकल्प.
डिफ़ॉल्ट वैल्यू None
है .def फ़ाइल का पाथ देना ज़रूरी नहीं है.
डिफ़ॉल्ट वैल्यू True
है लिंकर का इस्तेमाल करते समय True और आर्काइवर का इस्तेमाल करते समय False. कॉलर की यह ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक करे. अगर एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी को लिंक किया जा रहा है, तो is_using_linker = True का इस्तेमाल करें. अगर स्टैटिक लाइब्रेरी को संग्रहित किया जा रहा है, तो is_using_linker = False का इस्तेमाल करें.
डिफ़ॉल्ट रूप से False
है डाइनैमिक लाइब्रेरी बनाते समय, यह True दिखाता है. एक्ज़ीक्यूटेबल या स्टैटिक लाइब्रेरी बनाते समय, यह False दिखाता है. कॉल करने वाला व्यक्ति, इस नाम को इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक करने के लिए ज़िम्मेदार होता है. Skylark से जुड़ी समस्याएं ठीक होने के बाद, इस फ़ील्ड को हटा दिया जाएगा.
डिफ़ॉल्ट रूप से True
पर सेट होता है इसे False पर सेट करने पर, Bazel 'strip_debug_symbols' वैरिएबल को दिखाएगा. इसका इस्तेमाल आम तौर पर, लिंकर का इस्तेमाल करके आउटपुट फ़ाइल से डीबग सिंबल हटाने के लिए किया जाता है.
डिफ़ॉल्ट तौर पर False
है इसे सही पर सेट करने पर, 'is_cc_test' वैरिएबल सेट हो जाएगा.
डिफ़ॉल्ट वैल्यू True
Unused है.

create_linker_input

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

LinkerInput बनाता है.

पैरामीटर

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

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; या depset; डिफ़ॉल्ट रूप से None
होता है LinkerInput का depset.
None; या sequence; डिफ़ॉल्ट रूप से None
होता है अब इस्तेमाल नहीं किया जा सकता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इसके भरोसे न रहें. --+incompatible_require_linker_input_cc_api के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, इस एपीआई के हटने के बाद भी सही तरीके से काम करेगा.
LibraryToLink की सूची.
None; या sequence; डिफ़ॉल्ट रूप से None
होता है अब इस्तेमाल नहीं किया जा सकता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इसके भरोसे न रहें. --+incompatible_require_linker_input_cc_api के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, इस एपीआई के हटने के बाद भी सही तरीके से काम करेगा.
उपयोगकर्ता के लिंक किए गए खातों के फ़्लैग की सूची, जिसे स्ट्रिंग के तौर पर पास किया जाता है.
additional_inputs None; या sequence; डिफ़ॉल्ट रूप से None
होता है अब इस्तेमाल नहीं किया जा सकता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इसके भरोसे न रहें. --+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)

इसका इस्तेमाल लाइब्रेरी के ऐसे नियम बनाने के लिए किया जाना चाहिए जो जानकारी को डाउनस्ट्रीम में भेज सकें, ताकि बाद में उन्हें टॉप लेवल के ऐसे नियम से लिंक किया जा सके जो ट्रांज़िटिव लिंकिंग करता है. इससे एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी बनाई जा सकती है. यह (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 डिफ़ॉल्ट वैल्यू False
है क्या स्टैटिक लाइब्रेरी बनाई जानी चाहिए.
disallow_dynamic_library डिफ़ॉल्ट वैल्यू False
है यह तय करता है कि डाइनैमिक लाइब्रेरी बनाई जानी चाहिए या नहीं.

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)

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

पैरामीटर

पैरामीटर ब्यौरा
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=[], additional_outputs=unbound)

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

पैरामीटर

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

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 डिफ़ॉल्ट वैल्यू []
है