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

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 सूची. अगर दी गई सुविधा चालू है, तो एनवायरमेंट सेट उन कार्रवाइयों के लिए लागू किए जाएंगे जिनके लिए उन्हें तय किया गया है.

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
होता है कंपाइलेशन के लिए, सोर्स फ़ाइल (ज़रूरी नहीं). कृपया cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में source_file जोड़ने के बजाय, इसे यहां पास करें. ऐसा इसलिए, क्योंकि इससे टूलचेन के लेखक को कंपाइलर फ़्लैग को सही तरीके से तय करने और उन्हें सही जगह पर रखने का अधिकार मिलता है.
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
होता है प्रीप्रोसेसर की परिभाषाओं का डिप्सेट.
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 है
लिंकर का इस्तेमाल करते समय यह 'सही है' और आर्काइवर का इस्तेमाल करते समय 'गलत है' होती है. कॉलर, इस्तेमाल किए गए ऐक्शन के नाम के साथ इसे सिंक करने के लिए ज़िम्मेदार होता है. अगर एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी को लिंक किया जा रहा है, तो is_using_linker = True. अगर स्टैटिक लाइब्रेरी को संग्रहित किया जा रहा है, तो is_using_linker = False.
डिफ़ॉल्ट वैल्यू 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; या 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 का डिप्सेट.
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 है
डिपेंडेंसी को स्टैटिक तौर पर लिंक करने के लिए, यह 'सही' होती है. वहीं, डाइनैमिक तौर पर लिंक करने के लिए, यह 'गलत' होती है.
stamp डिफ़ॉल्ट वैल्यू 0
है अगर output_type 'executable' है, तो लिंक किए गए एक्ज़ीक्यूटेबल में बिल्ड की जानकारी शामिल करनी है या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर 0 (डिफ़ॉल्ट बिल्ड की जानकारी हमेशा शामिल नहीं की जाती. अगर वैल्यू -1 है, तो डिफ़ॉल्ट सेटिंग का इस्तेमाल किया जाता है. इसे --[no]stamp फ़्लैग से बदला जा सकता है. टेस्ट के नियमों के लिए एक्ज़ीक्यूटेबल आउटपुट जनरेट करते समय, इसे अनसेट किया जाना चाहिए या 0 पर सेट किया जाना चाहिए.
additional_inputs sequence या depset; डिफ़ॉल्ट रूप से []
होता है लिंक करने की कार्रवाई के लिए अतिरिक्त इनपुट. उदाहरण के लिए: स्क्रिप्ट लिंक करना.
additional_outputs sequence; default is unbound
For additional outputs to the linking action, e.g.: map files.

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