नियम
action_listener
नियम का सोर्स देखेंaction_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
चेतावनी: अतिरिक्त कार्रवाइयों का इस्तेमाल बंद कर दिया गया है. इसके बजाय, aspects का इस्तेमाल करें.
action_listener
नियम से कोई आउटपुट नहीं मिलता.
इसके बजाय, यह टूल डेवलपर को बिल्ड सिस्टम में extra_action
डालने की अनुमति देता है. इसके लिए, ऐक्शन से extra_action
तक मैपिंग की जाती है.
इस नियम के आर्ग्युमेंट, ऐक्शन के लिए याद रखने लायक शब्दों को extra_action
नियमों पर मैप करते हैं.
--experimental_action_listener=<label>
विकल्प चुनने पर,
बिल्ड ग्राफ़ में extra_action
डालने के लिए, बिल्ड में बताए गए action_listener
का इस्तेमाल किया जाएगा.
उदाहरण
action_listener( name = "index_all_languages", mnemonics = [ "Javac", "CppCompile", "Python", ], extra_actions = [":indexer"], ) action_listener( name = "index_java", mnemonics = ["Javac"], extra_actions = [":indexer"], ) extra_action( name = "indexer", tools = ["//my/tools:indexer"], cmd = "$(location //my/tools:indexer)" + "--extra_action_file=$(EXTRA_ACTION_FILE)", )
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
extra_actions
|
लेबल की सूची; ज़रूरी है extra_action टारगेट की सूची
इस action_listener को बिल्ड ग्राफ़ में जोड़ना चाहिए.
उदाहरण के लिए, [ "//my/tools:analyzer" ] .
|
mnemonics
|
स्ट्रिंग की सूची; ज़रूरी है ऐक्शन के उन मेनेमोनिक की सूची जिन पर इसaction_listener को ध्यान देना चाहिए, जैसे कि [ "Javac" ] .
मेमोनेमिक, सार्वजनिक इंटरफ़ेस नहीं होते. इस बात की कोई गारंटी नहीं है कि स्मृति सहायक और उनकी कार्रवाइयां न बदलें. |
extra_action
नियम का सोर्स देखेंextra_action(name, data, cmd, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, out_templates, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
चेतावनी: अतिरिक्त कार्रवाइयों का इस्तेमाल बंद कर दिया गया है. इसके बजाय, aspects का इस्तेमाल करें.
extra_action
नियम, रेगुलर बिल्ड टारगेट के तौर पर बताए जाने पर कोई काम का आउटपुट नहीं देता. इसके बजाय, यह टूल डेवलपर को बिल्ड ग्राफ़ में ऐसी अतिरिक्त कार्रवाइयां डालने की अनुमति देता है जो मौजूदा कार्रवाइयों को शैडो करती हैं.
extra_action
को चालू करने के तरीके के बारे में जानकारी पाने के लिए, action_listener
देखें.
extra_action
, कमांड-लाइन के तौर पर काम करते हैं. कमांड-लाइन टूल को, $(EXTRA_ACTION_FILE) के तौर पर प्रोटोकॉल बफ़र वाली फ़ाइल का ऐक्सेस मिलता है. इसमें, ओरिजनल ऐक्शन के बारे में पूरी जानकारी होती है.
इसके पास उन सभी इनपुट फ़ाइलों का ऐक्सेस भी होता है जिनका ऐक्सेस ओरिजनल ऐक्शन के पास होता है.
प्रोटोकॉल बफ़र में सेव किए गए डेटा के बारे में जानकारी पाने के लिए, extra_actions_base.proto देखें. हर प्रोटो फ़ाइल में
ExtraActionInfo मैसेज होता है.
अन्य सभी कार्रवाइयों की तरह ही, अतिरिक्त कार्रवाइयों को सैंडबॉक्स किया जाता है. साथ ही, उन्हें इस तरह से डिज़ाइन किया जाना चाहिए कि वे सैंडबॉक्स में काम कर सकें.
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. इस नियम का रेफ़रंस देने के लिए, action_listener नियमों के extra_actions आर्ग्युमेंट में label का इस्तेमाल करें.
|
cmd
|
स्ट्रिंग; ज़रूरी है चलाया जाने वाला निर्देश.यह genrule cmd एट्रिब्यूट की तरह ही है. हालांकि, इनमें ये अंतर हैं:
|
out_templates
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से extra_action निर्देश से जनरेट की गई फ़ाइलों के लिए टेंप्लेट की सूची.
टेंप्लेट में इन वैरिएबल का इस्तेमाल किया जा सकता है:
|
requires_action_output
|
बूलियन; डिफ़ॉल्ट तौर पर extra_action के लिए, ओरिजनल ऐक्शन का आउटपुट, इस extra_action के इनपुट के तौर पर मौजूद होना चाहिए.
अगर यह 'सही है' (डिफ़ॉल्ट रूप से 'गलत है') पर सेट है, तो extra_action यह मान सकता है कि ओरिजनल ऐक्शन के आउटपुट, इनपुट के हिस्से के तौर पर उपलब्ध हैं. |
tools
|
लेबल की सूची; डिफ़ॉल्ट tool डिपेंडेंसी की सूची.
ज़्यादा जानकारी के लिए, डिपेंडेंसी की परिभाषा देखें.
बिल्ड सिस्टम यह पक्का करता है कि सभी टूल और उनके डेटा डिपेंडेंसी को एक ही ट्री में इकट्ठा किया जाता है जिसमें कमांड, रिलेटिव पाथ का इस्तेमाल कर सकता है. वर्किंग डायरेक्ट्री, उस यूनिफ़ाइड ट्री का रूट होगी. |