C
Qt Quick Ultraliteのソースからのビルド
このトピックでは、ソースからQt Quick Ultralite全体をビルドする方法、あるいはQt Quick Ultralite評価パッケージに対応したプラットフォームライブラリのみをビルドする方法について説明します。
前提条件
- Qt for MCUs SDK
- Qt Creator v19.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.2
export QUL_TOOLS=$HOME/Qt/Tools/QtMCUsset QUL_ROOT=C:\Qt\QtMCUs\2.12.2
set QUL_TOOLS=C:\Qt\Tools\QtMCUsQt 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 for MCUs で使用されるデフォルトのバージョンは Qt 6.2.4 です。ホスト環境にインストールされている希望の 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-baremetalPSOC-EDGE-E84-freertosGERDA-4L-uitron
注: 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 for MCUs で使用されるデフォルトのバージョンは Qt 6.2.4 です。ホスト環境にインストールされている希望の 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="$QT_ROOT"
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="%QT_ROOT%"
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プラットフォームライブラリをビルドします:
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_PREFIXQt for MCUs のインストールディレクトリを指定します。これは、 の オプションで設定された のバージョンと一致している必要があります。Qt Creator Edit > Preferences > Devices > MCU Qt for MCUsQUL_VERSIONを対応するバージョン番号に設定してください。たとえば、Qt Creator がC:\Qt\QtMCUs\<VERSION>を使用するように設定されている場合、<VERSION>は、使用しているQt Quick Ultraliteバージョン(例:2.12.2)が含まれるディレクトリです。
これらの変数を設定した後、次のコマンドを使用してプラットフォームライブラリを設定およびインストールします。
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="$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="%QT_ROOT%"
cmake --build .
cmake --install .独自に構築したQt Quick Ultraliteを使用したアプリケーションの構築
このセクションでは、独自に構築したQt Quick Ultraliteを使用してアプリケーションを構築する方法について説明します。
以下の手順に従って、Qt Quick Ultralite をビルドおよびインストールし、それを使用してアプリケーションをビルドしてください。
- 選択したターゲットに合わせて開発環境を設定します。
- 選択したターゲットおよびツールチェーンに応じて環境変数を設定します。たとえば、以下はARM GCCツールチェーンを使用したMIMXRT1170-EVKB向けのコマンドです。別のプラットフォームやツールチェーン向けにビルドする場合は、
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-kernelset 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.2 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.cmakeset QUL_VERSION=2.12.2 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 ライセンスでのみ利用可能です。
詳細はこちらをご覧ください。