กฎ
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)
คำเตือน: การดำเนินการเพิ่มเติมเลิกใช้งานแล้ว โปรดใช้ aspects แทน
กฎ action_listener
จะไม่สร้างเอาต์พุตใดๆ ในตัวเอง
แต่จะช่วยให้นักพัฒนาเครื่องมือแทรก extra_action
ลงในระบบบิลด์ได้แทนโดยการแมปจากการดำเนินการไปยัง extra_action
อาร์กิวเมนต์ของกฎนี้จะจับคู่ Mnemonics ของการดำเนินการกับกฎ 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)
คำเตือน: การดำเนินการเพิ่มเติมเลิกใช้งานแล้ว โปรดใช้ aspects แทน
กฎ extra_action
จะไม่สร้างเอาต์พุตที่มีความหมายเมื่อระบุเป็นเป้าหมายบิลด์ปกติ แต่จะช่วยให้นักพัฒนาเครื่องมือแทรกการดำเนินการเพิ่มเติมลงในกราฟบิลด์ที่เงาการดำเนินการที่มีอยู่ได้
ดูรายละเอียดเกี่ยวกับวิธีเปิดใช้ extra_action
ได้ที่ action_listener
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 ของกฎนี้
ดูคำจำกัดความของการพึ่งพากันสำหรับข้อมูลเพิ่มเติม
ระบบบิลด์ช่วยให้มั่นใจได้ว่าข้อกำหนดเบื้องต้นเหล่านี้สร้างขึ้นก่อนที่จะเรียกใช้คำสั่ง เครื่องมือทั้งหมดและการอ้างอิงข้อมูลทั้งหมดจะรวมอยู่ในโครงสร้างเดียวที่คำสั่งใช้เส้นทางแบบสัมพัทธ์ได้ โดยไดเรกทอรีการทำงานจะเป็นรากของต้นไม้แบบรวมนั้น |