Qbs 1.21 ビルド ツールのリリースが発表されました。 これは、Qt Company がプロジェクトの開発を中止してから XNUMX 回目のリリースであり、Qbs の開発継続に関心のあるコミュニティによって準備されました。 Qbs を構築するには、依存関係の中に Qt が必要ですが、Qbs 自体はあらゆるプロジェクトのアセンブリを編成するように設計されています。 Qbs は、QML 言語の簡易バージョンを使用してプロジェクト ビルド スクリプトを定義します。これにより、外部モジュールの接続、JavaScript 関数の使用、およびカスタム ビルド ルールの作成が可能な、かなり柔軟なビルド ルールを定義できます。
Qbs で使用されるスクリプト言語は、IDE によるビルド スクリプトの生成と解析を自動化するように適合されています。 さらに、Qbs は makefile を生成せず、make ユーティリティなどの仲介者なしで Qbs 自体がコンパイラーとリンカーの起動を制御し、すべての依存関係の詳細なグラフに基づいてビルド プロセスを最適化します。 プロジェクト内の構造と依存関係に関する初期データが存在することにより、複数のスレッドでの操作の実行を効果的に並列化できます。 多数のファイルとサブディレクトリで構成される大規模なプロジェクトの場合、Qbs を使用したリビルドのパフォーマンスは make よりも数倍優れています。リビルドはほぼ瞬時に行われ、開発者が待ち時間を費やす必要はありません。
2018 年に Qt Company が Qbs の開発を中止することを決定したことを思い出してください。 Qbs は qmake の代替として開発されましたが、最終的には長期的には CMake を Qt のメイン ビルド システムとして使用することが決定されました。 Qbs の開発は現在、コミュニティの力と関心のある開発者によってサポートされる独立したプロジェクトとして継続されています。 Qt Company インフラストラクチャは引き続き開発に使用されます。
Qbs 1.21 の主な革新:
- モジュールプロバイダー(モジュールジェネレーター)の仕組みが再設計されました。 Qt や Boost などのフレームワークでは、複数のプロバイダーを使用したり、新しい qbsModuleProviders プロパティを使用して実行するプロバイダーを指定したり、さまざまなプロバイダーによって生成されたモジュールを選択するための優先順位を指定したりできるようになりました。 たとえば、XNUMX つのプロバイダー「Qt」と「qbspkgconfig」を指定できます。最初のプロバイダーはユーザーの Qt インストール (qmake 検索経由) を使用しようとし、そのようなインストールが見つからない場合は XNUMX 番目のプロバイダーが使用を試みます。システムによって提供される Qt (pkg-config への呼び出し経由) : CppApplication { 依存します { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
- 「qbspkgconfig」プロバイダーを追加しました。これは、要求されたモジュールが他のプロバイダーによって生成されなかった場合に pkg-config を使用してモジュールを生成しようとする「フォールバック」モジュールプロバイダーを置き換えます。 「フォールバック」とは異なり、「qbspkgconfig」は、pkg-config ユーティリティを呼び出す代わりに、組み込みの C++ ライブラリを使用して「.pc」ファイルを直接読み取ります。これにより、作業を高速化し、呼び出し時には取得できないパッケージの依存関係に関する追加情報を取得できます。 pkg-config ユーティリティ。
- 将来の C++ 標準を定義する C++23 仕様のサポートが追加されました。
- GCC ツールキットの Elbrus E2K アーキテクチャのサポートが追加されました。
- Android プラットフォームの場合、「--build-id」リンカー フラグのデフォルト値をオーバーライドする Android.ndk.buildId プロパティが追加されました。
- capnproto モジュールと protobuf モジュールは、qbspkgconfig プロバイダーによって提供されるランタイムを使用する機能を実装します。
- ファイル変更時間を見積もる際にミリ秒が省略されることによる、FreeBSD 上のソース ファイルの変更追跡に関する問題が解決されました。
- コナン パッケージ マネージャーを使用するプロジェクトのデバッグを容易にするために、ConanfileProbe.verbose プロパティを追加しました。
さらに、Language Server および JsonRpc 6.3 プロトコルをサポートする新しいモジュール「Qt Language Server」を実装する Qt 2.0 フレームワークのアルファ テストが開始されたことにも注目できます。新機能の大部分が Qt コアに追加されました。モジュール、および QML タイプ MessageDialog が 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 関数と式を C++ コードにコンパイルできる QML Script Compiler が含まれています。 Qt Quick Compiler を使用すると、QML ベースのプログラムのパフォーマンスがネイティブ プログラムに近づき、特に拡張機能をコンパイルする場合、インタープリタ版を使用した場合と比較して起動時間と実行時間が約 30% 短縮されることに注意してください。 。
出所: オープンネット.ru