C++ कोड को कंपाइल करने, लिंक करने, और कमांड लाइन जनरेट करने के लिए उपयोगी टूल.
सदस्य
- action_is_enabled
- CcToolchainInfo
- compile
- configure_features
- create_cc_toolchain_config_info
- create_compilation_context
- create_compilation_outputs
- create_compile_variables
- create_library_to_link
- create_link_variables
- create_linker_input
- create_linking_context
- create_linking_context_from_compilation_outputs
- create_lto_compilation_context
- do_not_use_tools_cpp_compiler_present
- get_environment_variables
- get_execution_requirements
- get_memory_inefficient_command_line
- get_tool_for_action
- is_enabled
- लिंक
- merge_compilation_contexts
- merge_compilation_outputs
action_is_enabled
bool cc_common.action_is_enabled(feature_configuration, action_name)अगर सुविधा के कॉन्फ़िगरेशन में दिया गया action_config चालू है, तो True दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
feature_configuration
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
action_name
|
string;
ज़रूरी है 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=[], module_interfaces=unbound)C++ कंपाइलेशन के लिए इस्तेमाल किया जाना चाहिए. (
CompilationContext
, CcCompilationOutputs
) ट्यूपल दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
actions
|
actions;
ज़रूरीactions ऑब्जेक्ट.
|
feature_configuration
|
FeatureConfiguration;
के लिए ज़रूरी है feature_configuration पर क्वेरी की जा सकती है.
|
cc_toolchain
|
जानकारी;
CcToolchainInfo की सेवा इस्तेमाल करने के लिए ज़रूरी है.
|
srcs
|
sequence;
डिफ़ॉल्ट [] है उन सोर्स फ़ाइलों की सूची जिन्हें कंपाइल करना है. |
public_hdrs
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है srcs को कंपाइल करने के लिए ज़रूरी हेडर की सूची. साथ ही, इन हेडर को ट्रांज़िशन के हिसाब से, डिपेंडेंट नियमों में शामिल किया जा सकता है. |
private_hdrs
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है srcs को कंपाइल करने के लिए ज़रूरी हेडर की सूची. इसे, डिपेंडेंट नियमों में शामिल नहीं किया जाना चाहिए. |
includes
|
sequence या depset;
डिफ़ॉल्ट तौर पर, [] होता है ऐंगल ब्रैकेट और कोटेशन, दोनों के ज़रिए रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ. आम तौर पर, -I के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है. |
quote_includes
|
sequence;
डिफ़ॉल्ट रूप से [] होता है कोटेशन के ज़रिए रेफ़र की गई हेडर फ़ाइलों के लिए पाथ खोजें. उदाहरण के लिए, #include "foo/bar/header.h". ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, -iquote के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है. |
system_includes
|
sequence;
डिफ़ॉल्ट रूप से [] होता है ऐंगल ब्रैकेट से रेफ़र की गई हेडर फ़ाइलों के लिए खोज पाथ, जैसे कि #include <foo/bar/header.h>. ये, exec रूट के हिसाब से या एब्सोलूट हो सकते हैं. आम तौर पर, -isystem के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है. |
framework_includes
|
sequence;
डिफ़ॉल्ट तौर पर, यह [] होता है Apple फ़्रेमवर्क की हेडर फ़ाइलों के लिए पाथ खोजता है. ये, exec रूट के हिसाब से या फिर एब्सोलूट हो सकते हैं. आम तौर पर, -F के साथ पास किया जाता है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है. |
defines
|
sequence;
डिफ़ॉल्ट तौर पर, यह [] होता है इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट वैरिएबल में लागू होता है. |
local_defines
|
sequence;
डिफ़ॉल्ट तौर पर, यह [] होता है इस टारगेट को कंपाइल करने के लिए, ज़रूरी डेफ़ाइन का सेट. हर define एक स्ट्रिंग होती है. यह ट्रांज़िटिव तरीके से, डिपेंडेंट के लिए लागू नहीं होता. |
include_prefix
|
स्ट्रिंग;
डिफ़ॉल्ट तौर पर '' होता है इस नियम के हेडर के पाथ में जोड़ने के लिए प्रीफ़िक्स. सेट होने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को इस एट्रिब्यूट की वैल्यू पर ऐक्सेस किया जा सकता है. यह वैल्यू, उनके रिपॉज़िटरी-रिलेटिव पाथ के आगे जोड़ी जाती है. इस प्रीफ़िक्स को जोड़ने से पहले, strip_include_prefix एट्रिब्यूट में मौजूद प्रीफ़िक्स हटा दिया जाता है. |
strip_include_prefix
|
स्ट्रिंग;
डिफ़ॉल्ट रूप से '' होता है इस नियम के हेडर के पाथ से हटाने के लिए प्रीफ़िक्स. सेट होने पर, इस नियम के hdrs एट्रिब्यूट में मौजूद हेडर को उनके पाथ पर ऐक्सेस किया जा सकता है. हालांकि, इस पाथ से प्रीफ़िक्स हटा दिया जाता है. अगर यह रिलेटिव पाथ है, तो इसे पैकेज के हिसाब से रिलेटिव पाथ माना जाता है. अगर यह ऐब्सलूट पाथ है, तो इसे रिपॉज़िटरी से रिलेटिव पाथ माना जाता है. इस प्रीफ़िक्स को हटाने के बाद, include_prefix एट्रिब्यूट में प्रीफ़िक्स जोड़ा जाता है. |
user_compile_flags
|
sequence;
डिफ़ॉल्ट [] है कंपाइल करने के विकल्पों की अन्य सूची. |
conly_flags
|
sequence;
डिफ़ॉल्ट [] है C कंपाइल के लिए, कंपाइल करने के विकल्पों की अतिरिक्त सूची. |
cxx_flags
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है C++ कंपाइल करने के लिए, कंपाइल करने के विकल्पों की अतिरिक्त सूची. |
compilation_contexts
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है कंपाइलेशन के लिए इस्तेमाल की जाने वाली डिपेंडेंसी के हेडर. |
name
|
स्ट्रिंग;
ज़रूरी है इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट के नाम देने के लिए किया जाता है. `main_output` आर्ग्युमेंट भी देखें. |
disallow_pic_outputs
|
bool;
डिफ़ॉल्ट रूप से False पर सेट होता है यह तय करता है कि पीआईसी आउटपुट बनाने हैं या नहीं. |
disallow_nopic_outputs
|
bool;
डिफ़ॉल्ट तौर पर, यह False होता है यह तय करता है कि NOPIC आउटपुट बनाने हैं या नहीं. |
additional_inputs
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है srcs को कंपाइल करने के लिए ज़रूरी अतिरिक्त फ़ाइलों की सूची |
module_interfaces
|
sequence;
डिफ़ॉल्ट unbound है उन मॉड्यूल इंटरफ़ेस सोर्स फ़ाइलों की सूची जिन्हें कंपाइल करना है. ध्यान दें: यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. इसे सिर्फ़ --experimental_cpp_modules के साथ चालू किया जा सकता है |
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
|
sequence;
डिफ़ॉल्ट रूप से [] होता है चालू की जाने वाली सुविधाओं की सूची. |
unsupported_features
|
sequence;
डिफ़ॉल्ट रूप से [] होता है उन सुविधाओं की सूची जो मौजूदा नियम के साथ काम नहीं करती हैं. |
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=None, target_cpu=None, target_libc=None, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None)
CcToolchainConfigInfo
सेवा देने वाली कंपनी
बनाता है
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
ctx
|
ctx;
ज़रूरी है नियम का संदर्भ. |
features
|
sequence;
डिफ़ॉल्ट रूप से [] होता है इसमें किसी सुविधा के लिए, फ़्लैग की सभी खास बातें शामिल होती हैं. तर्क:
- provides में किसी ऐसी सुविधा या ऐक्शन कॉन्फ़िगरेशन का नाम हो जिसे हमें चालू करना है.- provides में वही वैल्यू हो जो हमें चालू करनी है, किसी ऐसी सुविधा या ऐक्शन कॉन्फ़िगरेशन में 'provides' के तौर पर मौजूद है. इसका इस्तेमाल करके, यह पक्का करें कि एक ही समय पर काम न करने वाली सुविधाएं गलती से चालू न हों. इससे कंपाइलर की गड़बड़ियों का पता लगाना मुश्किल हो जाता है.
|
action_configs
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है ऐक्शन कॉन्फ़िगरेशन, Bazel ऐक्शन से जुड़ा होता है. साथ ही, चालू की गई सुविधाओं के आधार पर टूल चुनने की अनुमति देता है. ऐक्शन कॉन्फ़िगरेशन चालू करने की प्रोसेस, सुविधाओं के लिए इस्तेमाल की जाने वाली प्रोसेस से मिलती-जुलती होती है: किसी सुविधा के लिए, ऐक्शन कॉन्फ़िगरेशन की 'ज़रूरत' हो सकती है या उसे 'इस्तेमाल किया जा सकता है'. यह प्रोसेस, किसी दूसरी सुविधा के लिए भी लागू होती है. तर्क:
|
artifact_name_patterns
|
sequence;
डिफ़ॉल्ट तौर पर, यह [] होता है किसी ऐक्शन के इनपुट या आउटपुट आर्टफ़ैक्ट की किसी कैटगरी के आर्टफ़ैक्ट का नाम. तर्क:
|
cxx_builtin_include_directories
|
sequence;
डिफ़ॉल्ट [] है C++ कंपाइलेशन के लिए, पहले से मौजूद शामिल डायरेक्ट्री. ये ऐसे सटीक पाथ होने चाहिए जिनका इस्तेमाल कंपाइलर करता है. आम तौर पर, ये पाथ exec रूट के हिसाब से होते हैं. कंपाइलर के इस्तेमाल किए गए पाथ का पता लगाने के लिए, 'gcc -E -xc++ - -v' का इस्तेमाल किया जा सकता है. फ़िलहाल, हम C कंपाइलेशन के लिए भी C++ पाथ का इस्तेमाल करते हैं. यह तब तक सुरक्षित है, जब तक C++ और C हेडर फ़ाइलों के नाम एक-दूसरे से मेल न खाते हों. रिलेटिव पाथ, कॉन्फ़िगरेशन फ़ाइल डायरेक्ट्री के हिसाब से हल किए जाते हैं. अगर कंपाइलर में --sysroot की सुविधा है, तो इन पाथ में शामिल पाथ के बजाय %sysroot% का इस्तेमाल किया जाना चाहिए. साथ ही, sysroot एट्रिब्यूट की जानकारी देनी चाहिए, ताकि blaze सही बदलाव कर सके. |
toolchain_identifier
|
string;
required क्रॉसटूल रिलीज़ में टूलचेन का यूनीक आइडेंटिफ़ायर. इसका इस्तेमाल, पाथ में डायरेक्ट्री के नाम के तौर पर किया जा सकता हो. यह इस रेगुलर एक्सप्रेशन से मेल खाना चाहिए: [a-zA-Z_][\.\- \w]* |
host_system_name
|
string या None ;
डिफ़ॉल्ट रूप से None अनदेखा किया जाता है. |
target_system_name
|
string या None ;
डिफ़ॉल्ट None है अब इस्तेमाल नहीं किया जा सकता. GNU सिस्टम का नाम. स्ट्रिंग को CcToolchainInfo.target_gnu_system_name के लिए दिखाया जाता है. |
target_cpu
|
string या None ;
डिफ़ॉल्ट तौर पर None इस्तेमाल नहीं किया जा सकता: इसके बजाय, सीपीयू पर आधारित पाबंदियों का इस्तेमाल करें. अगर स्ट्रिंग "k8" है, तो रॉ FDO प्रोफ़ाइल डेटा के फ़ाइल नाम से `target_cpu` को हटा दिया जाएगा. |
target_libc
|
string या None ;
डिफ़ॉल्ट तौर पर None इस्तेमाल नहीं किया जा सकता: इसके बजाय, ओएस के हिसाब से पाबंदियों का इस्तेमाल करें. libc वर्शन स्ट्रिंग (उदाहरण के लिए, "glibc-2.2.2"). अगर स्ट्रिंग "macosx" है, तो प्लैटफ़ॉर्म को MacOS माना जाता है. इसके अलावा, Linux. स्ट्रिंग को CcToolchainInfo.libc के लिए दिखाया जाता है. |
compiler
|
string;
ज़रूरी है कंपाइलर स्ट्रिंग (उदाहरण के लिए, "gcc"). मौजूदा टूलचेन का कंपाइलर, फ़्लैग वैल्यू के तौर पर `@bazel_tools//tools/cpp:compiler (compiler_flag)` को दिखाया जाता है. जिन टारगेट के लिए कंपाइलर के हिसाब से फ़्लैग की ज़रूरत होती है वे https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD में select() स्टेटमेंट में config_settings का इस्तेमाल कर सकते हैं. इसके अलावा, अगर मौजूदा सेटिंग काफ़ी नहीं हैं, तो कस्टम config_setting बनाई जा सकती है. |
abi_version
|
string या None ;
डिफ़ॉल्ट तौर पर None इस्तेमाल में मौजूद abi, जो gcc वर्शन है. उदाहरण: "gcc-3.4". स्ट्रिंग को C++ टूलचैन वैरिएबल एबीआई पर सेट किया गया है. |
abi_libc_version
|
string या None ;
डिफ़ॉल्ट तौर पर None वह glibc वर्शन जिसका इस्तेमाल, इस्तेमाल किए जा रहे abi में किया जाता है. स्ट्रिंग को C++ टूलचैन वैरिएबल ABI_LIBC_VERSION पर सेट किया गया है. |
tool_paths
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है टूल की जगहें. तर्क:
|
make_variables
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है यह एक ऐसा मेक वैरिएबल है जिसे नियमों के लिए ऐक्सेस किया जा सकता है. |
builtin_sysroot
|
string या None ;
डिफ़ॉल्ट तौर पर None पहले से मौजूद sysroot. अगर यह एट्रिब्यूट मौजूद नहीं है, तो Bazel किसी दूसरे sysroot का इस्तेमाल करने की अनुमति नहीं देता. जैसे, --grte_top विकल्प का इस्तेमाल करके. |
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
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
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
|
bool;
डिफ़ॉल्ट रूप से False पर सेट होता है अगर इसकी वैल्यू 'सही' है, तो कंपाइलेशन में पोज़िशन पर निर्भर न करने वाला कोड जनरेट होगा. |
add_legacy_cxx_options
|
bool;
डिफ़ॉल्ट False है इस्तेमाल नहीं किया जाता. |
variables_extension
|
dict;
डिफ़ॉल्ट रूप से unbound होता है कंपाइल ऐक्शन में इस्तेमाल किए जाने वाले अन्य वैरिएबल की डिक्शनरी. |
create_library_to_link
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 होता है एक्सपेरिमेंट के तौर पर उपलब्ध है, इसका इस्तेमाल न करें |
alwayslink
|
bool;
डिफ़ॉल्ट रूप से False पर सेट होता है --whole_archive ब्लॉक में स्टैटिक लाइब्रेरी/ऑब्जेक्ट को लिंक करना है या नहीं. |
dynamic_library_symlink_path
|
स्ट्रिंग;
डिफ़ॉल्ट तौर पर, यह '' होता है solib डायरेक्ट्री में डाइनैमिक लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए, खाली स्ट्रिंग. |
interface_library_symlink_path
|
स्ट्रिंग;
डिफ़ॉल्ट तौर पर, यह '' होता है solib डायरेक्ट्री में इंटरफ़ेस लाइब्रेरी लिंक के डिफ़ॉल्ट पाथ को बदलें. डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए, खाली स्ट्रिंग. |
create_link_variables
Variables cc_common.create_link_variables(cc_toolchain, feature_configuration, library_search_directories=[], runtime_library_search_directories=[], user_link_flags=[], output_file=None, param_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
|
जानकारी;
ज़रूरी है cc_toolchain, जिसके लिए हम बिल्ड वैरिएबल बना रहे हैं. |
feature_configuration
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
library_search_directories
|
depset;
डिफ़ॉल्ट रूप से [] होता है उन डायरेक्ट्री का डेपसेट जहां लिंकर, लिंक करने के समय लाइब्रेरी खोजेगा. |
runtime_library_search_directories
|
depset;
डिफ़ॉल्ट रूप से [] होता है उन डायरेक्ट्री का डेपसेट जहां लोडर, रनटाइम के दौरान लाइब्रेरी खोजेगा. |
user_link_flags
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है अन्य लिंक फ़्लैग (linkopts) की सूची. |
output_file
|
डिफ़ॉल्ट None आउटपुट फ़ाइल का पाथ. यह वैकल्पिक है. |
param_file
|
डिफ़ॉल्ट तौर पर None पैरामीटर फ़ाइल का वैकल्पिक पाथ. |
is_using_linker
|
bool;
डिफ़ॉल्ट रूप से True पर सेट होती है लिंकर का इस्तेमाल करने पर 'सही' और संग्रहक का इस्तेमाल करने पर 'गलत'. कॉलर को इस बात का ध्यान रखना होगा कि यह इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक हो. इसकी वजह यह है कि इसकी मदद से, एक्सीक्यूटेबल या डाइनैमिक लाइब्रेरी को लिंक करने के लिए is_using_linker = True और स्टैटिक लाइब्रेरी को संग्रहित करने के लिए is_using_linker = False का इस्तेमाल किया जाता है. |
is_linking_dynamic_library
|
bool;
डिफ़ॉल्ट रूप से False होता है डाइनैमिक लाइब्रेरी बनाते समय True, और एक्ज़ीक्यूटेबल या स्टैटिक लाइब्रेरी बनाते समय False. कॉलर की ज़िम्मेदारी है कि वह इसे इस्तेमाल किए गए ऐक्शन के नाम के साथ सिंक रखे. b/65151735 को ठीक करने के बाद, इस फ़ील्ड को हटा दिया जाएगा. |
must_keep_debug
|
bool;
डिफ़ॉल्ट तौर पर True होता है अगर इसे 'गलत है' पर सेट किया जाता है, तो bazel 'strip_debug_symbols' वैरिएबल को एक्सपोज़ करेगा. आम तौर पर, इसका इस्तेमाल आउटपुट फ़ाइल से डीबग सिंबल हटाने के लिए, लिंकर का इस्तेमाल करने के लिए किया जाता है. |
use_test_only_flags
|
bool;
डिफ़ॉल्ट तौर पर False होता है सही पर सेट करने पर, 'is_cc_test' वैरिएबल सेट हो जाएगा. |
is_static_linking_mode
|
bool;
डिफ़ॉल्ट 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 की सूची.
|
user_link_flags
|
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 है.
|
libraries_to_link
|
None या sequence;
डिफ़ॉल्ट None है अब काम नहीं करता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. --incompatible_require_linker_input_cc_api के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. LibraryToLink की सूची.
|
user_link_flags
|
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, name, feature_configuration, cc_toolchain, language='c++', disallow_static_libraries=False, disallow_dynamic_library=False, compilation_outputs, linking_contexts=[], user_link_flags=[], alwayslink=False, additional_inputs=[], variables_extension=unbound)इसका इस्तेमाल लाइब्रेरी के ऐसे नियम बनाने के लिए किया जाना चाहिए जो जानकारी को डाउनस्ट्रीम में भेज सकें, ताकि बाद में उसे किसी टॉप लेवल नियम से लिंक किया जा सके. यह नियम, किसी एक्सीक्यूटेबल या डाइनैमिक लाइब्रेरी बनाने के लिए ट्रांज़िशन लिंकिंग करता है. (
CcLinkingContext
, CcLinkingOutputs
) ट्यूपल दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
actions
|
actions;
ज़रूरीactions ऑब्जेक्ट.
|
name
|
स्ट्रिंग;
ज़रूरी है इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट के नाम देने के लिए किया जाता है. |
feature_configuration
|
FeatureConfiguration;
के लिए ज़रूरी है feature_configuration पर क्वेरी की जा सकती है.
|
cc_toolchain
|
जानकारी;
CcToolchainInfo के लिए ज़रूरी है.
|
language
|
string;
डिफ़ॉल्ट 'c++' है फ़िलहाल, सिर्फ़ C++ के साथ काम करता है. इस पैरामीटर का इस्तेमाल न करें. |
disallow_static_libraries
|
bool;
डिफ़ॉल्ट रूप से False होता है क्या स्टैटिक लाइब्रेरी बनाई जानी चाहिए. |
disallow_dynamic_library
|
bool;
डिफ़ॉल्ट रूप से False होता है क्या डाइनैमिक लाइब्रेरी बनाई जानी चाहिए. |
compilation_outputs
|
CcCompilationOutputs;
ज़रूरी है कंपाइलेशन आउटपुट, जिनमें लिंक करने के लिए ऑब्जेक्ट फ़ाइलें होती हैं. |
linking_contexts
|
sequence;
डिफ़ॉल्ट रूप से [] होता है डिपेंडेंसी से लाइब्रेरी. इन लाइब्रेरी को link() कॉल के आउटपुट आर्टफ़ैक्ट में लिंक किया जाएगा. भले ही, वह बाइनरी हो या लाइब्रेरी. |
user_link_flags
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है लिंक करने के विकल्पों की अतिरिक्त सूची. |
alwayslink
|
bool;
डिफ़ॉल्ट रूप से False पर सेट होता है क्या इस लाइब्रेरी को हमेशा लिंक किया जाना चाहिए. |
additional_inputs
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है लिंक करने की कार्रवाई के लिए अतिरिक्त इनपुट के लिए, जैसे कि लिंक करने वाली स्क्रिप्ट. |
variables_extension
|
dict;
डिफ़ॉल्ट unbound है लिंक कमांड लाइन बनाते समय, टूलचेन कॉन्फ़िगरेशन को पास करने के लिए अन्य वैरिएबल. |
create_lto_compilation_context
LtoCompilationContext cc_common.create_lto_compilation_context(objects={})LTO कंपाइलेशन कॉन्टेक्स्ट बनाना
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
objects
|
dict;
डिफ़ॉल्ट {} है पूरे ऑब्जेक्ट को इंडेक्स ऑब्जेक्ट में मैप करें |
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
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
action_name
|
string;
required कार्रवाई का नाम. यह नाम, @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
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
action_name
|
string;
required कार्रवाई का नाम. यह नाम, @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
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
action_name
|
string;
required कार्रवाई का नाम. यह नाम, @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
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
action_name
|
string;
required कार्रवाई का नाम. यह नाम, @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
|
FeatureConfiguration;
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
feature_name
|
string;
ज़रूरी है सुविधा का नाम. |
लिंक
CcLinkingOutputs cc_common.link(actions, name, feature_configuration, cc_toolchain, language='c++', output_type='executable', link_deps_statically=True, compilation_outputs=None, linking_contexts=[], user_link_flags=[], stamp=0, additional_inputs=[], additional_outputs=[], variables_extension={})इसका इस्तेमाल C++ ट्रांज़िटिव लिंकिंग के लिए किया जाना चाहिए.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
actions
|
actions;
ज़रूरीactions ऑब्जेक्ट.
|
name
|
स्ट्रिंग;
ज़रूरी है इसका इस्तेमाल, इस तरीके से बनाई गई कार्रवाइयों के आउटपुट आर्टफ़ैक्ट के नाम देने के लिए किया जाता है. |
feature_configuration
|
FeatureConfiguration;
के लिए ज़रूरी है feature_configuration पर क्वेरी की जा सकती है.
|
cc_toolchain
|
जानकारी;
CcToolchainInfo की सेवा इस्तेमाल करने के लिए ज़रूरी है.
|
language
|
string;
डिफ़ॉल्ट 'c++' है फ़िलहाल, सिर्फ़ C++ के साथ काम करता है. इस पैरामीटर का इस्तेमाल न करें. |
output_type
|
string;
डिफ़ॉल्ट तौर पर 'executable' होता है यह 'executable' या 'dynamic_library' हो सकता है. |
link_deps_statically
|
bool;
डिफ़ॉल्ट रूप से True पर सेट होता है डिपेंडेंसी को स्टैटिक तौर पर लिंक करने के लिए 'सही' और डाइनैमिक तौर पर लिंक करने के लिए 'गलत'. |
compilation_outputs
|
CcCompilationOutputs या None ;
डिफ़ॉल्ट तौर पर None कंपाइलेशन आउटपुट, जिनमें लिंक करने के लिए ऑब्जेक्ट फ़ाइलें होती हैं. |
linking_contexts
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है इस नियम से जनरेट किए गए लिंकिंग कॉन्टेक्स्ट में लिंक करने के लिए, डिपेंडेंसी से कॉन्टेक्स्ट लिंक करना. |
user_link_flags
|
sequence;
डिफ़ॉल्ट [] है लिंकर के विकल्पों की अतिरिक्त सूची. |
stamp
|
int;
डिफ़ॉल्ट रूप से 0 होता है अगर output_type 'executable' है, तो लिंक किए गए एक्सीक्यूटेबल में बिल्ड की जानकारी शामिल करनी है या नहीं. अगर 1 है, तो बिल्ड की जानकारी हमेशा शामिल की जाती है. अगर 0 है, तो डिफ़ॉल्ट बिल्ड की जानकारी को हमेशा बाहर रखा जाता है. अगर -1 है, तो डिफ़ॉल्ट तरीके का इस्तेमाल किया जाता है. इसे --[no]stamp फ़्लैग से बदला जा सकता है. टेस्ट नियमों के लिए, लागू किए जा सकने वाले आउटपुट जनरेट करते समय, इसे अनसेट (या 0 पर सेट) किया जाना चाहिए. |
additional_inputs
|
sequence या depset;
डिफ़ॉल्ट तौर पर [] होता है लिंक करने की कार्रवाई के लिए अतिरिक्त इनपुट के लिए, जैसे कि लिंक करने वाली स्क्रिप्ट. |
additional_outputs
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है लिंक करने की कार्रवाई के लिए अन्य आउटपुट के लिए, जैसे कि मैप फ़ाइलें. |
variables_extension
|
dict;
डिफ़ॉल्ट {} है लिंक कमांड लाइन बनाते समय, टूलचेन कॉन्फ़िगरेशन को पास करने के लिए अन्य वैरिएबल. |
merge_compilation_contexts
CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])एक से ज़्यादा
CompilationContexts
को एक में मर्ज करता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
compilation_contexts
|
sequence;
डिफ़ॉल्ट तौर पर [] होता है मर्ज किए जाने वाले CompilationContexts की सूची. हर कॉन्टेक्स्ट के हेडर, दिखाए गए प्रोवाइडर में मौजूद डायरेक्ट फ़ील्ड से एक्सपोर्ट किए जाएंगे.
|
merge_compilation_outputs
CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])कंपाइलेशन के आउटपुट मर्ज करें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
compilation_outputs
|
sequence;
डिफ़ॉल्ट [] है |