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