cc_common

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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=[], 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 डिफ़ॉल्ट रूप से []
होता है यह उन हेडर की सूची है जिनकी ज़रूरत srcs को कंपाइल करने के लिए होती है. साथ ही, इन्हें निर्भरता वाले नियमों में भी शामिल किया जा सकता है.
private_hdrs डिफ़ॉल्ट रूप से []
होता है यह उन हेडर की सूची है जिनकी ज़रूरत src फ़ाइलों को कंपाइल करने के लिए होती है. साथ ही, इन्हें निर्भरता वाले नियमों में शामिल नहीं किया जाना चाहिए.
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 डिफ़ॉल्ट रूप से []
होता है कंपाइल करने के विकल्पों की अतिरिक्त सूची.
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 फ़ाइल में उससे जुड़ी स्ट्रिंग को 'feature' के तौर पर जोड़कर, Bazel में बदलाव किए बिना कोई सुविधा जोड़ी जा सकती है.

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

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

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

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

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

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

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

तर्क:

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

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

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 दिखाता है. कॉल करने वाला व्यक्ति, इस नाम को इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक रखने के लिए ज़िम्मेदार होता है. b/65151735 ठीक हो जाने के बाद, इस फ़ील्ड को हटा दिया जाएगा.
डिफ़ॉल्ट रूप से 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; या depset of strings; या sequence of strings; डिफ़ॉल्ट रूप से 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 का डिप्सेट.
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 डिफ़ॉल्ट वैल्यू []
है