כללי פעולות נוספות

כללים

אקשן_פעולה

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 למערכת ה-build, על ידי מתן מיפוי מפעולה ל-extra_action .

הארגומנטים של כלל זה ממפים קובצי זיכרון לפעולות extra_action כללים.

ציון האפשרות --experimental_action_listener=<label> יאפשר ל-build להשתמש בaction_listener שצוין כדי להוסיף את extra_action אל תרשים build.

דוגמה

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 אמורה להיכלל בתרשים ה-build. דוגמה: [ "//my/tools:analyzer" ].
mnemonics

List of strings; required

רשימת קובצי פעולות ש-action_listener צריך להאזין להם, למשל [ "Javac" ].

ממוניקה אינה ממשק ציבורי. אין כל ערובה לכך שמצבי הזיכרון והפעולות שלהם לא ישתנו.

פעולה_נוספת

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 לא מייצר פלט בעל משמעות כאשר הוא מוגדר כיעד build רגיל. במקום זאת, הוא מאפשר למפתחי כלים להוסיף פעולות נוספות לתרשים ה-build שמטיל הצללה של פעולות קיימות.

action_listener כאן מוסבר איך מפעילים את extra_action.

extra_action פועל כשורת פקודה. כלי שורת הפקודה מקבל גישה לקובץ המכיל מאגר נתונים זמני של פרוטוקול כ-$(EXTRA_ACTION_FILE) עם מידע מפורט לגבי הפעולה המקורית שהיא מוצללת. יש לו גם גישה לכל קובצי הקלט שאליהם יש לפעולה המקורית גישה. לפרטים על הנתונים המאוחסנים במאגר הפרוטוקול, ראה extra_actions_base.proto. כל קובץ Proto מכיל הודעה של ExtraActionInfo.

כמו כל שאר הפעולות, פעולות נוספות הן בארגז חול, ויש לעצב אותן כדי לטפל בהן.

ארגומנטים

מאפיינים
name

Name; required

שם ייחודי ליעד זה.

ייתכן שהכלל הזה יוגדר על ידי label בארגומנט extra_actions של כלל action_listener.
cmd

String; required

הפקודה להפעלה.

כמו מאפיין cmD מסוג "כלל" עם ההבדלים הבאים:

  1. ללא הרחבת תווית היוריסטית. רק תוויות המשתמשות ב-$(מיקום ...) מורחבות.

  2. מחרוזת נוספת מופעלת על המחרוזת כדי להחליף את כל המופעים של הפלטים שנוצרו מהמאפיין out_templates. כל המופעים של $(output out_template) מוחלפים בנתיב אל הקובץ המסומן על ידי label.

    לדוגמה, אפשר להתאים את תבנית_out $(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 הזה.

כאשר הערך הוא True (ברירת מחדל FALSE), ההנחה של additional_action היא שהפלט המקורי של הפעולה זמין כחלק מהקלט שלו.

tools

List of labels; optional

רשימה של tool יחסי תלות לכלל זה.

למידע נוסף, ניתן לעיין בהגדרה של תלות.

מערכת ה-build מבטיחה את עמידה בדרישות הקדם האלו לפני שמפעילים את הפקודה extra_action; הם נוצרים באמצעות הhostתצורה, כי הם חייבים לפעול ככלי במהלך ה-build עצמו. ניתן לקבל את הנתיב של tools יעד //x:y ספציפי באמצעות $(location //x:y).

כל הכלים ויחסי התלות שלהם בנתונים מאוחדים לעץ יחיד, שבתוכו ניתן להשתמש בפקודה יחסית. ספריית העבודה תהיה הבסיס של העץ המאוחד.