Google พัฒนาระบบประกอบโมดูลาร์ Soong สำหรับ Android

Google กำลังพัฒนาระบบบิลด์ ซุงออกแบบมาเพื่อแทนที่สคริปต์บิลด์เก่าสำหรับแพลตฟอร์ม Android โดยอิงตามการใช้ยูทิลิตี้ make Soong แนะนำให้ใช้คำประกาศง่ายๆ คำอธิบาย กฎสำหรับการประกอบโมดูล ที่ให้ไว้ ในไฟล์ที่มีนามสกุล “.bp” (พิมพ์เขียว) รูปแบบไฟล์ใกล้เคียงกับ JSON และหากเป็นไปได้ จะทำซ้ำไวยากรณ์และความหมายของไฟล์แอสเซมบลี Bazel. รหัสนี้เขียนในภาษา Go และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0

ไฟล์ Soong build ไม่รองรับคำสั่งแบบมีเงื่อนไขและนิพจน์การแตกแขนง แต่จะอธิบายเฉพาะโครงสร้างโปรเจ็กต์ โมดูล และการขึ้นต่อกันที่ใช้เมื่อสร้างเท่านั้น ไฟล์ที่จะสร้างขึ้นได้รับการอธิบายโดยใช้มาสก์และจัดกลุ่มเป็นแพ็คเกจ ซึ่งแต่ละไฟล์เป็นคอลเลกชันของไฟล์ที่มีการขึ้นต่อกันที่เกี่ยวข้อง สามารถกำหนดตัวแปรได้ มีการพิมพ์ตัวแปรและคุณสมบัติอย่างเคร่งครัด (ประเภทของตัวแปรจะถูกเลือกแบบไดนามิกในการกำหนดครั้งแรก และสำหรับคุณสมบัติแบบคงที่ขึ้นอยู่กับประเภทของโมดูล) องค์ประกอบที่ซับซ้อนของตรรกะแอสเซมบลีถูกย้ายไปยังตัวจัดการ เขียนไว้ ในภาษาโก

ซองต้องสานสัมพันธ์กับโปรเจ็กต์ที่ใหญ่กว่า พิมพ์เขียวซึ่งมีการพัฒนาระบบ meta-assembly ที่ไม่เชื่อมโยงกับ Android ซึ่งสร้างสคริปต์แอสเซมบลีตามไฟล์ที่มีคำอธิบายโมดูลที่เปิดเผย นินจา (แทนที่สำหรับ make) อธิบายคำสั่งที่ต้องรันเพื่อสร้างและการขึ้นต่อกัน แทนที่จะใช้กฎที่ซับซ้อนหรือภาษาเฉพาะโดเมนเพื่อกำหนดตรรกะในการสร้าง Blueprint ใช้ตัวจัดการเฉพาะโครงการในภาษา Go (โดยพื้นฐานแล้ว Soong นั้นเป็นชุดของตัวจัดการที่คล้ายกันสำหรับ Android)

แนวทางนี้ช่วยให้โครงการขนาดใหญ่และต่างกัน เช่น Android สามารถใช้องค์ประกอบที่ซับซ้อนของตรรกะแอสเซมบลีในโค้ดในภาษาการเขียนโปรแกรมระดับสูง ขณะเดียวกันก็รักษาความสามารถในการเปลี่ยนแปลงโมดูลที่เกี่ยวข้องกับองค์กรแอสเซมบลีและโครงสร้างโครงการโดยใช้ไวยากรณ์การประกาศอย่างง่าย . ตัวอย่างเช่น ใน Soong การเลือกแฟล็กคอมไพเลอร์จะกระทำโดยตัวจัดการ llvm.goและการประยุกต์ใช้การตั้งค่าเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์นั้นดำเนินการโดยตัวจัดการ ศิลปะ.ไปแต่การเชื่อมโยงไฟล์โค้ดจะดำเนินการในไฟล์ ".bp"

cc_library {
...
srcs: ["generic.cpp"],
ซุ้มประตู: {
แขน: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

ที่มา: opennet.ru

เพิ่มความคิดเห็น