cc_common

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 8.0 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 चालू है, तो True दिखाता है.

पैरामीटर

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

CcToolchainInfo

Provider cc_common.CcToolchainInfo

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

कंपाइल करना

tuple cc_common.compile(actions, feature_configuration, cc_toolchain, srcs=[], public_hdrs=[], private_hdrs=[], includes=[], quote_includes=[], system_includes=[], framework_includes=[], defines=[], local_defines=[], include_prefix='', strip_include_prefix='', user_compile_flags=[], conly_flags=[], cxx_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 डिफ़ॉल्ट तौर पर []
है srcs को कंपाइल करने के लिए ज़रूरी हेडर की सूची. साथ ही, इन हेडर को ट्रांज़िशन के हिसाब से, डिपेंडेंट नियमों में शामिल किया जा सकता है.
private_hdrs डिफ़ॉल्ट तौर पर []
srcs को कंपाइल करने के लिए ज़रूरी हेडर की सूची. साथ ही, यह सूची उन नियमों में शामिल नहीं की जानी चाहिए जो इस पर निर्भर हैं.
includes sequence या depset; डिफ़ॉल्ट तौर पर, []
होता है ऐंगल ब्रैकेट और कोटेशन, दोनों के ज़रिए रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ. आम तौर पर, -I के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है.
quote_includes डिफ़ॉल्ट तौर पर, []
कोटेशन में शामिल हेडर फ़ाइलों के लिए खोज के पाथ. उदाहरण के लिए, #include "foo/bar/header.h". ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, -iquote के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है.
system_includes डिफ़ॉल्ट []
ऐंगल ब्रैकेट से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ, जैसे कि #include <foo/bar/header.h>. ये, exec रूट के हिसाब से या एब्सोलूट हो सकते हैं. आम तौर पर, -isystem के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है.
framework_includes डिफ़ॉल्ट तौर पर, यह []
होता है Apple फ़्रेमवर्क से हेडर फ़ाइलों के लिए खोज पाथ. ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, -F के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है.
defines डिफ़ॉल्ट तौर पर []
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है.
local_defines डिफ़ॉल्ट तौर पर []
इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट के लिए लागू नहीं होता.
include_prefix डिफ़ॉल्ट रूप से ''
होता है इस नियम के हेडर के पाथ में जोड़ने के लिए प्रीफ़िक्स. सेट होने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को इस एट्रिब्यूट की वैल्यू पर ऐक्सेस किया जा सकता है. यह वैल्यू, रिपॉज़िटरी के हिसाब से तय किए गए पाथ के आगे जोड़ी जाती है. इस प्रीफ़िक्स को जोड़ने से पहले, strip_include_prefix एट्रिब्यूट में मौजूद प्रीफ़िक्स हटा दिया जाता है.
strip_include_prefix डिफ़ॉल्ट रूप से ''
होता है इस नियम के हेडर के पाथ से हटाने के लिए प्रीफ़िक्स. सेट होने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को उनके पाथ पर ऐक्सेस किया जा सकता है. हालांकि, इस पाथ से प्रीफ़िक्स हटा दिया जाता है. अगर यह रिलेटिव पाथ है, तो इसे पैकेज के हिसाब से रिलेटिव पाथ माना जाता है. अगर यह ऐब्सलूट पाथ है, तो इसे रिपॉज़िटरी से रिलेटिव पाथ माना जाता है. इस प्रीफ़िक्स को हटाने के बाद, include_prefix एट्रिब्यूट में प्रीफ़िक्स जोड़ा जाता है.
user_compile_flags डिफ़ॉल्ट तौर पर, यह []
होता है कंपाइल करने के अन्य विकल्पों की सूची.
conly_flags डिफ़ॉल्ट तौर पर, यह []
होता है C कंपाइल के लिए, कंपाइल करने के विकल्पों की अतिरिक्त सूची.
cxx_flags डिफ़ॉल्ट रूप से []
C++ कंपाइल करने के लिए, कंपाइल करने के विकल्पों की अतिरिक्त सूची.
compilation_contexts डिफ़ॉल्ट तौर पर, []
कंपाइलेशन के लिए इस्तेमाल की जाने वाली डिपेंडेंसी के हेडर.
name ज़रूरी है
इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट के नाम देने के लिए किया जाता है. `main_output` आर्ग्युमेंट भी देखें.
disallow_pic_outputs डिफ़ॉल्ट तौर पर, यह False
होता है इससे यह तय होता है कि पीआईसी आउटपुट बनाने हैं या नहीं.
disallow_nopic_outputs डिफ़ॉल्ट False
यह तय करता है कि NOPIC आउटपुट बनाने हैं या नहीं.
additional_inputs डिफ़ॉल्ट तौर पर []
होता है srcs को कंपाइल करने के लिए ज़रूरी अतिरिक्त फ़ाइलों की सूची

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

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++ कंपाइलेशन के लिए, पहले से मौजूद शामिल डायरेक्ट्री. ये ऐसे सटीक पाथ होने चाहिए जिनका इस्तेमाल कंपाइलर करता है. आम तौर पर, ये पाथ 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 स्ट्रिंग या None; डिफ़ॉल्ट तौर पर None
इस्तेमाल में मौजूद एबीआई, जो gcc वर्शन है. उदाहरण: "gcc-3.4"
abi_libc_version string या None; डिफ़ॉल्ट रूप से None
वह glibc वर्शन जिसका इस्तेमाल, इस्तेमाल किए जा रहे abi में किया जाता है.
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>. ये, 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
होता है कंपाइलेशन के लिए ज़रूरी नहीं है. कृपया source_file को cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में जोड़ने के बजाय, यहां पास करें. ऐसा करने पर, टूलचेन के लेखक के पास कंपाइलर फ़्लैग को सही तरीके से तय करने और उनकी जगह तय करने का विकल्प होता है.
output_file डिफ़ॉल्ट रूप से None
कंपाइलेशन की वैकल्पिक आउटपुट फ़ाइल. कृपया output_file को cc_common.get_memory_inefficient_command_line से जनरेट की गई कमांड लाइन के आखिर में जोड़ने के बजाय, यहां पास करें. ऐसा करने पर, टूलचेन के लेखक के पास कंपाइलर फ़्लैग को सही तरीके से तय करने और उनकी पोज़िशन तय करने का विकल्प होता है.
user_compile_flags स्ट्रिंग का क्रम या None; डिफ़ॉल्ट तौर पर None
अतिरिक्त कंपाइलेशन फ़्लैग (copts) की सूची.
include_directories depset या None; डिफ़ॉल्ट रूप से None
होता है शामिल की गई डायरेक्ट्री का डेपसेट.
quote_include_directories depset या None; डिफ़ॉल्ट रूप से None
कोटेशन के डेपसेट में डायरेक्ट्री शामिल होती हैं.
system_include_directories depset या None; डिफ़ॉल्ट रूप से None
सिस्टम की Depset में डायरेक्ट्री शामिल होती हैं.
framework_include_directories depset या None; डिफ़ॉल्ट None
होता है फ़्रेमवर्क के Depset में डायरेक्ट्री शामिल होती हैं.
preprocessor_defines depset या None; डिफ़ॉल्ट रूप से None
प्रीप्रोसेसर की परिभाषाओं का डेपसेट.
thinlto_index string या None; डिफ़ॉल्ट तौर पर None
LTO इंडेक्स फ़ाइल का पाथ.
thinlto_input_bitcode_file string या None; डिफ़ॉल्ट रूप से None
बिटकोड फ़ाइल, जो LTO बैकएंड में इनपुट होती है.
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
--whole_archive ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं.
स्ट्रिंग; डिफ़ॉल्ट तौर पर, यह ''
होता है 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
होती है लिंकर का इस्तेमाल करने पर True और संग्रहित करने वाले टूल का इस्तेमाल करने पर False. कॉलर को इस बात का ध्यान रखना होगा कि यह इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक हो. इसकी वजह यह है कि इसकी मदद से, एक्सीक्यूटेबल या डाइनैमिक लाइब्रेरी को लिंक करने के लिए is_using_linker = True और स्टैटिक लाइब्रेरी को संग्रहित करने के लिए is_using_linker = False का इस्तेमाल किया जाता है.
डिफ़ॉल्ट रूप से, यह False
पर सेट होता है डाइनैमिक लाइब्रेरी बनाते समय True और एक्सीक्यूटेबल या स्टैटिक लाइब्रेरी बनाते समय False. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक रखे. b/65151735 को ठीक करने के बाद, इस फ़ील्ड को हटा दिया जाएगा.
डिफ़ॉल्ट रूप से True
पर सेट होता है इसे False पर सेट करने पर, bazel 'strip_debug_symbols' वैरिएबल को एक्सपोज़ करेगा. आम तौर पर, इसका इस्तेमाल आउटपुट फ़ाइल से डीबग सिंबल हटाने के लिए, लिंकर का इस्तेमाल करने के लिए किया जाता है.
डिफ़ॉल्ट 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) में से किसी एक को स्वीकार करता है. हम इस तरीके का सुझाव नहीं देते, क्योंकि इसे सिर्फ़ काम करने के मकसद से रखा जाता है. इसमें डिप्सेट को फ़्लैट कर दिया जाता है. अगर आपको unflattened depsets() के ज़रिए user_link_flags को प्रॉपेगेट करना है, तो उन्हें 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 का Depset.
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)

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

पैरामीटर

पैरामीटर ब्यौरा
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; डिफ़ॉल्ट तौर पर 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 डिफ़ॉल्ट []
है