การเปิดตัวเครื่องมือสร้าง Qbs 1.21 และเริ่มการทดสอบ Qt 6.3

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

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

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

นวัตกรรมที่สำคัญใน Qbs 1.21:

  • กลไกของผู้ให้บริการโมดูล (ตัวสร้างโมดูล) ได้รับการออกแบบใหม่ สำหรับเฟรมเวิร์ก เช่น Qt และ Boost ขณะนี้คุณสามารถใช้ผู้ให้บริการมากกว่าหนึ่งราย ระบุผู้ให้บริการที่จะรันโดยใช้คุณสมบัติ qbsModuleProviders ใหม่ และระบุลำดับความสำคัญสำหรับการเลือกโมดูลที่สร้างโดยผู้ให้บริการที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถระบุผู้ให้บริการสองราย "Qt" และ "qbspkgconfig" ซึ่งผู้ให้บริการรายแรกจะพยายามใช้การติดตั้ง Qt ของผู้ใช้ (ผ่านการค้นหา qmake) และหากไม่พบการติดตั้งดังกล่าว ผู้ให้บริการรายที่สองจะพยายาม ใช้ Qt ที่ระบบให้ไว้ (ผ่านการเรียกไปยัง pkg-config): CppApplication { ขึ้นอยู่กับ { ชื่อ: "Qt.core" } ไฟล์: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • เพิ่มผู้ให้บริการ "qbspkgconfig" ซึ่งแทนที่ผู้ให้บริการโมดูล "ทางเลือก" ซึ่งพยายามสร้างโมดูลโดยใช้ pkg-config หากโมดูลที่ร้องขอไม่ได้ถูกสร้างขึ้นโดยผู้ให้บริการรายอื่น ต่างจาก “fallback”, “qbspkgconfig” แทนที่จะเรียกยูทิลิตี้ pkg-config จะใช้ไลบรารี C++ ในตัวเพื่ออ่านไฟล์ “.pc” โดยตรง ซึ่งช่วยให้ทำงานได้เร็วขึ้นและรับข้อมูลเพิ่มเติมเกี่ยวกับการขึ้นต่อกันของแพ็คเกจที่ไม่พร้อมใช้งานเมื่อโทร ยูทิลิตี้ pkg-config
  • เพิ่มการรองรับข้อกำหนด C++23 ซึ่งกำหนดมาตรฐาน C++ ในอนาคต
  • เพิ่มการรองรับสถาปัตยกรรม Elbrus E2K สำหรับชุดเครื่องมือ GCC
  • สำหรับแพลตฟอร์ม Android คุณสมบัติ Android.ndk.buildId ได้รับการเพิ่มเพื่อแทนที่ค่าเริ่มต้นสำหรับแฟล็กตัวเชื่อมโยง "--build-id"
  • โมดูล capnproto และ protobuf ใช้ความสามารถในการใช้รันไทม์ที่จัดเตรียมโดยผู้ให้บริการ qbspkgconfig
  • แก้ไขปัญหาเกี่ยวกับการติดตามการเปลี่ยนแปลงในไฟล์ต้นฉบับบน FreeBSD เนื่องจากมิลลิวินาทีลดลงเมื่อประมาณเวลาแก้ไขไฟล์
  • เพิ่มคุณสมบัติ ConanfileProbe.verbose เพื่อให้ง่ายต่อการดีบักโปรเจ็กต์ที่ใช้ตัวจัดการแพ็คเกจ Conan

นอกจากนี้ เรายังสังเกตจุดเริ่มต้นของการทดสอบอัลฟ่าของเฟรมเวิร์ก Qt 6.3 ซึ่งใช้โมดูลใหม่ “เซิร์ฟเวอร์ภาษา Qt” พร้อมรองรับเซิร์ฟเวอร์ภาษาและโปรโตคอล JsonRpc 2.0 โดยมีการเพิ่มฟังก์ชันใหม่ส่วนใหญ่ลงใน Qt Core และ MessageDialog ประเภท QML ได้ถูกนำไปใช้ในโมดูล Qt Quick Dialogs หากต้องการใช้กล่องโต้ตอบที่แพลตฟอร์มจัดเตรียมไว้ให้ เซิร์ฟเวอร์คอมโพสิต Qt Shell และ API สำหรับการสร้างส่วนขยายเชลล์ผู้ใช้ของคุณเองได้ถูกเพิ่มลงในโมดูล Qt Wayland Compositor .

โมดูล Qt QML นำเสนอการใช้งานคอมไพเลอร์ qmltc (คอมไพเลอร์ประเภท QML) ซึ่งช่วยให้คุณสามารถคอมไพล์โครงสร้างอ็อบเจ็กต์ QML ลงในคลาสใน C ++ สำหรับผู้ใช้เชิงพาณิชย์ของ Qt 6.3 การทดสอบผลิตภัณฑ์ Qt Quick Compiler ได้เริ่มต้นขึ้นแล้ว ซึ่งนอกเหนือจาก QML Type Compiler ที่กล่าวถึงข้างต้นแล้ว ยังรวม QML Script Compiler ไว้ด้วย ซึ่งช่วยให้คุณสามารถคอมไพล์ฟังก์ชัน QML และนิพจน์ลงในโค้ด C++ ได้ มีข้อสังเกตว่าการใช้ Qt Quick Compiler จะทำให้ประสิทธิภาพของโปรแกรมที่ใช้ QML ใกล้เคียงกับโปรแกรมเนทิฟมากขึ้น โดยเฉพาะอย่างยิ่งเมื่อทำการคอมไพล์ส่วนขยาย เวลาเริ่มต้นและดำเนินการจะลดลงประมาณ 30% เมื่อเทียบกับการใช้เวอร์ชันที่ตีความ .

ที่มา: opennet.ru

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