發布 Qbs 1.21 建置工具並開始 Qt 6.3 測試

Qbs 1.21 建置工具版本已發佈。 這是自 Qt 公司退出該專案開發以來的第八個版本,由有興趣繼續開發 Qbs 的社群準備。 要建構 Qbs,依賴項中需要 Qt,儘管 Qbs 本身旨在組織任何專案的組裝。 Qbs 使用 QML 語言的簡化版本來定義專案建置腳本,它允許您定義相當靈活的建置規則,可以連接外部模組、使用 JavaScript 函數以及建立自訂建置規則。

Qbs 中使用的腳本語言適用於通過 IDE 自動生成和解析構建腳本。 此外,Qbs 不生成 makefile,並且它自己在沒有 make 實用程序等中介的情況下控制編譯器和鏈接器的啟動,根據所有依賴項的詳細圖表優化構建過程。 項目中結構和依賴關係的初始數據的存在使您可以有效地並行執行多個線程中的操作。 對於包含大量文件和子目錄的大型項目,使用 Qbs 的重建性能可以比 make 好幾倍——重建幾乎是瞬時的,不會讓開發人員花費時間等待。

回想一下,2018 年,Qt 公司決定停止開發 Qbs。 Qbs 是作為 qmake 的替代品而開發的,但從長遠來看,最終決定使用 CMake 作為 Qt 的主要構建系統。 Qbs 的開發現在作為一個獨立項目繼續進行,得到社區力量和感興趣的開發人員的支持。 Qt 公司的基礎設施繼續用於開發。

Qbs 1.21 的主要創新:

  • 模組提供者(模組產生器)的機制已被重新設計。 對於 Qt 和 Boost 等框架,現在可以使用多個提供程序,使用新的 qbsModuleProviders 屬性指定要執行的提供程序,並指定選擇不同提供者產生的模組的優先權。 例如,您可以指定兩個提供者“Qt”和“qbspkgconfig”,其中第一個提供者將嘗試使用使用者的Qt 安裝(透過qmake 搜尋),如果未找到此類安裝,則第二個提供者將嘗試使用系統提供的 Qt(透過呼叫 pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • 新增了「qbspkgconfig」提供程序,它取代了「後備」模組提供程序,如果請求的模組不是由其他提供者產生的,則該提供者會嘗試使用 pkg-config 產生模組。 與“fallback”不同,“qbspkgconfig”不是調用pkg-config 實用程序,而是使用內建C++ 庫直接讀取“.pc”文件,這可以加快工作速度並提供有關包依賴項的附加信息,而這些信息在呼叫 pkg-config 實用程式時不可用。pkg-config 實用程式。
  • 新增了對 C++23 規範的支持,該規範定義了未來的 C++ 標準。
  • 新增了對 GCC 工具包的 Elbrus E2K 架構的支援。
  • 對於 Android 平台,新增了 Android.ndk.buildId 屬性來覆寫「--build-id」連結器標誌的預設值。
  • capnproto 和 protobuf 模組實作了使用 qbspkgconfig 提供者提供的執行時間的能力。
  • 解決了 FreeBSD 上原始檔中的變更追蹤問題,因為在估計檔案修改時間時會遺失毫秒數。
  • 新增了 ConanfileProbe.verbose 屬性,以便更輕鬆地偵錯使用 Conan 套件管理器的項目。

此外,我們可以注意到Qt 6.3框架開始進行alpha測試,它實現了一個新模組“Qt Language Server”,支援Language Server和JsonRpc 2.0協議,大部分新功能已添加到Qt Core中模組,並且QML 類型MessageDialog已在Qt Quick Dialogs 模組中實作。為了使用平台提供的對話框,Qt Wayland Compositor 模組中新增了複合Qt Shell 伺服器和用於建立您自己的自訂shell 擴充功能的API 。

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

添加評論