Qt公司
在不久的將來,預計社區將創建一個獨立項目來繼續開發 Qbs,其命運將取決於獨立開發者對相關組裝系統的興趣。 由於推廣Qbs需要額外的投資和高昂的成本,Qt公司停止了對Qbs的開發。
讓我們回想一下,要建立 Qbs,需要 Qt 作為依賴項,儘管 Qbs 本身旨在組織任何專案的組裝。 Qbs 使用 QML 語言的簡化版本來定義專案建置腳本,它允許您定義相當靈活的建置規則,可以連接外部模組、使用 JavaScript 函數以及建立自訂建置規則。
Qbs 不產生 makefile,並獨立控制編譯器和連結器的啟動,根據所有依賴項的詳細圖表最佳化建置過程。 專案中有關結構和依賴關係的初始資料的存在使您可以有效地並行執行多個執行緒中的操作。
Qbs 1.13 的主要創新:
- 新增了在專案中使用 pkg-config 模組的功能,使用與 Qbs 模組相同的依賴關係處理機制。 例如,如果您的系統有一個基於 pkg-config 建構 OpenSSL 的套件,則要在 Qbs 專案中使用它,只需新增 'Depends { name: "openssl" }';
- 實現了可用 Qt 模組的自動檢測。 開發人員不再需要使用 setup-qt 命令建立帶有模組路徑的設定檔;依賴項中指定的所有 Qt 模組都將自動配置;
- 新增了工具來控制在單一命令層級並行運行的組裝任務的數量。 例如,連結會產生大量 I/O 負載並消耗大量 RAM,因此連結器需要與編譯器不同的啟動設定。 現在可以使用指令「qbs —job-limits linker:2,compiler:8」來設定單獨的設定;
- 腳本語言已發生變更。 現在可以定義規則,而無需指定輸出存根文件,並且無需在專案文件開頭使用“import qbs”指令。 Application、DynamicLibrary 和 StaticLibrary 元素中新增了新的 install 和 installDir 屬性,以便更方便地安裝執行檔;
- 新增了對連結描述檔遞歸掃描的支持
GNU 連結器; - 對於 C++,已實作 cpp.linkerVariant 屬性以強制使用 ld.gold、ld.bfd 或 lld 連結器;
- Qt 引入了 Qt.core.enableBigResources 屬性來建立大型 Qt 資源
- 建議使用通用的 Application 類型,而不是過時的 AndroidApk 元素;
- 新增了基於自動測試創建測試的模組;
- 新增了 texttemplate 模組,其功能類似於 qmake 中的 QMAKE_SUBSTITUTES;
- 新增了對 C++ 和 Objective-C 的 Protocol Buffers 格式的初始支援。
來源: opennet.ru