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

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

पैरामीटर

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

configure_features

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

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

पैरामीटर

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

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

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

तर्क:

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

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

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

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

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

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

यह जानकारी देता है: उन नामों की सूची जिनसे यह सुविधा मेल खाती है.

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

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

तर्क:

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

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

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

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

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

artifact_name_patterns default = []

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

तर्क:

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

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

cxx_builtin_include_directories default = []

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

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

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

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

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

toolchain_identifier ज़रूरी है

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

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

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

टूल की जगहें.

तर्क:

name: टूल का नाम.

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

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

create_compilation_context

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

CompilationContext बनाता है.

पैरामीटर

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

create_compilation_outputs

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

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

पैरामीटर

पैरामीटर ब्यौरा
objects depset; or None; default = None
ऑब्जेक्ट फ़ाइलों की सूची.
pic_objects depset; or 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 sequence of strings; or None; डिफ़ॉल्ट = None
कंपाइल करने के लिए इस्तेमाल होने वाले अन्य फ़्लैग (copts) की सूची.
include_directories depset; or None; डिफ़ॉल्ट = None
शामिल की गई डायरेक्ट्री का डिप्सेट.
quote_include_directories depset; or None; डिफ़ॉल्ट = None
कोटेशन में डायरेक्ट्री शामिल हैं.
system_include_directories depset; or None; डिफ़ॉल्ट = None
सिस्टम की डिपसेट में डायरेक्ट्री शामिल होती हैं.
framework_include_directories depset; or None; default = None
फ़्रेमवर्क के Depset में डायरेक्ट्री शामिल होती हैं.
preprocessor_defines depset; or None; default = None
प्रीप्रोसेसर की परिभाषाओं का डिप्सेट.
thinlto_index string; or None; डिफ़ॉल्ट = None
एलटीओ इंडेक्स फ़ाइल का पाथ.
thinlto_input_bitcode_file string; or None; डिफ़ॉल्ट = None
वह बिटकोड फ़ाइल जो LTO बैकएंड में इनपुट की जाती है.
thinlto_output_object_file string; or None; डिफ़ॉल्ट = None
ऑब्जेक्ट फ़ाइल, जिसे LTO बैकएंड से आउटपुट किया जाता है.
use_pic default = False
अगर इसकी वैल्यू 'सही है' पर सेट है, तो कंपाइलेशन से पोज़िशन पर निर्भर न करने वाला कोड जनरेट होगा.
add_legacy_cxx_options default = False
इस्तेमाल नहीं किया जाता.
variables_extension dict; default = 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 default = None
feature_configuration पर क्वेरी की जानी है.
cc_toolchain default = None
CcToolchainInfo सेवा देने वाली कंपनी.
static_library File; or None; डिफ़ॉल्ट = None
File स्टैटिक लाइब्रेरी को लिंक करने के लिए.
pic_static_library File; or None; डिफ़ॉल्ट = None
File की स्टैटिक लाइब्रेरी को लिंक किया जाना है.
dynamic_library File; or None; डिफ़ॉल्ट = कोई नहीं
File डाइनैमिक लाइब्रेरी को लिंक किया जाना चाहिए. रनटाइम के लिए हमेशा इस्तेमाल किया जाता है. साथ ही, interface_library पास न होने पर लिंक करने के लिए भी इस्तेमाल किया जाता है.
interface_library File; or None; डिफ़ॉल्ट = None
File को जोड़ने के लिए इंटरफ़ेस लाइब्रेरी.
pic_objects sequence of Files; default = unbound
एक्सपेरिमेंटल, इसका इस्तेमाल न करें
objects sequence of Files; default = unbound
एक्सपेरिमेंटल, इसका इस्तेमाल न करें
डिफ़ॉल्ट = False
--whole_archive ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं.
string; default = ''
solib डायरेक्ट्री में डाइनैमिक लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए, खाली स्ट्रिंग.
default = ''
solib डायरेक्ट्री में, इंटरफ़ेस लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए, खाली स्ट्रिंग.

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

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

पैरामीटर

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

create_linker_input

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

LinkerInput बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
owner ज़रूरी है
उस टारगेट का लेबल जिसने इस इनपुट में इस्तेमाल की गई सभी फ़ाइलें बनाई हैं.
libraries None; or depset; default = None
LibraryToLink की सूची.
None; or depset of strings; or sequence of strings; default = None
उपयोगकर्ता के लिंक को स्ट्रिंग के तौर पर फ़्लैग किया गया. [String], [[String]] या depset(String) में से किसी एक को स्वीकार करता है. हम इस तरीके का सुझाव नहीं देते, क्योंकि इसे सिर्फ़ काम करने के मकसद से रखा जाता है. इसमें डिप्सेट को फ़्लैट कर दिया जाता है. अगर आपको unflattened depsets() के ज़रिए user_link_flags को प्रॉपेगेट करना है, तो उन्हें LinkerInput में लपेटें, ताकि वे आखिर तक फ़्लैट न हों.
additional_inputs None; or 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; or depset; डिफ़ॉल्ट = None
LinkerInput का Depset.
None; or sequence; default = None
अब काम नहीं करता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. --+incompatible_require_linker_input_cc_api के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है.
LibraryToLink की सूची.
None; or sequence; default = None
अब काम नहीं करता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. --+incompatible_require_linker_input_cc_api के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है.
स्ट्रिंग के तौर पर पास किए गए उपयोगकर्ता लिंक फ़्लैग की सूची.
additional_inputs None; or sequence; default = 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, grep_includes=None)

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

पैरामीटर

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

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

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

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

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

पैरामीटर

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

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

किसी ऐक्शन को लागू करने से जुड़ी ज़रूरी शर्तें दिखाता है.

पैरामीटर

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

get_memory_inefficient_command_line

sequence cc_common.get_memory_inefficient_command_line(feature_configuration, action_name, variables)

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

पैरामीटर

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

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

पैरामीटर

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

merge_cc_infos

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

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

पैरामीटर

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

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

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

पैरामीटर

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

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

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

पैरामीटर

पैरामीटर ब्यौरा
compilation_outputs default = []