C
用のプラットフォームキットファイルの作成Qt Creator
<YOUR_PLATFORM>/cmake/<YOUR_COMPILER>/<YOUR_PLATFORM>.json このファイルは、Qt Creator IDEでプラットフォームキットを作成するために使用されます。これは、Qt Creator の用語でいう「ターゲット」に相当します。
注:この ファイルは、Qt Creator IDE を使用する場合にのみ必要です。
注: Qt Creator では、カスタム コンパイラはサポートされていません。
このキットのJSONファイルの主な要素は以下の通りです:
| 属性 | 説明 |
|---|---|
qulVersion | Qt Quick プラットフォームのビルド元となるUltraliteのバージョン。デフォルトでは、@CMAKE_PROJECT_VERSION@ に設定されています。 |
platform | プラットフォーム名、サポートされている色深度のリスト、ベンダー/製造元名、およびサードパーティ製パッケージを含むオブジェクト。 |
toolchain | プラットフォームが使用するツールチェーンの詳細を含むオブジェクト。これは「compiler」と「file」の2つのオブジェクトに分かれています。前者はコンパイラの特定に役立ち、後者にはツールチェーンのCMakeファイルの場所が含まれています。カスタムツールチェーンの使用。 |
boardSdk | プラットフォームが使用するSDKの詳細を含むオブジェクト。 |
freeRTOS | プラットフォームのFreeRTOS サポートに関する詳細を含むオブジェクト。この部分はベアメタルデバイスには存在しません。 |
このJSONファイルには、Qt Creator がキットを作成するために使用するJSONオブジェクトのコレクションが含まれています。各オブジェクトはサードパーティの依存関係(パッケージ)を表し、その依存関係へのパスを保持しています。このパスは後でさまざまな出力先に転送されます:
- プロジェクトの構成に使用される CMake 変数(例:-DFREERTOS_DIR=<パス>)
- PATH 環境変数に追加されるディレクトリ
Qt Creator は、以下の場所からこのパッケージの値を読み取ります(順不同):
- Qt Creator settings.
- 対応する環境変数(
envVar)。 - json ファイルで定義された `
defaultValue`。
要約すると、正しいキットを生成するために必要なパッケージは以下の通りです:
- プラットフォームのサードパーティ製パッケージ(cmakeEntries 配列)。
- ツールチェーンパッケージ(コンパイラおよびツールチェーンファイル)。
- BoardSdk パッケージ
- FreeRTOS パッケージ(該当する場合)
各パッケージには、以下の属性があります:
| 属性 | 説明 |
|---|---|
cmakeVar | 出力 CMake 変数 |
setting | Qt Creator Qt Online Installer によって設定されるべき設定名。 |
envVar | 設定値を上書きするための環境変数名。 |
label | MCUサポートプラグインのUI([編集] → [設定] → [デバイス] → [MCU])に表示されるラベル |
defaultValue | 設定または環境変数が設定されていない場合に使用されるデフォルト値。WindowsとLinuxで別々の値に分けています。 |
versions | サポートされているバージョンのリスト。 |
versionDetection | バージョン検出に使用される情報。 |
validation | パッケージの検証に使用されるパスサフィックス。 |
プラットフォームの JSON キットファイルは、$QUL_ROOT/kits/schemas/ にあるスキーマファイルと、任意のJSON スキーマ検証ツールを使用して検証できます。オンラインソリューションはこちらにあります。 スキーマはDraft-2020-12仕様を使用しています。現在、QtMCUs 2.3.0 以降で動作するキットを検証するために、「schema-2.3」のみが提供されています。
JSONキットファイルの例
以下にJSONファイルの例を示します(example-baremetal.json ):
{
"qulVersion": "@CMAKE_PROJECT_VERSION@",
"compatVersion": "@COMPATIBILITY_VERSION@",
"platform": {
"colorDepths": [
16
],
"id": "EXAMPLE-BAREMETAL",
"vendor": "Vendor Name"
},
"toolchain": {
"id": "armgcc",
"versions": [
"12.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": {
"windows": "bin/arm-none-eabi-g++.exe",
"linux": "bin/arm-none-eabi-g++"
},
"executableArgs": "--version",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"detectionPath": {
"windows": "bin/arm-none-eabi-g++.exe",
"linux": "bin/arm-none-eabi-g++"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"versions": [
"1.16.0"
],
"id": "EXAMPLE_SDK_DIR",
"label": "Board SDK",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}以下は、IARコンパイラ用のJSONファイルです。前の例とはいくつかの違いがあります:
{
"qulVersion": "@CMAKE_PROJECT_VERSION@",
"compatVersion": "@COMPATIBILITY_VERSION@",
"platform": {
"id": "EXAMPLE-BAREMETAL",
"vendor": "Vendor Name",
"colorDepths": [
16
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.40.1"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": {
"windows": "bin/iccarm.exe",
"linux": "bin/iccarm"
},
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
},
"detectionPath": {
"windows": "bin/iccarm.exe",
"linux": "bin/iccarm"
},
"defaultValue": {
"windows": "%{Env:PROGRAMFILES}/IAR Systems/Embedded Workbench 9.2/arm",
"linux": "/opt/iarsystems/bxarm-9.40.1/arm"
},
"optional": false
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"versions": [
"1.16.0"
],
"id": "EXAMPLE_SDK_DIR",
"label": "Board SDK",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}特定の Qt ライセンスの下で利用可能です。
詳細はこちら。