अतिरिक्त कार्रवाइयों के नियम

नियम

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)

चेतावनी: अतिरिक्त कार्रवाइयों के इस्तेमाल पर रोक लगा दी गई है. इस्तेमाल की जाने वाली चीज़ें आसपेक्ट आज़माएं.

action_listener नियम खुद कोई आउटपुट नहीं देता. इसके बजाय, इससे टूल डेवलपर को extra_action को बिल्ड सिस्टम में इस्तेमाल किया है, कार्रवाई से extra_action को मैपिंग करके .

इस नियम का तर्क, याद रखने के तरीके को मैप करता है extra_action नियम.

विकल्प निर्दिष्ट करके --experimental_action_listener=<label>, बिल्ड, इंसर्ट करने के लिए बताए गए action_listener का इस्तेमाल करेगा extra_action को बिल्ड ग्राफ़ में शामिल किया गया है.

उदाहरण

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

Name; required

इस टारगेट के लिए यूनीक नाम.

extra_actions

List of labels; required

extra_action टारगेट की सूची इस action_listener को बिल्ड ग्राफ़ में जोड़ना चाहिए. उदाहरण के लिए, [ "//my/tools:analyzer" ].
mnemonics

List of strings; required

वीडियो में किन चीज़ों का ध्यान रखना चाहिए, यह 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)

चेतावनी: अतिरिक्त कार्रवाइयों के इस्तेमाल पर रोक लगा दी गई है. इस्तेमाल की जाने वाली चीज़ें आसपेक्ट आज़माएं.

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

ज़्यादा जानकारी के लिए, action_listener पर जाएं extra_action को चालू करने का तरीका जानें.

extra_action, कमांड-लाइन के तौर पर चलते हैं. कमांड-लाइन टूल को $(iOS_ACTION_FILE) के रूप में प्रोटोकॉल बफ़र वाली फ़ाइल का ऐक्सेस इसमें शैडो किए जा रहे ओरिजनल ऐक्शन के बारे में पूरी जानकारी दी गई है. इसके पास उन सभी इनपुट फ़ाइलों का ऐक्सेस भी होता है जिनका ऐक्सेस ओरिजनल ऐक्शन के पास है. extra_actions_base.proto देखें देखें. हर प्रोटो फ़ाइल में एक ExtraActionInfo मैसेज है.

दूसरी सभी कार्रवाइयों की तरह ही, अतिरिक्त कार्रवाइयां सैंडबॉक्स की जाती हैं और उन्हें इस हिसाब से डिज़ाइन किया जाना चाहिए.

तर्क

विशेषताएं
name

Name; required

इस टारगेट के लिए यूनीक नाम.

आप extra_actions तर्क में इस नियम को label के ज़रिए देख सकते हैं action_listener नियमों में से.
cmd

String; required

चलाने के लिए निर्देश.

जैसे, genral cmd एट्रिब्यूट और इनके साथ अंतर:

  1. अनुमान के हिसाब से लेबल को बढ़ाया नहीं जा सकता. सिर्फ़ $(location ...) का इस्तेमाल करने वाले लेबल को बड़ा किया जाता है.

  2. सभी फ़ॉर्मैट को बदलने के लिए, स्ट्रिंग पर एक और पास लागू किया जाता है out_templates से बनाए गए आउटपुट की संख्या एट्रिब्यूट की वैल्यू सबमिट करें. $(output out_template) के सभी इवेंट को label से दिख रहे फ़ाइल के पाथ से बदल दिया जाता है.

    उदाहरण के लिए, out_template $(ACTION_ID).analysis का मिलान $(output $(ACTION_ID).analysis) से किया जा सकता है.

    प्रभावी रूप से, यह $(location) के समान प्रतिस्थापन है लेकिन एक अलग दायरे के साथ.

out_templates

List of strings; optional

extra_action कमांड से जनरेट की गई फ़ाइलों के लिए, टेंप्लेट की सूची.

टेंप्लेट में इन वैरिएबल का इस्तेमाल किया जा सकता है:

  • $(ACTION_ID), एक आईडी है जो इस extra_action की खास तौर पर पहचान करता है. इसका इस्तेमाल, यूनीक आउटपुट फ़ाइल जनरेट करने के लिए किया जाता है.

requires_action_output

Boolean; optional; default is False

इससे पता चलता है कि इस extra_action को ओरिजनल ऐक्शन को इस extra_action में इनपुट के तौर पर दिखाना होगा.

सही (डिफ़ॉल्ट रूप से गलत) होने पर, extra_action यह मान सकती है कि ओरिजनल ऐक्शन आउटपुट, इनपुट के हिस्से के तौर पर उपलब्ध होते हैं.

tools

List of labels; optional

इस नियम के लिए, tool डिपेंडेंसी की सूची.

ज़्यादा जानकारी के लिए डिपेंडेंसी की परिभाषा देखें जानकारी.

बिल्ड सिस्टम यह पक्का करता है कि ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए, extra_action निर्देश; इन टूल का इस्तेमाल करके बनाए जाते हैं hostकॉन्फ़िगरेशन, क्योंकि उन्हें बिल्ड के दौरान ही एक टूल के तौर पर चलना चाहिए. किसी व्यक्ति का पाथ tools टारगेट //x:y को, इनका इस्तेमाल करके हासिल किया जा सकता है $(location //x:y).

सभी टूल और उनकी डेटा डिपेंडेंसी एक ही ट्री में इकट्ठा कर दी गई हैं जिसमें कमांड रिलेटिव पाथ का इस्तेमाल कर सके. काम करने वाली डायरेक्ट्री उसी पेड़ का मूल होना चाहिए.