Qt Gradle Plugin 1.1 リリース

本稿は「Qt Gradle Plugin 1.1 Released」の抄訳です。
 

Qt Gradle Plugin 1.1(QtGP)がリリースされました。v1.0のリリースを見逃した方は、QtGP 1.0のリリースお知らせをご覧になることをお勧めします。ここでは、v1.1の新機能と、v1.0リリース以来のオプションプロパティの使用例をご紹介します。

改善点

インクリメンタルビルド

QtGP 1.0 リリースで、インクリメンタルビルドのサポートに関する作業が進行中であると申し上げましたが、ついに登場しました。この機能はデフォルトで有効になっており、追加の設定は必要ありません。インクリメンタルビルドは、QtBuildTask の入力と出力を確認することで動作します。何も変更されていない場合、Gradle はそのビルドステップを呼び出さないため、貴重な時間を節約できます。QtBuildの値またはQtプロジェクトを変更すると再ビルドが実行されますが、その後のビルドはより高速になります。 詳細については、Gradleのインクリメンタルビルドのドキュメントを参照することをお勧めします。

ログ

インクリメンタルビルドを追加した後、ログが十分ではないことが判明したため、改善することにしました。 プロセスが完了した後にすべてのログを一括して表示するのではなく、プロセス実行中にログを表示するようにしました。「うーん、もうすぐログが見られるだろう」と待って考えなくてもよくなります。

任意プロパティ

前回は、QtBuildブロック内で指定する必要のある必須プロパティであるqtPathとprojectPathをご紹介しました。 プラグインの追加は前回と同様に行います。バージョン「1.+」を使用するのは、maven centralで利用可能なプラグインの最新バージョンを取得するためです。

plugins {
    id('org.qtproject.qt.gradleplugin') version('1.+')
}

任意プロパティは qtKitDirextraCMakeArgumentsninjaPath です。 

QtBuild {
    qtPath = file('~/Qt/6.8.0')
    projectPath = file('../qmlapp')

    // Optional
    qtKitDir = file('/home/username/qt/build/your-qt-kit')
    extraCMakeArguments = ['-DCMAKE_BUILD_TYPE=Release']
    ninjaPath = '/your/path/to/ninja'
}

qtKitDir: デフォルトでは、QtGPはマルチABIフラグを使用してプロジェクトをビルドします。qtKitDir が定義されている場合、そのキットの ABI のみに対してビルドが行われます。例えば、x86_64 のみに対してビルドを行いたい場合、Qt メンテナンスツールからそのキットを取得し、パスを「C:¥Qt¥6.8.1¥android_x86_64」と定義します。これにより、ビルドがさらに高速化されます。例えば、ご自身でビルドしたキットを使用したい場合は、「C:\Repos\Qt\qt6-build-android-install-arm64-v8a 」のように指定することもできます。

extraCMakeArguments: 名前の通り、ここでは追加の CMake 引数を定義できます。例えば、次のようにします。 現時点では、Android プロジェクトのビルドタイプは考慮されていません。 ビルドタイプを Release に指定できます(デフォルトは Debug)。 これを使用して、任意の CMake フラグを指定できます。

ninjaPath: Ninjaのパスをここで指定できますが、心配は無用です。QtGPは、環境変数PATHと'~/Qt/Tools/Ninja'からNinjaを検索します。例えば、新しいバージョンのNinjaや独自のビルドのNinjaを試したい場合、環境に追加する前にここで試すことができます。

Qt Gradleプラグインの使用方法に関する詳細な情報は、公式ドキュメントを参照してください。

 今後の計画

QtBuildのドキュメントを改善します。Javaのドキュメントはまだありませんが、改善は容易でしょう。プラグインに追加してほしい機能はありますか?下のコメント欄にご記入ください。作業の進捗状況はbugreports.qt.ioで追跡でき、フィードバックを提供できます。


Blog Topics:

Comments