cc_common

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है C++ कंपाइलेशन, लिंक करने, और कमांड लाइन बनाने में मदद करने वाली सुविधाएं.

सदस्य

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

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

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
Action_config का नाम.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

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

कंपाइल करें

tuple cc_common.compile(actions, feature_configuration, cc_toolchain, srcs=[], public_hdrs=[], private_hdrs=[], includes=[], quote_includes=[], system_includes=[], framework_includes=[], defines=[], local_defines=[], include_prefix='', strip_include_prefix='', user_compile_flags=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[])

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

पैरामीटर

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

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

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

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

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

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

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

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

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

तर्क:

action_name: Basel की उस कार्रवाई का नाम जिस पर यह कॉन्फ़िगरेशन लागू होता है, जैसे कि 'सी-कंपाइल' या 'c-मॉड्यूल-कंपाइल' का इस्तेमाल न करें.

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 वर्शन है. उदाहरण: "जीसीसी-3.4"
abi_libc_version string; या None; डिफ़ॉल्ट रूप से None
है हम जिस abi का इस्तेमाल कर रहे हैं उसका 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
है इस टारगेट को इकट्ठा करने के लिए, तय की गई वैल्यू का सेट. हर परिभाषा एक स्ट्रिंग होती है. यह ट्रांज़िटिव तौर पर, डिपेंडेंट लोगों को डिलीवर किया जा सकता है.
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_inefficient_command_line से जनरेट की गई कमांड लाइन के अंत में इसे जोड़ने के बजाय, window_file को यहां पास करने को प्राथमिकता दें, क्योंकि फिर यह टूलचेन लेखक की ज़िम्मेदारी है कि वह कंपाइलर फ़्लैग को सही तरीके से तय कर सके और उसकी जगह तय कर सके.
user_compile_flags स्ट्रिंग का सीक्वेंस; या 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
है एलटीओ इंडेक्स फ़ाइल का पाथ.
thinlto_input_bitcode_file string; या None; डिफ़ॉल्ट रूप से None
है LTO बैकएंड में इनपुट करने वाली बिटकोड फ़ाइल.
thinlto_output_object_file string; या None; डिफ़ॉल्ट रूप से None
है वह ऑब्जेक्ट फ़ाइल जो एलटीओ बैकएंड से आउटपुट करती है.
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
है --पूरा_संग्रह ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं.
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
है डायरेक्ट्री का सेट, जहां लिंकर लिंक के समय लाइब्रेरी ढूंढेगा.
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; या स्ट्रिंग का डिप्सेट; या स्ट्रिंग के सीक्वेंस; डिफ़ॉल्ट रूप से 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{'@bazu_tools//tools/cpp:compiler'} पर माइग्रेट करने में मदद करना है

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

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

पैरामीटर

पैरामीटर ब्यौरा
feature_configuration ज़रूरी है
सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी की जानी है.
action_name ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/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 ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/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 ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/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 ज़रूरी है
कार्रवाई का नाम. यह @basel_tools//tools/build_defs/cc:action_names.bzl में मौजूद नामों में से एक होना चाहिए (https://github.com/baडेलbuild/baकोईज़ल/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'
है यह 'लागू करने लायक' हो सकता है या 'डाइनैमिक_लाइब्रेरी' शामिल करें.
डिफ़ॉल्ट रूप से True
है डिपेंडेंसी को स्टैटिक रूप से लिंक करने के लिए 'सही', डाइनैमिक तौर पर गलत.
stamp डिफ़ॉल्ट रूप से 0
है अगर आउटपुट_type 'एक्ज़िक्यूट किया जा सकता है' है, तो लिंक किए गए एक्ज़ीक्यूटेबल में बिल्ड की जानकारी शामिल की जाए या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर 0 है (बिल्ड की डिफ़ॉल्ट जानकारी को हमेशा बाहर रखा जाता है. अगर -1, डिफ़ॉल्ट व्यवहार का इस्तेमाल करता है, जिसे --[no]स्टैंप फ़्लैग से बदला जा सकता है. टेस्ट के नियमों के लिए एक्ज़ीक्यूटेबल आउटपुट जनरेट करते समय, इसे सेट नहीं होना चाहिए या 0 पर सेट किया जाना चाहिए.
additional_inputs क्रम; या डिप्सेट; डिफ़ॉल्ट []
है लिंक करने की कार्रवाई के बारे में अतिरिक्त इनपुट के लिए, जैसे कि स्क्रिप्ट लिंक करना.
additional_outputs क्रम; डिफ़ॉल्ट रूप से unbound
है लिंक करने की कार्रवाई के अतिरिक्त आउटपुट के लिए, जैसे कि Maps फ़ाइलें.

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 डिफ़ॉल्ट रूप से []
है