กฎ
action_listener
ดูแหล่งที่มาของกฎaction_listener(name, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, package_metadata, 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" ]
โดยที่มnemonic ไม่ใช่อินเทอร์เฟซสาธารณะ แต่ไม่มีการรับประกันว่าคำช่วยจำและการดำเนินการของคำช่วยจำจะไม่เปลี่ยนแปลง |
extra_action
ดูแหล่งที่มาของกฎextra_action(name, data, aspect_hints, cmd, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, out_templates, package_metadata, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
คำเตือน: ระบบเลิกใช้การดำเนินการเพิ่มเติมแล้ว ให้ใช้แง่มุม แทน
extra_action
กฎไม่สร้างเอาต์พุตที่มีความหมาย
เมื่อระบุเป็นเป้าหมายการสร้างปกติ แต่จะช่วยให้นักพัฒนาเครื่องมือ
สามารถแทรกการดำเนินการเพิ่มเติมลงในกราฟการสร้างที่ซ่อนการดำเนินการที่มีอยู่ได้
ดูรายละเอียดเกี่ยวกับวิธีเปิดใช้ extra_action
ได้ที่ action_listener
extra_action
จะทำงานเป็นบรรทัดคำสั่ง เครื่องมือบรรทัดคำสั่งจะได้รับ
สิทธิ์เข้าถึงไฟล์ที่มี Protocol Buffer เป็น $(EXTRA_ACTION_FILE)
พร้อมข้อมูลโดยละเอียดเกี่ยวกับการดำเนินการเดิมที่กำลังจำลอง
นอกจากนี้ ยังมีสิทธิ์เข้าถึงไฟล์อินพุตทั้งหมดที่การดำเนินการเดิมมีสิทธิ์เข้าถึงด้วย
ดูรายละเอียดเกี่ยวกับข้อมูลที่จัดเก็บไว้ในบัฟเฟอร์โปรโตคอลได้ที่ extra_actions_base.proto
ไฟล์ Proto แต่ละไฟล์
มีข้อความ ExtraActionInfo
การดำเนินการเพิ่มเติมจะอยู่ในแซนด์บ็อกซ์เช่นเดียวกับการดำเนินการอื่นๆ ทั้งหมด และควรได้รับการออกแบบมาเพื่อจัดการกับแซนด์บ็อกซ์
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ คุณอาจอ้างอิงกฎนี้โดยใช้label ในอาร์กิวเมนต์ extra_actions
ของกฎ action_listener
|
cmd
|
สตริง; ต้องระบุ คำสั่งที่จะเรียกใช้เช่น genrule cmd attribute โดยมี ความแตกต่างดังนี้
|
out_templates
|
รายการสตริง ค่าเริ่มต้นคือ extra_action
เทมเพลตสามารถใช้ตัวแปรต่อไปนี้
|
requires_action_output
|
บูลีน ค่าเริ่มต้นคือ extra_action นี้กำหนดให้ต้องมีเอาต์พุตของ
การดำเนินการเดิมเป็นอินพุตของ extra_action นี้
เมื่อเป็นจริง (ค่าเริ่มต้นคือเท็จ) extra_action จะถือว่าเอาต์พุตของการดำเนินการเดิมพร้อมใช้งานเป็นส่วนหนึ่งของอินพุต |
tools
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ tool การอ้างอิงสำหรับกฎนี้
ดูข้อมูลเพิ่มเติมได้ที่คำจำกัดความของการอ้างอิง
ระบบบิลด์จะตรวจสอบว่ามีการสร้างข้อกำหนดเบื้องต้นเหล่านี้ก่อนที่จะเรียกใช้คำสั่ง เครื่องมือทั้งหมดและการอ้างอิงข้อมูลจะรวมกันเป็นโครงสร้างเดียว ซึ่งคำสั่งสามารถใช้เส้นทางที่เกี่ยวข้องได้ โดยไดเรกทอรีการทำงานจะเป็นรูทของโครงสร้างแบบรวมนั้น |