cc_common

समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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=[])

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

पैरामीटर

पैरामीटर ब्यौरा
actions
actions ऑब्जेक्ट ज़रूरी है.
feature_configuration
feature_configuration की क्वेरी की जानी चाहिए.
cc_toolchain
CcToolchainInfo कंपनी का इस्तेमाल किया जा सकता है.
srcs यह डिफ़ॉल्ट रूप से [] पर सेट होती है
कंपाइल की जाने वाली सोर्स फ़ाइलों की सूची.
public_hdrs डिफ़ॉल्ट तौर पर []
है srcs को कंपाइल करने के लिए ज़रूरी हेडर की सूची. साथ ही, इन हेडर को ट्रांज़िशन के हिसाब से, डिपेंडेंट नियमों में शामिल किया जा सकता है.
private_hdrs डिफ़ॉल्ट तौर पर []
srcs को कंपाइल करने के लिए ज़रूरी हेडर की सूची. साथ ही, यह सूची उन नियमों में शामिल नहीं की जानी चाहिए जो इन हेडर पर निर्भर हैं.
includes sequence या depset; डिफ़ॉल्ट तौर पर, []
होता है ऐंगल ब्रैकेट और कोटेशन, दोनों के ज़रिए रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ. आम तौर पर, -I के साथ पास किया जाता है. यह ट्रांज़िशन के तौर पर, डिपेंडेंट वैरिएबल में लागू होता है.
quote_includes डिफ़ॉल्ट तौर पर, [] है
हेडर फ़ाइलों के लिए कोटेशन मार्क का इस्तेमाल करके खोज पाथ बनाना, जैसे कि #include "foo/bar/header.h". ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, इसे -iquote के साथ पास किया जाता है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
system_includes डिफ़ॉल्ट []
ऐंगल ब्रैकेट से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ, जैसे कि #include <foo/bar/header.h>. ये, exec रूट के हिसाब से या एब्सोलूट हो सकते हैं. आम तौर पर, -isystem के साथ पास किया जाता है. यह ट्रांज़िशन के तौर पर, डिपेंडेंट वैरिएबल में लागू होता है.
framework_includes यह [] डिफ़ॉल्ट है
Apple फ़्रेमवर्क से हेडर फ़ाइलों के लिए खोज पाथ. ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, -F के साथ पास किया जाता है. यह डेटा, डिपेंडेंट लोगों के लिए एक जगह से दूसरी जगह पर सीधे तौर पर लागू होता है.
defines डिफ़ॉल्ट तौर पर []
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह ट्रांज़िशन के तौर पर, डिपेंडेंट वैरिएबल में लागू होता है.
local_defines डिफ़ॉल्ट तौर पर []
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट के लिए लागू नहीं होता.
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 डिफ़ॉल्ट तौर पर []
होता है srcs को कंपाइल करने के लिए ज़रूरी अतिरिक्त फ़ाइलों की सूची

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: सुविधा का नाम. टूलचेन में 'फ़ीचर' सेक्शन जोड़कर और BUILD फ़ाइल में फ़ीचर के रूप में उससे जुड़ी स्ट्रिंग जोड़कर, Baज़ल में बिना बदलाव किए कोई सुविधा पेश की जा सकती है.

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

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

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

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

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

provides: उन नामों की सूची जिनके साथ यह सुविधा काम नहीं करती.

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

तर्क:

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

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

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

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

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

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

तर्क:

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

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

cxx_builtin_include_directories डिफ़ॉल्ट रूप से []
है

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

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

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

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

अगर कंपाइलर में --sysroot की सुविधा है, तो इन पाथ में शामिल पाथ के बजाय %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
इस्तेमाल में मौजूद abi, जो gcc वर्शन है. उदाहरण: "gcc-3.4"
abi_libc_version string या None; डिफ़ॉल्ट तौर पर None
होता है वह glibc वर्शन जिसका इस्तेमाल, इस्तेमाल किए जा रहे abi में किया जाता है.
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>. ये exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर -isystem के साथ पास किया जाता है
includes डिफ़ॉल्ट रूप से unbound
ऐंगल ब्रैकेट और कोटेशन, दोनों के ज़रिए रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ का सेट.आम तौर पर, -I के साथ पास किया जाता है
quote_includes डिफ़ॉल्ट रूप से unbound
कोटेशन के ज़रिए रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ का सेट, जैसे कि #include "foo/bar/header.h". ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, -iquote के साथ पास किया जाता है
framework_includes यह डिफ़ॉल्ट रूप से unbound पर सेट होता है
हेडर फ़ाइलों के लिए, फ़्रेमवर्क खोज पाथ का सेट (सिर्फ़ Apple प्लैटफ़ॉर्म के लिए)
defines डिफ़ॉल्ट तौर पर unbound
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर परिभाषा एक स्ट्रिंग होती है. यह ट्रांज़िटिव तौर पर, डिपेंडेंट लोगों को डिलीवर किया जा सकता है.
local_defines डिफ़ॉल्ट तौर पर unbound
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. डिपेंडेंट लोगों को ट्रांज़िट के तौर पर लागू नहीं किया जाता.

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 स्ट्रिंग का क्रम या None; डिफ़ॉल्ट तौर पर None
अतिरिक्त कंपाइलेशन फ़्लैग (copts) की सूची.
include_directories depset; या None; डिफ़ॉल्ट तौर पर None
इन्क्लूड डायरेक्ट्री का डिप्सेट होता है.
quote_include_directories depset या None; डिफ़ॉल्ट रूप से None
कोटेशन के डेपसेट में डायरेक्ट्री शामिल होती हैं.
system_include_directories depset; या None; डिफ़ॉल्ट None है
सिस्टम के डिप्सेट में डायरेक्ट्री शामिल हैं.
framework_include_directories depset; या None; डिफ़ॉल्ट None है
फ़्रेमवर्क के डिपसेट में डायरेक्ट्री शामिल हैं.
preprocessor_defines depset या None; डिफ़ॉल्ट रूप से None
प्रीप्रोसेसर की परिभाषाओं का डेपसेट.
thinlto_index string या None; डिफ़ॉल्ट तौर पर None
LTO इंडेक्स फ़ाइल का पाथ.
thinlto_input_bitcode_file string या None; डिफ़ॉल्ट रूप से None
बिटकोड फ़ाइल, जो LTO बैकएंड में इनपुट होती है.
thinlto_output_object_file string या None; डिफ़ॉल्ट तौर पर None
ऑब्जेक्ट फ़ाइल, जो LTO बैकएंड से आउटपुट होती है.
use_pic डिफ़ॉल्ट रूप से False
अगर यह 'सही' पर सेट है, तो कंपाइलेशन से पोज़िशन पर निर्भर न करने वाला कोड जनरेट होगा.
add_legacy_cxx_options डिफ़ॉल्ट तौर पर, False
इस्तेमाल नहीं किया गया है.
variables_extension शब्दकोश; 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 फ़ाइल या None; डिफ़ॉल्ट रूप से, लिंक की जाने वाली स्टैटिक लाइब्रेरी का None
File होता है.
pic_static_library फ़ाइल या None; लिंक करने के लिए, फ़ोटो वाली स्टैटिक लाइब्रेरी का None
File डिफ़ॉल्ट तौर पर सेट है.
dynamic_library फ़ाइल या None; लिंक की जाने वाली डाइनैमिक लाइब्रेरी का डिफ़ॉल्ट रूप None
File है. रनटाइम के लिए हमेशा इस्तेमाल किया जाता है. साथ ही, interface_library पास न होने पर लिंक करने के लिए भी इस्तेमाल किया जाता है.
interface_library फ़ाइल या None; लिंक की जाने वाली इंटरफ़ेस लाइब्रेरी का डिफ़ॉल्ट रूप None
File है.
pic_objects फ़ाइल का क्रम; डिफ़ॉल्ट रूप से unbound
एक्सपेरिमेंटल है, इसका इस्तेमाल न करें
objects फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर unbound
होता है एक्सपेरिमेंट के तौर पर उपलब्ध है, इसका इस्तेमाल न करें
डिफ़ॉल्ट रूप से False
--whole_archive ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं.
स्ट्रिंग; डिफ़ॉल्ट तौर पर, यह ''
होता है 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_used_linker = सही का इस्तेमाल करके, एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी से लिंक किया जा सकता है, is_used_linker = False ), स्टैटिक लाइब्रेरी को संग्रहित करने के लिए.
डिफ़ॉल्ट रूप से, यह False
डाइनैमिक लाइब्रेरी बनाते समय True और एक्ज़ीक्यूटेबल या स्टैटिक लाइब्रेरी बनाते समय False होता है. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक रखे. b/65151735 को ठीक करने के बाद, इस फ़ील्ड को हटा दिया जाएगा.
डिफ़ॉल्ट रूप से True
पर सेट है इसे False पर सेट करने पर, bazel 'strip_debug_symbols' वैरिएबल को एक्सपोज़ करेगा. आम तौर पर, इसका इस्तेमाल आउटपुट फ़ाइल से डीबग सिंबल हटाने के लिए, लिंकर का इस्तेमाल करने के लिए किया जाता है.
डिफ़ॉल्ट False
सही पर सेट करने पर, '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 या depset; डिफ़ॉल्ट None
है LibraryToLink की सूची.
None; या स्ट्रिंग का डेपसेट; या स्ट्रिंग का सीक्वेंस; डिफ़ॉल्ट तौर पर None
उपयोगकर्ता लिंक के फ़्लैग, स्ट्रिंग के तौर पर पास किए जाते हैं. [String], [[String]] या depset(String) को स्वीकार करता है. बाद वाले लेबल का इस्तेमाल नहीं किया जाता, क्योंकि इसे सिर्फ़ साथ काम करने के मकसद से रखा जाता है. साथ ही, डिपसेट को कम कर दिया जाता है. अगर आपको user_link_flags को अनफ़्लैट किए गए depsets() के ज़रिए लागू करना है, तो उन्हें Linkerइनपुट में रैप करें, ताकि वे आखिर तक फ़्लैट न हों.
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; या क्रम; डिफ़ॉल्ट रूप से None
अब काम नहीं करता है. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. --+incompatible_require_linker_input_cc_api के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है.
LibraryToLink की सूची.
None; या क्रम; डिफ़ॉल्ट रूप से 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)

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

पैरामीटर

पैरामीटर ब्यौरा
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
होती है स्टैटिक तौर पर डिपेंडेंसी लिंक करने के लिए 'सही' और डाइनैमिक तौर पर लिंक करने के लिए 'गलत'.
stamp डिफ़ॉल्ट 0
अगर output_type 'executable' है, तो लिंक किए गए एक्सीक्यूटेबल में बिल्ड की जानकारी शामिल करनी है या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर 0 है, तो डिफ़ॉल्ट बिल्ड की जानकारी को हमेशा बाहर रखा जाता है. अगर -1 है, तो डिफ़ॉल्ट तरीके का इस्तेमाल किया जाता है. इसे --[no]stamp फ़्लैग से बदला जा सकता है. टेस्ट के नियमों के लिए एक्ज़ीक्यूटेबल आउटपुट जनरेट करते समय, इसे सेट नहीं होना चाहिए या 0 पर सेट किया जाना चाहिए.
additional_inputs sequence या depset; डिफ़ॉल्ट तौर पर []
होता है लिंक करने की कार्रवाई के लिए अतिरिक्त इनपुट के लिए, जैसे कि लिंक करने वाली स्क्रिप्ट.
additional_outputs क्रम; लिंक करने की कार्रवाई के अतिरिक्त आउटपुट के लिए, 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 डिफ़ॉल्ट रूप से []
है