قوانین
اقدام_شنونده
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
خودش هیچ خروجی تولید نمی کند. درعوض، به توسعه دهندگان ابزار اجازه می دهد تا با ارائه نقشه برداری از action به 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 | یک نام منحصر به فرد برای این هدف. |
extra_actions | extra_action که این action_listener باید به نمودار ساخت اضافه کند. به عنوان مثال [ "//my/tools:analyzer" ] . |
mnemonics | action_listener باید به آن گوش دهد، به عنوان مثال [ "Javac" ] .Mnemonics یک رابط عمومی نیستند. هیچ تضمینی وجود ندارد که حافظه و اقدامات آنها تغییر نکند. |
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
وقتی به عنوان یک هدف ساخت معمولی مشخص شود، خروجی معنیداری تولید نمیکند. در عوض، به توسعه دهندگان ابزار اجازه می دهد تا اقدامات اضافی را در نمودار ساخت وارد کنند که اقدامات موجود را تحت الشعاع قرار دهد.
برای جزئیات بیشتر در مورد نحوه فعال کردن extra_action
s به action_listener
مراجعه کنید.
extra_action
s به عنوان یک خط فرمان اجرا می شود. ابزار خط فرمان به فایلی که حاوی یک بافر پروتکل بهعنوان $(EXTRA_ACTION_FILE) با اطلاعات دقیق در مورد عملکرد اصلی است دسترسی پیدا میکند. همچنین به تمام فایل های ورودی که اکشن اصلی به آنها دسترسی دارد دسترسی دارد. برای جزئیات بیشتر در مورد داده های ذخیره شده در بافر پروتکل به extra_actions_base.proto مراجعه کنید. هر فایل پروتو حاوی یک پیام ExtraActionInfo است.
دقیقاً مانند همه اقدامات دیگر، اقدامات اضافی در جعبه سندباد قرار دارند و باید طوری طراحی شوند که از عهده آن برآیند.
استدلال ها
ویژگی های | |
---|---|
name | یک نام منحصر به فرد برای این هدف. می توانید در آرگومانextra_actions قوانین action_listener به این قانون با label اشاره کنید. |
cmd | مانند genrule ویژگی cmd با تفاوت های زیر:
|
out_templates | extra_action .قالب می تواند از متغیرهای زیر استفاده کند:
|
requires_action_output | extra_action نیاز دارد که خروجی اکشن اصلی به عنوان ورودی این extra_action باشد.هنگامی که true (default false)، extra_action میتواند فرض کند که خروجیهای اقدام اصلی به عنوان بخشی از ورودیهای آن در دسترس هستند. |
tools | tool برای این قانون.برای اطلاعات بیشتر به تعریف وابستگی ها مراجعه کنید. سیستم ساخت اطمینان حاصل می کند که این پیش نیازها قبل از اجرای دستور همه ابزارها و وابستگی های داده آنها در یک درخت واحد ادغام می شوند که در آن دستور می تواند از مسیرهای نسبی استفاده کند. دایرکتوری کاری ریشه درخت یکپارچه خواهد بود. |