Qbs 是一個社區驅動的、與語言無關的構建自動化系統。 它速度很快,並提供了一種基於 QML 的易於學習的語言。
最近 發布新版Qbs 2.0, 這是用於管理軟件創建過程的免費開源跨平台軟件。 它旨在支持以各種編程語言(主要是 C/C++)編寫的大型複雜項目。
新版本 2.0 在版本號上很重要,因為它與新 JavaScript 後端的實現相關聯。,它取代了在 Qt 6 中棄用的 QtScript。
對於那些不知道 Qbs 的人,他們應該知道這 使用QML語言的簡化版本 定義項目構建腳本,允許您定義相當靈活的構建規則,其中可以插入外部模塊,可以使用 JavaScript 函數,並且可以創建任意構建規則。
Qbs 的獨特之處在於它e 沒有任何內部編譯機制, 確保能夠從單個源代碼樹創建多個構建,包括從單個命令調用並行構建。
這是一個關鍵特性,它 如果刪除構建目錄,確保源文件不受影響 並且沒有輸出工件被寫入源目錄。 要構建 Qbs,需要 Qt 作為依賴項,儘管 Qbs 本身旨在組織任何項目的程序集。
Qbs 中使用的腳本語言專門用於通過 IDE 自動生成和解析構建腳本。 此外,Qbs 不生成 makefile,並且在沒有像 make 實用程序這樣的中介的情況下,控制編譯器和鏈接器的發布,根據所有依賴關係的詳細圖表優化構建過程。
項目中結構和依賴關係的初始數據的存在使您可以有效地並行執行多個線程中的操作。 對於包含大量文件和子目錄的大型項目,使用 Qbs 重建的性能可以比 make 好幾倍:重建幾乎是瞬時的,不會浪費開發人員等待的時間。
QBS 2.0 的主要創新
這個新版本的 QBS 2.0 正如開頭提到的那樣值得注意,因為 新的 JavaScript 引擎來取代 QtScript Qt 6 已棄用,因為由於與 JavaScriptCore 的複雜綁定,繼續單獨支持 QtScript 被認為是不現實的。
保持 QtScript 及其複雜依賴性的前景似乎並不特別吸引人。 然而,兩個候選人都沒有提供 API 來攔截屬性訪問,開發人員表示出於性能原因他們絕對需要這些 API。
從用戶的角度來看,應該沒有明顯的變化; 特別是,性能似乎大致相同。 但是,QtScript 在不需要的上下文中接受未定義的值時相當寬鬆,因此新的實現可能會發現您項目中的一些錯誤。
電機符合ES2019規範 並且在性能上顯著優於現有的同類產品(XS 35%,DukTape 兩倍多,JerryScript 三倍,MuJS 七倍)。 從構建腳本開發的角度來看,過渡到新引擎不應導致明顯的變化。
性能也將保持大致相同。 在差異中,新引擎對空值的使用有更嚴格的要求,這可以揭示現有項目中使用 QtScript 時未註意到的問題。
除此之外,還提到了 刪除了 qmake 項目文件,從而減少了維護工作 對於開發人員。
最後提到 2.1 版將重寫代碼,開發人員認為他們將擁有幾個新功能以及一般性能改進。
如果您有興趣了解更多,可以查閱詳情 在下面的鏈接中。