การเปิดตัวเครื่องมือประกอบ Qbs 2.0

เปิดตัวเครื่องมือสร้าง Qbs 2.0 ในการสร้าง Qbs จำเป็นต้องมี Qt เป็นตัวอ้างอิง แม้ว่าตัว Qbs เองจะถูกออกแบบมาเพื่อจัดระเบียบการชุมนุมของโปรเจ็กต์ใดๆ Qbs ใช้เวอร์ชันที่เรียบง่ายของภาษา QML เพื่อกำหนดสคริปต์บิลด์โปรเจ็กต์ ซึ่งช่วยให้คุณกำหนดกฎบิลด์ที่ค่อนข้างยืดหยุ่นซึ่งสามารถเชื่อมต่อโมดูลภายนอกได้ สามารถใช้ฟังก์ชัน JavaScript และสามารถสร้างกฎบิลด์ตามอำเภอใจได้

ภาษาสคริปต์ที่ใช้ใน Qbs ได้รับการดัดแปลงเพื่อสร้างและแยกวิเคราะห์สคริปต์บิลด์โดยอัตโนมัติโดย IDE นอกจากนี้ Qbs จะไม่สร้าง makefiles และตัวมันเอง โดยไม่มีตัวกลาง เช่น ยูทิลิตี make จะควบคุมการเรียกใช้คอมไพเลอร์และลิงเกอร์ ปรับกระบวนการสร้างให้เหมาะสมตามกราฟโดยละเอียดของการขึ้นต่อกันทั้งหมด การมีอยู่ของข้อมูลเริ่มต้นเกี่ยวกับโครงสร้างและการพึ่งพาในโครงการช่วยให้คุณสามารถดำเนินการแบบขนานได้อย่างมีประสิทธิภาพในหลายเธรด สำหรับโปรเจกต์ขนาดใหญ่ที่ประกอบด้วยไฟล์และไดเร็กทอรีย่อยจำนวนมาก ประสิทธิภาพการสร้างใหม่โดยใช้ Qbs สามารถทำได้ดีกว่าหลายเท่า การสร้างใหม่แทบจะทันทีทันใดและไม่ทำให้นักพัฒนาเสียเวลารอ

จำได้ว่าในปี 2018 บริษัท Qt ตัดสินใจหยุดพัฒนา Qbs Qbs ได้รับการพัฒนาเพื่อแทนที่ qmake แต่ในที่สุดก็ตัดสินใจใช้ CMake เป็นระบบสร้างหลักสำหรับ Qt ในระยะยาว การพัฒนา Qbs ได้ดำเนินต่อไปในฐานะโครงการอิสระที่ได้รับการสนับสนุนจากกองกำลังชุมชนและนักพัฒนาที่สนใจ โครงสร้างพื้นฐานของ Qt Company ยังคงถูกใช้เพื่อการพัฒนาต่อไป

การเปลี่ยนแปลงที่สำคัญในหมายเลขเวอร์ชันนั้นเกี่ยวข้องกับการใช้งานแบ็กเอนด์ JavaScript ใหม่ ซึ่งแทนที่ QtScript ซึ่งเลิกใช้แล้วใน Qt 6 การรักษา QtScript ด้วยตัวเองต่อไปนั้นถือว่าไม่สมจริงเนื่องจากการผูกที่ซับซ้อนกับ JavaScriptCore ดังนั้นตนเอง -อันที่เพียงพอและกะทัดรัดได้รับเลือกให้เป็นพื้นฐานสำหรับเอ็นจิน JavaScript แบ็กเอนด์ QuickJS ใหม่ที่สร้างโดย Fabrice Bellard ผู้ก่อตั้งโปรเจ็กต์ QEMU และ FFmpeg เอ็นจิ้นรองรับข้อกำหนด ES2019 และมีประสิทธิภาพเหนือกว่าคู่เทียบเดิมในด้านประสิทธิภาพอย่างมาก (XS 35%, DukTape มากกว่า XNUMX เท่า, JerryScript XNUMX เท่า และ MuJS XNUMX เท่า)

จากมุมมองของการพัฒนาสคริปต์บิลด์ การเปลี่ยนไปใช้เอ็นจิ้นใหม่ไม่ควรนำไปสู่การเปลี่ยนแปลงที่เห็นได้ชัดเจน ประสิทธิภาพจะยังคงเหมือนเดิม จากความแตกต่าง มีข้อกำหนดที่เข้มงวดมากขึ้นในกลไกใหม่สำหรับการใช้ค่า Null ซึ่งสามารถเปิดเผยปัญหาในโครงการที่มีอยู่ซึ่งไม่มีใครสังเกตเห็นเมื่อใช้ QtScript

ที่มา: opennet.ru

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