cc_common

समस्या की शिकायत करें सोर्स देखें

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

सुविधा_कॉन्फ़िगरेशन इंस्टेंस बनाता है. 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 में वह वैल्यू मौजूद है जो किसी अलग सुविधा या कार्रवाई कॉन्फ़िगरेशन में ' provided' की है, जिसे हम चालू करना चाहते हैं. इसका इस्तेमाल यह पक्का करने के लिए करें कि एक ही समय में, इसके साथ काम न करने वाली सुविधाओं को गलती से चालू न किया जा सके. इससे कंपाइलर की गड़बड़ियों का पता लगाना मुश्किल होता है.
action_configs यह डिफ़ॉल्ट रूप से [] पर सेट होता है
ऐक्शन कॉन्फ़िगरेशन, Basel ऐक्शन से जुड़ा होता है. साथ ही, इससे चालू सुविधाओं के आधार पर किसी टूल को चुनने की अनुमति मिलती है. कार्रवाई कॉन्फ़िगरेशन को चालू करने के लिए, सुविधाओं की तरह ही सिमेंटिक इस्तेमाल किए जाते हैं: किसी सुविधा के लिए, कार्रवाई से जुड़े कॉन्फ़िगरेशन को उसी तरह 'ज़रूरी' या 'लागू' किया जा सकता है जिस तरह यह किसी अन्य सुविधा के लिए होता है.

तर्क:

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

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

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

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

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

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

तर्क:

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

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

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

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

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

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

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

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

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 वर्शन है. E.g.: "जीसीसी-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
है
quote_includes डिफ़ॉल्ट तौर पर यह unbound है
कोट से रेफ़रंस वाली हेडर फ़ाइलों के लिए खोज पाथ का सेट, जैसे कि #include "foo/bar/header.h". वे exec रूट या ऐब्सलूट के हिसाब से हो सकते हैं. आम तौर पर -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 पर सेट है
कंपाइलेशन की वैकल्पिक आउटपुट फ़ाइल. cc_common.get_memory_in खर्च_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 File या 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 है
डायरेक्ट्री का डिप्सेट, जहां लोडर रनटाइम के दौरान लाइब्रेरी खोजेगा.
None; या क्रम; None डिफ़ॉल्ट है
अतिरिक्त लिंक फ़्लैग (linkopts) की सूची.
यह डिफ़ॉल्ट तौर पर None है
आउटपुट फ़ाइल का पाथ ज़रूरी नहीं है.
यह डिफ़ॉल्ट पैरामीटर है None
वैकल्पिक पैरामीटर फ़ाइल पाथ.
डिफ़ॉल्ट तौर पर None है
.def फ़ाइल पाथ ज़रूरी नहीं है.
लिंकर का इस्तेमाल करते समय यह डिफ़ॉल्ट रूप से True
'सही' पर सेट होती है. हालांकि, आर्काइवर में इसका इस्तेमाल 'गलत' होता है. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए कार्रवाई नाम के साथ सिंक करे (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; या स्ट्रिंग का depset; या स्ट्रिंग का क्रम है. यह डिफ़ॉल्ट रूप से 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 का डिप्सेट.
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{'@bagel_tools//tools/cpp:compiler'} में माइग्रेट करने में मदद करना है

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

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

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
feature_configuration
क्वेरी के लिए सुविधा के कॉन्फ़िगरेशन की ज़रूरत है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @bazen_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/ba इमारतोंbuild/bagel/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 ज़रूरी है
कार्रवाई का नाम. यह @bazen_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/ba इमारतोंbuild/bagel/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 ज़रूरी है
कार्रवाई का नाम. यह @bazen_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/ba इमारतोंbuild/bagel/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 ज़रूरी है
कार्रवाई का नाम. यह @bazen_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/ba इमारतोंbuild/bagel/blob/Master/tools/build_defs/cc/action_names.bzl)

is_enabled

bool cc_common.is_enabled(feature_configuration, feature_name)

अगर सुविधा के कॉन्फ़िगरेशन में दी गई सुविधा चालू है, तो 'सही' दिखाता है.

पैरामीटर

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