บริษัทคิวที
ในอนาคตอันใกล้นี้ คาดว่าจะมีการสร้างโครงการอิสระเพื่อพัฒนา Qbs ต่อไปโดยชุมชน ซึ่งชะตากรรมจะขึ้นอยู่กับความสนใจในระบบการประกอบที่เป็นปัญหาจากนักพัฒนาอิสระ บริษัท Qt หยุดดำเนินการกับ Qbs เนื่องจากต้องมีการลงทุนเพิ่มเติมและมีค่าใช้จ่ายสูงในการโปรโมต Qbs
ขอให้เราจำไว้ว่าในการสร้าง Qbs นั้น Qt เป็นสิ่งจำเป็นในการพึ่งพา แม้ว่า Qbs เองจะได้รับการออกแบบเพื่อจัดระเบียบแอสเซมบลีของโปรเจ็กต์ก็ตาม Qbs ใช้เวอร์ชันที่เรียบง่ายของภาษา QML เพื่อกำหนดสคริปต์การสร้างโปรเจ็กต์ ซึ่งช่วยให้คุณกำหนดกฎการสร้างที่ค่อนข้างยืดหยุ่นซึ่งสามารถเชื่อมต่อโมดูลภายนอก ใช้ฟังก์ชัน JavaScript และสร้างกฎการสร้างแบบกำหนดเองได้
Qbs ไม่ได้สร้าง makefiles และควบคุมการเปิดตัวคอมไพเลอร์และลิงก์เกอร์อย่างอิสระ โดยปรับกระบวนการสร้างให้เหมาะสมตามกราฟโดยละเอียดของการขึ้นต่อกันทั้งหมด การมีข้อมูลเริ่มต้นเกี่ยวกับโครงสร้างและการพึ่งพาในโครงการช่วยให้คุณสามารถดำเนินการดำเนินการในหลายเธรดพร้อมกันได้อย่างมีประสิทธิภาพ
นวัตกรรมที่สำคัญใน Qbs 1.13:
- เพิ่มความสามารถในการใช้โมดูล pkg-config ในโครงการโดยใช้กลไกการประมวลผลการพึ่งพาแบบเดียวกับที่ใช้สำหรับโมดูล Qbs ตัวอย่างเช่น หากระบบของคุณมีแพ็คเกจสำหรับการสร้าง OpenSSL โดยใช้ pkg-config เพื่อใช้ในโปรเจ็กต์ Qbs เพียงเพิ่ม 'Depends { name: "openssl" }';
- ใช้การตรวจจับอัตโนมัติของโมดูล Qt ที่มีอยู่ นักพัฒนาไม่จำเป็นต้องสร้างโปรไฟล์ด้วยเส้นทางโมดูลโดยใช้คำสั่ง setup-qt อีกต่อไป โมดูล Qt ทั้งหมดที่ระบุในการขึ้นต่อกันจะได้รับการกำหนดค่าโดยอัตโนมัติ
- เพิ่มเครื่องมือเพื่อควบคุมจำนวนงานประกอบที่ทำงานแบบขนานในระดับคำสั่งแต่ละคำสั่ง ตัวอย่างเช่น การลิงก์จะสร้างโหลด I/O ขนาดใหญ่ และใช้ RAM เป็นจำนวนมาก ดังนั้นตัวเชื่อมโยงจึงต้องการการตั้งค่าการเริ่มต้นที่แตกต่างจากคอมไพเลอร์ ขณะนี้สามารถตั้งค่าแยกกันได้โดยใช้คำสั่ง “qbs —job-limits linker:2,compiler:8”;
- มีการเปลี่ยนแปลงภาษาสคริปต์ ขณะนี้สามารถกำหนดกฎได้โดยไม่ต้องระบุไฟล์ stub สำหรับเอาต์พุต และไม่จำเป็นต้องใช้คำสั่ง "import qbs" ที่จุดเริ่มต้นของไฟล์โปรเจ็กต์ เพิ่มคุณสมบัติการติดตั้งและ installDir ใหม่ให้กับองค์ประกอบ Application, DynamicLibrary และ StaticLibrary เพื่อการติดตั้งไฟล์ปฏิบัติการได้สะดวกยิ่งขึ้น
- เพิ่มการรองรับการสแกนสคริปต์ตัวเชื่อมโยงแบบเรียกซ้ำ
ตัวเชื่อมโยง GNU; - สำหรับ C++ คุณสมบัติ cpp.linkerVariant ได้ถูกนำมาใช้เพื่อบังคับให้ใช้ตัวเชื่อมโยง ld.gold, ld.bfd หรือ lld
- Qt แนะนำคุณสมบัติ Qt.core.enableBigResources สำหรับการสร้างทรัพยากร Qt ขนาดใหญ่
- แทนที่จะเป็นองค์ประกอบ AndroidApk ที่ล้าสมัย ขอเสนอให้ใช้ประเภทแอปพลิเคชันทั่วไป
- เพิ่มโมดูลสำหรับสร้างการทดสอบตามการทดสอบอัตโนมัติ
- เพิ่มโมดูลเทมเพลตข้อความที่มีความสามารถคล้ายกับ QMAKE_SUBSTITUTES ใน qmake
- เพิ่มการรองรับเบื้องต้นสำหรับรูปแบบ Protocol Buffers สำหรับ C++ และ Objective-C
ที่มา: opennet.ru