नियम
py_proto_library
नियम का सोर्स देखेंpy_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
deps
|
लेबल की सूची; डिफ़ॉल्ट |
proto_lang_toolchain
नियम का सोर्स देखेंproto_lang_toolchain(name, allowlist_different_package, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, plugin, plugin_format_flag, progress_message, protoc_minimal_do_not_use, restricted_to, runtime, tags, target_compatible_with, testonly, toolchain_type, toolchains, visibility)
अगर Bazel का इस्तेमाल किया जा रहा है, तो कृपया नियम को https://github.com/bazelbuild/rules_proto से लोड करें.
इससे पता चलता है कि LANG_proto_library नियम (उदाहरण के लिए, java_proto_library
) को प्रोटो-कंपाइलर को कॉल करना चाहिए.
LANG_proto_library के कुछ नियमों की मदद से, कमांड-लाइन फ़्लैग का इस्तेमाल करके यह तय किया जा सकता है कि किस टूलचेन का इस्तेमाल करना है. इसके लिए, उनके दस्तावेज़ देखें.
आम तौर पर, आपको इस तरह के नियम तब तक नहीं लिखने चाहिए, जब तक कि आपको अपने Java कंपाइलर को बेहतर नहीं बनाना है.
कोई कंपाइलर नहीं है. प्रोटो-कंपाइलर को उस proto_library नियम से लिया जाता है जिसे हम अटैच करते हैं. इसे Blaze को कमांड-लाइन फ़्लैग के तौर पर पास किया जाता है.
कई सुविधाओं के लिए, proto_library नियम पर प्रोटो-कंपाइलर को लागू करना ज़रूरी है.
LANG_proto_library और proto_library
, दोनों एक ही कंपाइलर का इस्तेमाल करते हैं.
उदाहरण
इसका एक आसान उदाहरण यह है:
proto_lang_toolchain(
name = "javalite_toolchain",
command_line = "--javalite_out=shared,immutable:$(OUT)",
plugin = ":javalite_plugin",
runtime = ":protobuf_lite",
)
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
allowlist_different_package
|
लेबल; डिफ़ॉल्ट |
blacklisted_protos
|
लेबल की सूची; डिफ़ॉल्ट blacklisted_protos के srcs एट्रिब्यूट में मौजूद फ़ाइलों के लिए कोई कोड जनरेट नहीं किया जाएगा.
इसका इस्तेमाल उन .proto फ़ाइलों के लिए किया जाता है जो पहले से ही प्रोटो रनटाइम में लिंक की गई हैं, जैसे कि
any.proto .
|
command_line
|
स्ट्रिंग; ज़रूरी है कोड जनरेट करने के लिए, यह वैल्यू प्रोटो-कंपाइलर को भेजी जाएगी. सिर्फ़ इस कोड-जनरेटर/प्लग इन के लिए खास हिस्से शामिल करें (उदाहरण के लिए, -I पैरामीटर शामिल न करें)
|
mnemonic
|
स्ट्रिंग; डिफ़ॉल्ट तौर पर |
output_files
|
स्ट्रिंग; डिफ़ॉल्ट रूप से command_line में $(OUT) को कैसे फ़ॉर्मैट किया जाए. इसके लिए, एक फ़ाइल के पाथ या एक से ज़्यादा फ़ाइलों के मामले में आउटपुट डायरेक्ट्री का इस्तेमाल किया जाता है.
संभावित वैल्यू ये हैं: "एक", "एक से ज़्यादा".
|
plugin
|
लेबल; डिफ़ॉल्ट --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
स्ट्रिंग; डिफ़ॉल्ट रूप से --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
स्ट्रिंग; डिफ़ॉल्ट रूप से |
protoc_minimal_do_not_use
|
लेबल; डिफ़ॉल्ट |
runtime
|
लेबल; डिफ़ॉल्ट |
toolchain_type
|
लेबल; डिफ़ॉल्ट |
proto_toolchain
नियम का सोर्स देखेंproto_toolchain(name, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, progress_message, proto_compiler, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
command_line
|
स्ट्रिंग; डिफ़ॉल्ट रूप से |
mnemonic
|
स्ट्रिंग; डिफ़ॉल्ट तौर पर |
output_files
|
स्ट्रिंग; डिफ़ॉल्ट तौर पर |
progress_message
|
स्ट्रिंग; डिफ़ॉल्ट रूप से |
proto_compiler
|
लेबल; डिफ़ॉल्ट |