กฎ
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)",
)
อาร์กิวเมนต์
| Attributes | |
|---|---|
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)
คำเตือน: มีการเลิกใช้งานการดำเนินการเพิ่มเติม ใช้ แง่มุม แทน
กฎ extra_action ไม่ได้สร้างเอาต์พุตที่มีความหมาย
เมื่อระบุเป็นเป้าหมายบิลด์ปกติ แต่ช่วยให้นักพัฒนาเครื่องมือ
เพื่อแทรกการดำเนินการเพิ่มเติมลงในกราฟบิลด์ที่ซ่อนการดำเนินการที่มีอยู่
ดูรายละเอียดใน action_listener
เกี่ยวกับวิธีเปิดใช้ extra_action
extra_action ทำงานเป็นบรรทัดคำสั่ง เครื่องมือบรรทัดคำสั่งจะมี
สิทธิ์เข้าถึงไฟล์ที่มีบัฟเฟอร์โปรโตคอลเป็น $(EXTRA_ACTION_FILE)
โดยมีข้อมูลโดยละเอียดเกี่ยวกับการดำเนินการดั้งเดิมที่เป็นเพียงเงามืด
นอกจากนี้ยังมีสิทธิ์เข้าถึงไฟล์อินพุตทั้งหมดที่การดำเนินการเดิมมีสิทธิ์เข้าถึงด้วย
โปรดดู extra_actions_base.proto
เพื่อดูรายละเอียดเกี่ยวกับข้อมูลที่เก็บไว้ในบัฟเฟอร์โปรโตคอล ไฟล์ Proto แต่ละรายการ
มีข้อความ ExtraActionInfo
เช่นเดียวกับการดำเนินการอื่นๆ ทั้งหมด การดำเนินการเพิ่มเติมจะได้รับแซนด์บ็อกซ์และควรออกแบบมาเพื่อรองรับการดำเนินการดังกล่าว
อาร์กิวเมนต์
| Attributes | |
|---|---|
name |
ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ คุณอาจอ้างอิงกฎนี้โดยใช้label ในอาร์กิวเมนต์ extra_actions
จากกฎ action_listener ข้อ
|
cmd
|
เช่นเดียวกับแอตทริบิวต์ genrule cmd พร้อมกับข้อมูลต่อไปนี้ ความแตกต่าง:
|
out_templates
|
extra_action
เทมเพลตสามารถใช้ตัวแปรต่อไปนี้
|
requires_action_output
|
extra_action นี้ต้องการเอาต์พุตของ
การดำเนินการดั้งเดิมที่จะแสดงเป็นอินพุตของ extra_action นี้
เมื่อเป็นจริง (ค่าเริ่มต้นเป็นเท็จ) ส่วนเกินสามารถสันนิษฐานได้ว่า เอาต์พุตจากการดำเนินการดั้งเดิมพร้อมใช้งานโดยเป็นส่วนหนึ่งของอินพุต |
tools
|
tool สำหรับกฎนี้
ดูคำจำกัดความของการขึ้นต่อกันสำหรับข้อมูลเพิ่มเติม
ระบบบิลด์จะดูแลให้มีการสร้างข้อกำหนดเบื้องต้นเหล่านี้ก่อนเรียกใช้
คำสั่ง เครื่องมือทั้งหมดและทรัพยากร Dependency ทั้งหมดจะรวมอยู่ในแผนผังเดียว ที่คำสั่งสามารถใช้เส้นทางแบบสัมพัทธ์ได้ ไดเรกทอรีที่ใช้งานได้จะ เป็นรากของโครงสร้างที่เป็นหนึ่งเดียว |