このページでは

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/QtMCUs
set QUL_ROOT=C:\Qt\QtMCUs\2.12.2
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_64mingw_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_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
  • PSOC-EDGE-E84-freertos
  • GERDA-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_PREFIX Qt for MCUs のインストールディレクトリを指定します。これは、 の オプションで設定された のバージョンと一致している必要があります。Qt Creator Edit > Preferences > Devices > MCU Qt for MCUs
  • QUL_VERSION を対応するバージョン番号に設定してください。たとえば、Qt CreatorC:\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 をビルドおよびインストールし、それを使用してアプリケーションをビルドしてください。

    1. 選択したターゲットに合わせて開発環境を設定します。
    2. 選択したターゲットおよびツールチェーンに応じて環境変数を設定します。たとえば、以下はARM GCCツールチェーンを使用したMIMXRT1170-EVKB向けのコマンドです。別のプラットフォームやツールチェーン向けにビルドする場合は、QUL_PLATFORM_NAMEQUL_BOARD_SDK_DIRCMAKE_TOOLCHAIN_FILEQUL_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
    3. 前のセクションの説明に従ってプラットフォームライブラリをビルドおよびインストールした場合は、手順 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.cmake
      set 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
    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 ライセンスでのみ利用可能です。
    詳細はこちらをご覧ください。