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

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

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

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

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

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

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

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

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

तर्क:

action_name: यह कॉन्फ़िगरेशन, Basel कार्रवाई का नाम है, जैसे कि 'c-compile' या 'c-module-compile'.

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

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

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

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

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

तर्क:

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

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 वर्शन जिसे हम इस्तेमाल कर रहे हैं.
tool_paths टूल की जगह की जानकारी, []
डिफ़ॉल्ट तौर पर सेट है.

तर्क:

name: टूल का नाम.

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

make_variables डिफ़ॉल्ट [] है
यह एक मेक वैरिएबल है, जिसे नियमों से ऐक्सेस किया जा सकता है.
builtin_sysroot string; या None; डिफ़ॉल्ट रूप से यह None
पहले से मौजूद सिस्टम होती है. अगर यह एट्रिब्यूट मौजूद नहीं है, तो Basel अलग सिस्टम का इस्तेमाल करने की अनुमति नहीं देता है. जैसे, --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
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह डिपेंडेंट वैरिएबल में ट्रांज़िटिव तौर पर लागू होता है.
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 पर सेट है
कंपाइलेशन के लिए सोर्स फ़ाइल ज़रूरी नहीं है. कृपया cc_common.get_memory_in खर्च_command_line से जनरेट की गई कमांड लाइन के आखिर में जोड़ने के बजाय, source_file को यहां पास करें. ऐसा करना इसलिए ज़रूरी है, क्योंकि यह टूलचेन लेखक की ज़िम्मेदारी है कि वह कंपाइलर फ़्लैग को सही तरीके से तय कर सके और उसकी जगह तय कर सके.
output_file डिफ़ॉल्ट रूप से None
कंपाइलेशन की वैकल्पिक आउटपुट फ़ाइल. cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में, इसे जोड़ने के बजाय इसके आउटपुट_file को यहां पास करें. ऐसा करना इसलिए ज़रूरी है, क्योंकि यह टूलचेन लेखक की ज़िम्मेदारी है कि वह कंपाइलर फ़्लैग को सही तरीके से तय कर सके और उसकी जगह तय कर सके.
user_compile_flags string या None का सीक्वेंस; यह डिफ़ॉल्ट रूप से None
अतिरिक्त कंपाइलेशन फ़्लैग (कॉप्ट) की सूची है.
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
बिटकोड फ़ाइल होती है, जो एलटीओ बैकएंड में डाली जाती है.
thinlto_output_object_file string; या None; डिफ़ॉल्ट रूप से None
ऑब्जेक्ट फ़ाइल होती है, जो LTO बैकएंड से आउटपुट होती है.
use_pic डिफ़ॉल्ट रूप से False
अगर यह 'सही' पर सेट है, तो कंपाइलेशन से पोज़िशन पर निर्भर न करने वाला कोड जनरेट होगा.
add_legacy_cxx_options डिफ़ॉल्ट तौर पर, False
इस्तेमाल नहीं किया गया है.
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 फ़ाइल या 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 पर सेट होता है
--इस यूआरएल में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को --whatle_archive ब्लॉक में लिंक करना है या नहीं.
string; डिफ़ॉल्ट वैल्यू '' है
सॉलिब डायरेक्ट्री में डाइनैमिक लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए, खाली स्ट्रिंग.
'' डिफ़ॉल्ट है
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 है
डायरेक्ट्री का यह सेट, जहां लिंकर, लिंक करते समय लाइब्रेरी खोजेगा.
None या depset; डिफ़ॉल्ट रूप से None
उन डायरेक्ट्री का depset जहां लोडर, रनटाइम के दौरान लाइब्रेरी खोजेगा.
None या sequence; डिफ़ॉल्ट तौर पर None
होता है अतिरिक्त लिंक फ़्लैग (linkopts) की सूची.
यह डिफ़ॉल्ट तौर पर None है
आउटपुट फ़ाइल का पाथ ज़रूरी नहीं है.
डिफ़ॉल्ट तौर पर None
होता है पैरामीटर फ़ाइल का वैकल्पिक पाथ.
डिफ़ॉल्ट रूप से None
होता है .def फ़ाइल का पाथ ज़रूरी नहीं है.
डिफ़ॉल्ट तौर पर, इसकी वैल्यू True
होती है लिंकर का इस्तेमाल करने पर True और संग्रहित करने वाले टूल का इस्तेमाल करने पर False. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए कार्रवाई नाम के साथ सिंक करे (is_used_linker = सही का इस्तेमाल करके, एक्ज़ीक्यूटेबल या डाइनैमिक लाइब्रेरी से लिंक किया जा सकता है, is_used_linker = False ), स्टैटिक लाइब्रेरी को संग्रहित करने के लिए.
डाइनैमिक लाइब्रेरी बनाते समय यह डिफ़ॉल्ट रूप से सही होती है False
सही है, एक्ज़ीक्यूटेबल या स्टैटिक लाइब्रेरी बनाते समय 'गलत'. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक रखे. b/65151735 को ठीक करने के बाद, इस फ़ील्ड को हटा दिया जाएगा.
यह डिफ़ॉल्ट रूप से True पर सेट है
गलत पर सेट होने पर, बैजल 'strip_debug_simbols' वैरिएबल को दिखाएगा. आम तौर पर इसका इस्तेमाल, लिंकर का इस्तेमाल करके आउटपुट फ़ाइल से डीबग सिंबल को हटाने के लिए किया जाता है.
डिफ़ॉल्ट वैल्यू 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; या क्रम; डिफ़ॉल्ट रूप से 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{'@bazu_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 पर सेट होता है
अगर आउटपुट_टाइप 'लागू' किया जा सकता है, तो लिंक किए गए एक्ज़ीक्यूटेबल में बिल्ड की जानकारी शामिल की जाए या नहीं. अगर 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 डिफ़ॉल्ट रूप से []
है