Google กำลังพัฒนาระบบบิลด์ ออกแบบมาเพื่อทดแทนสคริปต์การสร้างแพลตฟอร์มแบบเก่า Androidโดยอิงจากการใช้ยูทิลิตี้ make นั้น Soong แนะนำให้ใช้การประกาศแบบง่ายๆ กฎสำหรับการประกอบโมดูล ในไฟล์ที่มีนามสกุล “.bp” (พิมพ์เขียว) รูปแบบไฟล์ใกล้เคียงกับ JSON และหากเป็นไปได้ จะทำซ้ำไวยากรณ์และความหมายของไฟล์แอสเซมบลี . รหัสนี้เขียนในภาษา Go และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0
ไฟล์ Soong build ไม่รองรับคำสั่งแบบมีเงื่อนไขและนิพจน์การแตกแขนง แต่จะอธิบายเฉพาะโครงสร้างโปรเจ็กต์ โมดูล และการขึ้นต่อกันที่ใช้เมื่อสร้างเท่านั้น ไฟล์ที่จะสร้างขึ้นได้รับการอธิบายโดยใช้มาสก์และจัดกลุ่มเป็นแพ็คเกจ ซึ่งแต่ละไฟล์เป็นคอลเลกชันของไฟล์ที่มีการขึ้นต่อกันที่เกี่ยวข้อง สามารถกำหนดตัวแปรได้ มีการพิมพ์ตัวแปรและคุณสมบัติอย่างเคร่งครัด (ประเภทของตัวแปรจะถูกเลือกแบบไดนามิกในการกำหนดครั้งแรก และสำหรับคุณสมบัติแบบคงที่ขึ้นอยู่กับประเภทของโมดูล) องค์ประกอบที่ซับซ้อนของตรรกะแอสเซมบลีถูกย้ายไปยังตัวจัดการ ในภาษาโก
ซองต้องสานสัมพันธ์กับโปรเจ็กต์ที่ใหญ่กว่า ภายใต้กรอบซึ่งไม่ผูกติดกับ Android ระบบสร้างแบบเมตาที่สร้างสคริปต์การสร้างโดยอิงจากไฟล์ที่มีคำอธิบายแบบประกาศของโมดูล (เครื่องมือทดแทน make) ที่อธิบายคำสั่งที่ต้องดำเนินการสำหรับการสร้างและส่วนประกอบที่จำเป็น แทนที่จะใช้กฎที่ซับซ้อนหรือภาษาเฉพาะโดเมนเพื่อกำหนดตรรกะการสร้าง Blueprint ใช้ตัวจัดการเฉพาะโครงการในภาษา Go (Soong โดยพื้นฐานแล้วคือชุดของตัวจัดการดังกล่าวสำหรับ) Android).
แนวทางนี้ช่วยให้สามารถดำเนินโครงการขนาดใหญ่และหลากหลายได้ เช่น Androidใช้ภาษาโปรแกรมระดับสูงในการนำองค์ประกอบที่ซับซ้อนของตรรกะการสร้างมาเขียนโค้ด ในขณะเดียวกันก็ยังคงรักษาความสามารถในการเปลี่ยนแปลงโมดูลที่เกี่ยวข้องกับการจัดระเบียบการสร้างและโครงสร้างโครงการโดยใช้ไวยากรณ์แบบประกาศอย่างง่าย ตัวอย่างเช่น ใน Soong การเลือกแฟล็กคอมไพเลอร์จะดำเนินการโดยแฮนด์เลอร์ และการประยุกต์ใช้การตั้งค่าเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์นั้นดำเนินการโดยตัวจัดการ แต่การเชื่อมโยงไฟล์โค้ดจะดำเนินการในไฟล์ ".bp"
cc_library {
...
srcs: ["generic.cpp"],
ซุ้มประตู: {
แขน: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}
ที่มา: opennet.ru
