このページでは

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_ROOTQUL_TOOLS は、以下のコマンドラインの例では、環境変数として設定されているものとして使用されています。例えば

Ultraliteを変更する。
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_FILEQUL_TARGET_TOOLCHAIN_DIRQUL_PLATFORM、およびQUL_BOARD_SDK_DIRの CMake 変数を適宜更新してください。変数QUL_PLATFORM の値は、<BOARD-NAME><OS> の組み合わせでなければなりません。以下は、使用可能なすべての値のリストです:

  • TVIIC2D4M-baremetal
  • TVIIC2D4MLITE-baremetal
  • TVIIC2D6M-baremetal
  • MIMXRT1050-EVK-baremetal
  • MIMXRT1050-EVK-freertos
  • MIMXRT1060-EVKB-baremetal
  • MIMXRT1064-EVK-baremetal
  • MIMXRT1064-EVK-freertos
  • MIMXRT1170-EVKB-freertos
  • RH850-D1M1A-baremetal
  • RH850-D1M1A-autosar
  • STM32F769I-DISCOVERY-baremetal
  • STM32F769I-DISCOVERY-freertos
  • STM32H750B-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_PREFIXQt for MCUs インストール・ディレクトリに設定します。Qt CreatorEdit > Preferences > Devices > MCU オプションで設定したQt for MCUs バージョンと一致する必要があります。
  • QUL_VERSION を対応するバージョン番号に設定する。例えば、Qt CreatorC:\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 をビルドしてインストールし、それを使ってアプリケーションをビルドします:

  1. 選択したターゲット用に開発環境をセットアップする。
  2. 選択したターゲットとツールチェーンに従って環境変数を設定します。例えば、以下はMIMXRT1170-EVKBとARM GCCツールチェーン用のコマンドです。他のプラットフォームやツールチェーン用にビルドするには、QUL_PLATFORM_NAMEQUL_BOARD_SDK_DIRCMAKE_TOOLCHAIN_FILEQUL_TARGET_TOOLCHAIN_DIRFREERTOS_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
  3. 前のセクションで説明したようにプラットフォーム・ライブラリをビルドしてインストールした場合は、ステップ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
  4. カスタムビルドの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 ライセンスの下で利用可能です。
詳細を確認してください。