C
Qt Quick Ultraliteをソースからビルドする
このトピックでは、Qt Quick Ultralite全体をソースからビルドする手順、またはQt Quick Ultralite評価パッケージに対してプラットフォーム・ライブラリのみをビルドする手順を説明します。
前提条件
- Qt for MCUs SDK
- Qt Creator v13.0.0 またはそれ以降
- CMake 3.21.1 またはそれ以降
- Ninja 1.10.0以降
- Qt 6.2.4(デスクトップ・プラットフォームのみ必要)
注意: ご使用のボードのスタートアップセクションに記載されている前提条件がすべてインストールされていることを確認してください。
コマンドラインのセットアップ
コマンドラインから開始するには、以下の環境変数が設定されていることを確認してください:
- CMakeツールとNinjaツールをシステムに追加する
PATH。これらのツールをQt Online Installer を使ってインストールした場合は、<QT_INSTALL_PATH>\Toolsの下にインストールされます。
QUL_ROOT とQUL_TOOLS は、以下のコマンドラインの例では、環境変数として設定されているものとして使用されています。例えば
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.0 export QUL_TOOLS=$HOME/Qt/Tools/QtMCUs
set QUL_ROOT=C:\Qt\QtMCUs\2.12.0 set QUL_TOOLS=C:\Qt\Tools\QtMCUs
Qt Quick Ultralite Desktopプラットフォームを変更するには、QT_ROOT 環境変数を設定する。
export QT_ROOT=$HOME/Qt/6.2.4/<COMPILER>
set QT_ROOT=C:\Qt\6.2.4\<COMPILER>
ここで、<COMPILER> はホスト環境の開発ツールチェーン(msvc2022_64,mingw_64, またはgcc_64 )と一致します。
Qt 6.2.4 はQt for MCUs で使用されるデフォルトのバージョンです。ホスト環境にインストールされている Qt のバージョンに合わせてQT_ROOT を変更してください。
ソースからQt Quick Ultralite をビルドする
あなたのライセンスでQt Quick Ultralite のソースにアクセスできる場合は、以下のコマンドを使ってビルドしてください。
ターゲットハードウェア用のソースからのビルド
例えば、以下はベアメタル上のNXP i.MX RT1050 用にQt Quick Ultralite をビルドします:
cd $QUL_ROOT mkdir build cd build mkdir -p .cmake/api/v1/query && touch .cmake/api/v1/query/codemodel-v2 cmake .. -G "Ninja" -DQul_ROOT=$QUL_ROOT -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=../lib/cmake/Qul/toolchain/armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TOOLS/arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=$QUL_TOOLS/NXP/SDK_2_15_000_EVKB-IMXRT1050 -DQUL_GENERATORS=../lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal cmake --build .
cd %QUL_ROOT% mkdir build cd build mkdir .cmake\api\v1\query && echo . > .cmake\api\v1\query\codemodel-v2 cmake .. -G "Ninja" -DQul_ROOT=%QUL_ROOT% -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=..\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TOOLS%\arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=%QUL_TOOLS%\NXP\SDK_2_15_000_EVKB-IMXRT1050 -DQUL_GENERATORS=..\lib\cmake\Qul\QulGenerators.cmake -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal cmake --build .
異なるハードウェアプラットフォーム用にビルドするには、CMAKE_TOOLCHAIN_FILE 、QUL_TARGET_TOOLCHAIN_DIR、QUL_PLATFORM、およびQUL_BOARD_SDK_DIRの CMake 変数を適宜更新してください。変数QUL_PLATFORM の値は、<BOARD-NAME> と<OS> の組み合わせでなければなりません。以下は、使用可能なすべての値のリストです:
TVIIC2D4M-baremetalTVIIC2D4MLITE-baremetalTVIIC2D6M-baremetalMIMXRT1050-EVK-baremetalMIMXRT1050-EVK-freertosMIMXRT1060-EVKB-baremetalMIMXRT1064-EVK-baremetalMIMXRT1064-EVK-freertosMIMXRT1170-EVKB-freertosRH850-D1M1A-baremetalRH850-D1M1A-autosarSTM32F769I-DISCOVERY-baremetalSTM32F769I-DISCOVERY-freertosSTM32H750B-DISCOVERY-baremetal
注意: CMAKE_TOOLCHAIN_FILE の値は、先の例で示したように、GreenHills、IAR、または Arm GCC のいずれかを指定できます。
Qt Quick Ultraliteが正常にビルドされたら、それを使用してサポートされているデモ/サンプルの1つをビルドし、結果のバイナリをターゲット・ハードウェアにフラッシュします。
cmake --build . --target flash_<DEMO_OR_EXAMPLE_NAME>
ここで、DEMO_OR_EXAMPLE_NAME はサポートされているデモまたはサンプルの名前です。
注: flash_<DEMO_OR_EXAMPLE_NAME>_and_bootloader ターゲットを使用して、デモ/サンプルでブートローダをフラッシュすることもできます。
デスクトップ用ソースからのビルド
Qt 6.2.4 はQt for MCUs で使用されるデフォルトのバージョンです。ホスト環境にインストールされている Qt のバージョンに合わせてQT_ROOT を変更してください。
以下はQt Quick Ultralite をデスクトップ用にビルドするものです:
.cd $QUL_ROOT mkdir build cd build mkdir -p .cmake/api/v1/query && touch .cmake/api/v1/query/codemodel-v2 cmake .. -G "Ninja" -DQul_ROOT=$QUL_ROOT -DCMAKE_BUILD_TYPE=Release -DQUL_GENERATORS=../lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM=Qt -DCMAKE_PREFIX_PATH=$QUL_ROOT/bin cmake --build .
cd %QUL_ROOT% mkdir build cd build mkdir .cmake\api\v1\query && echo . > .cmake\api\v1\query\codemodel-v2 cmake .. -G "Ninja" -DQul_ROOT=%QUL_ROOT% -DCMAKE_BUILD_TYPE=Release -DQUL_GENERATORS=..\lib\cmake\Qul\QulGenerators.cmake -DQUL_PLATFORM=Qt -DCMAKE_PREFIX_PATH=%QUL_ROOT%\bin cmake --build .
注: Qt Quick Ultraliteプロジェクトでは、CMAKE_BUILD_TYPE はデフォルトでMinSizeRel に設定されています。MinSizeRel は、Qt Quick Ultraliteに同梱されているビルド済みプラットフォーム・ライブラリに使用されるビルドタイプです。ビルドタイプを変更するには(例えばRelease に)、-DCMAKE_BUILD_TYPE=Release オプションを付けて CMake を起動します。詳細については、CMAKE_BUILD_TYPEを参照してください。
Qt Quick 評価パッケージに対するUltraliteプラットフォームライブラリのビルド
Qt Quick Ultraliteの評価版では、すでにQt Quick Ultraliteと一緒に出荷されているプラットフォームを変更したり再構築したりすることができます。例えば、少し異なるボード構成に移植します。
カスタムハードウェアプラットフォーム用に独自のプラットフォームライブラリを作成する方法については、Qt Quick Ultraliteプラットフォーム移植ガイドを参照してください。
注: ソースを修正したり、カスタムビルドプラットフォームライブラリをインストールする前に、使用している既存のQt for MCUs バージョンをバックアップしてください。この方法により、カスタムビルドバージョンで問題が発生した場合に、元のバージョンを復元することができます。
ターゲット・ハードウェア用のプラットフォーム・ライブラリの構築
以下のコマンドは、参照プラットフォームとしてベアメタル上のNXP i.MX RT1050 を使用して、Qt Quick Ultralite プラットフォーム・ライブラリをビルドします:
i.MX RT1050をリファレンス・プラットフォームとしてベアメタルで使用しています。cd $QUL_ROOT mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=$QUL_ROOT -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=$QUL_ROOT/lib/cmake/Qul/toolchain/armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TOOLS/arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=$QUL_TOOLS/NXP/SDK_2_15_000_EVKB-IMXRT1050 -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal -DQUL_BUILD_DEMOS=off -DQUL_BUILD_EXAMPLES=off -DQUL_BUILD_FRAMEWORK=off -DQUL_GENERATORS=$QUL_ROOT/lib/cmake/Qul/QulGenerators.cmake cmake --build .
cd %QUL_ROOT% mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=%QUL_ROOT% -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=%QUL_ROOT%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TOOLS%\arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=%QUL_TOOLS%\NXP\SDK_2_15_000_EVKB-IMXRT1050 -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal -DQUL_BUILD_DEMOS=off -DQUL_BUILD_EXAMPLES=off -DQUL_BUILD_FRAMEWORK=off -DQUL_GENERATORS=%QUL_ROOT%/lib/cmake/Qul/QulGenerators.cmake cmake --build .
カスタムビルドプラットフォームライブラリを使用するようにQt Creator の統合を更新するには、以下の2つの環境変数を設定します:
CMAKE_INSTALL_PREFIXをQt for MCUs インストール・ディレクトリに設定します。Qt Creator のEdit > Preferences > Devices > MCU オプションで設定したQt for MCUs バージョンと一致する必要があります。QUL_VERSIONを対応するバージョン番号に設定する。例えば、Qt Creator がC:\Qt\QtMCUs\<VERSION>を使用するように設定されている場合、<VERSION>は使用しているQt Quick Ultralite バージョン(例えば 2.12.0)を含むディレクトリです。
これらの変数を設定した後、以下のコマンドを使用してプラットフォーム・ライブラリーを設定し、インストールします:
export QUL_VERSION=<VERSION> cd $QUL_ROOT mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=$QUL_ROOT -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=../lib/cmake/Qul/toolchain/armgcc.cmake -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TOOLS/arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=$QUL_TOOLS/NXP/SDK_2_15_000_EVKB-IMXRT1050 -DQUL_BUILD_DEMOS=off -DQUL_BUILD_EXAMPLES=off -DQUL_BUILD_FRAMEWORK=off -DCMAKE_INSTALL_PREFIX=$QUL_ROOT -DQUL_VERSION=$QUL_VERSION -DQUL_GENERATORS=$QUL_ROOT/lib/cmake/Qul/QulGenerators.cmake cmake --build . cmake --install .
set QUL_VERSION=<VERSION> cd %QUL_ROOT% mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=%QUL_ROOT% -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=..\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TOOLS%\arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=%QUL_TOOLS%\NXP\SDK_2_15_000_EVKB-IMXRT1050 -DQUL_BUILD_DEMOS=off -DQUL_BUILD_EXAMPLES=off -DQUL_BUILD_FRAMEWORK=off -DCMAKE_INSTALL_PREFIX=%QUL_ROOT% -DQUL_VERSION=%QUL_VERSION% -DQUL_GENERATORS=%QUL_ROOT%/lib/cmake/Qul/QulGenerators.cmake cmake --build . cmake --install .
デスクトップ用プラットフォーム・ライブラリーの構築
以下のコマンドは、カスタム Qt プラットフォームライブラリ(デスクトップシミュレータ)をビルドしてインストールします。
export QUL_VERSION=<VERSION> cd $QUL_ROOT mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=$QUL_ROOT -DCMAKE_BUILD_TYPE=Release -DQUL_BUILD_FRAMEWORK=OFF -DQUL_BUILD_TOOLS=OFF -DQUL_BUILD_TESTS=OFF -DQUL_BUILD_EXAMPLES=OFF -DQUL_BUILD_DEMOS=OFF -DCMAKE_INSTALL_PREFIX=$QUL_ROOT -DQUL_VERSION=$QUL_VERSION -DQUL_GENERATORS=$QUL_ROOT/lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM=Qt -DCMAKE_PREFIX_PATH=$QUL_ROOT/bin;$QT_ROOT cmake --build . cmake --install .
set QUL_VERSION=<VERSION> cd %QUL_ROOT% mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=%QUL_ROOT% -DCMAKE_BUILD_TYPE=Release -DQUL_BUILD_FRAMEWORK=OFF -DQUL_BUILD_TOOLS=OFF -DQUL_BUILD_TESTS=OFF -DQUL_BUILD_EXAMPLES=OFF -DQUL_BUILD_DEMOS=OFF -DCMAKE_INSTALL_PREFIX=%QUL_ROOT% -DQUL_VERSION=%QUL_VERSION% -DQUL_GENERATORS=%QUL_ROOT%/lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM=Qt -DCMAKE_PREFIX_PATH=%QUL_ROOT%\bin;%QT_ROOT% cmake --build . cmake --install .
カスタムビルドのQt Quick Ultraliteを使ったアプリケーションの構築
このセクションでは、カスタムビルドされたQt Quick Ultralite を使ってアプリケーションをビルドする方法を説明します。
Qt Quick Ultralite をビルドしてインストールし、それを使ってアプリケーションをビルドします:
- 選択したターゲット用に開発環境をセットアップする。
- 選択したターゲットとツールチェーンに従って環境変数を設定します。例えば、以下はMIMXRT1170-EVKBとARM GCCツールチェーン用のコマンドです。他のプラットフォームやツールチェーン用にビルドするには、
QUL_PLATFORM_NAME、QUL_BOARD_SDK_DIR、CMAKE_TOOLCHAIN_FILE、QUL_TARGET_TOOLCHAIN_DIR、FREERTOS_DIR環境変数を適宜変更してください。FreeRTOS プラットフォーム用にビルドしない場合は、FREERTOS_DIRパラメーターは削除できます。export QUL_PLATFORM_NAME=mimxrt1170-evkb-freertos export QUL_BOARD_SDK_DIR=$QUL_TOOLS/NXP/SDK_2_14_0_MIMXRT1170-EVKB export CMAKE_TOOLCHAIN_FILE=$QUL_ROOT/lib/cmake/Qul/toolchain/armgcc.cmake export QUL_TARGET_TOOLCHAIN_DIR=$QUL_TOOLS/arm_gcc_12_3_1 export FREERTOS_DIR=$QUL_TOOLS/NXP/SDK_2_14_0_MIMXRT1170-EVKB/rtos/freertos/freertos-kernel
set QUL_PLATFORM_NAME=mimxrt1170-evkb-freertos set QUL_BOARD_SDK_DIR=%QUL_TOOLS%\NXP\SDK_2_14_0_MIMXRT1170-EVKB set CMAKE_TOOLCHAIN_FILE=%QUL_ROOT%\lib\cmake\Qul\toolchain\armgcc.cmake set QUL_TARGET_TOOLCHAIN_DIR=%QUL_TOOLS%\arm_gcc_12_3_1 set FREERTOS_DIR=%QUL_TOOLS%\NXP\SDK_2_14_0_MIMXRT1170-EVKB\rtos\freertos\freertos-kernel
- 前のセクションで説明したようにプラットフォーム・ライブラリをビルドしてインストールした場合は、ステップ4の指示に従ってアプリケーションをビルドしてください。
そうでない場合、このステップでは、変更したソースからQt Quick Ultralite をビルドし、カスタムの場所にインストールする方法を説明します。作業を始める前に、カスタマイズ版のビルドに使用したQt for MCUs バージョンをコピーしてください。これにより、カスタマイズ・バージョンにホスト・ツール(qmltocpp、qmlinterfacegeneratorなど)とCMakeコンフィギュレーションも含まれるようになります。次の例は、カスタマイズされたバージョンをビルドして
.QUL_INSTALL_DIRにインストールする方法を示しています。ビルドはQUL_BUILD_DIRで定義されたディレクトリで行われます。export QUL_VERSION=2.12.0 export QUL_INSTALL_DIR=some/path/custom_qul export QUL_BUILD_DIR=some/path/custom_qul_build mkdir -p $QUL_INSTALL_DIR cp -r $QUL_ROOT/* $QUL_INSTALL_DIR mkdir -p $QUL_BUILD_DIR cd $QUL_BUILD_DIR cmake $QUL_ROOT -DQul_ROOT=$QUL_ROOT -G "Ninja" -DCMAKE_INSTALL_PREFIX=$QUL_INSTALL_DIR -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TARGET_TOOLCHAIN_DIR -DQUL_BOARD_SDK_DIR=$QUL_BOARD_SDK_DIR -DQUL_PLATFORM=$QUL_PLATFORM_NAME -DQUL_BUILD_DEMOS=OFF -DQUL_BUILD_EXAMPLES=OFF -DQUL_GENERATORS=$QUL_ROOT/lib/cmake/Qul/QulGenerators.cmake -DFREERTOS_DIR=$FREERTOS_DIR -DQUL_VERSION=$QUL_VERSION cmake --build . cmake --install . # Before the next step, update QUL_ROOT and CMAKE_TOOLCHAIN_FILE to point to your custom version export QUL_ROOT=$QUL_INSTALL_DIR export CMAKE_TOOLCHAIN_FILE=$QUL_INSTALL_DIR/lib/cmake/Qul/toolchain/armgcc.cmake
set QUL_VERSION=2.12.0 set QUL_INSTALL_DIR=some\path\custom_qul set QUL_BUILD_DIR=some\path\custom_qul_build mkdir %QUL_INSTALL_DIR% xcopy %QUL_ROOT% %QUL_INSTALL_DIR% /e /y /q mkdir %QUL_BUILD_DIR% cd %QUL_BUILD_DIR% cmake %QUL_ROOT% -DQul_ROOT=%QUL_ROOT% -G "Ninja" -DCMAKE_INSTALL_PREFIX=%QUL_INSTALL_DIR% -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN_FILE% -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TARGET_TOOLCHAIN_DIR% -DQUL_BOARD_SDK_DIR=%QUL_BOARD_SDK_DIR% -DQUL_PLATFORM=%QUL_PLATFORM_NAME% -DQUL_BUILD_DEMOS=OFF -DQUL_BUILD_EXAMPLES=OFF -DQUL_GENERATORS=%QUL_ROOT%/lib/cmake/Qul/QulGenerators.cmake -DFREERTOS_DIR=%FREERTOS_DIR% -DQUL_VERSION=%QUL_VERSION% cmake --build . cmake --install . rem Before the next step, update QUL_ROOT and CMAKE_TOOLCHAIN_FILE to point to your custom version set QUL_ROOT=%QUL_INSTALL_DIR% set CMAKE_TOOLCHAIN_FILE=%QUL_INSTALL_DIR%/lib/cmake/Qul/toolchain/armgcc.cmake
- カスタムビルドのQt Quick Ultralite を使用してアプリケーションをビルドします。
QUL_ROOTを、それがインストールされているディレクトリに設定します。インストール・ステップではQulGenerators.cmakeはインストールされないので、QUL_ROOT_ORIGINALはオリジナルのQt Quick Ultralite インストール・フォルダーを指す必要があります。 .# You can use the minimal example from the SDK. export APP_DIR=some/path/custom_app export QUL_ROOT=some/path/custom_qul export QUL_ROOT_ORIGINAL=some/path/original_qul mkdir $APP_DIR cd $APP_DIR mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=$QUL_ROOT -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TARGET_TOOLCHAIN_DIR -DQUL_GENERATORS=$QUL_ROOT_ORIGINAL/lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM=$QUL_PLATFORM_NAME -DQUL_BOARD_SDK_DIR=$QUL_BOARD_SDK_DIR cmake --build . cmake --build . --target flash_<TARGET_NAME>
rem You can use the minimal example from the SDK. set APP_DIR=some\path\custom_app set QUL_ROOT=some\path\custom_qul set QUL_ROOT_ORIGINAL=some\path\original_qul mkdir %APP_DIR% cd %APP_DIR% mkdir build cd build cmake .. -G "Ninja" -DQul_ROOT=%QUL_ROOT% -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN_FILE% -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TARGET_TOOLCHAIN_DIR% -DQUL_GENERATORS=%QUL_ROOT_ORIGINAL%/lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM=%QUL_PLATFORM_NAME% -DQUL_BOARD_SDK_DIR=%QUL_BOARD_SDK_DIR% cmake --build . cmake --build . --target flash_<TARGET_NAME>
注: Qt Quick Ultraliteプロジェクトでは、CMAKE_BUILD_TYPE はデフォルトでMinSizeRel に設定されています。MinSizeRel は、Qt Quick Ultraliteに同梱されているビルド済みプラットフォーム・ライブラリに使用されるビルドタイプです。ビルドタイプを変更するには(例えばRelease に)、-DCMAKE_BUILD_TYPE=Release オプションを付けて CMake を起動します。詳細については、CMAKE_BUILD_TYPEを参照してください。
特定の Qt ライセンスの下で利用可能です。
詳細を確認してください。