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 | プラットフォームが使用するツールチェーンの詳細を含むオブジェクト。これは、コンパイラとファイルの2つのオブジェクトに分かれています。前者はコンパイラーを見つけるのに役立ち、後者はツールチェーンのCMakeファイルの場所を含んでいます。 |
boardSdk | プラットフォームが使用するSDKの詳細を含むオブジェクト。 |
freeRTOS | プラットフォームのFreeRTOS サポートの詳細を含むオブジェクト。この部分はベアメタルデバイスには存在しない。 |
JSON ファイルには、Qt Creator がキットを作成するために使用する json オブジェクトのコレクションが含まれています。各オブジェクトはサードパーティの依存関係(パッケージ)を表し、依存関係へのパスを保持します。このパスは後でさまざまな出力に転送されます:
- プロジェクトの設定に使用される cmake 変数 (例えば、-DFREERTOS_DIR=<パス>)
- PATH 環境変数に追加されるディレクトリ
パッケージの値は、Qt Creator 、以下の場所からこの順番で読み込むことができます:
- Qt Creator 設定。
- 対応する環境変数(
envVar)。 - jsonファイルで定義された
defaultValue。
要約すると、正しいキットを生成するために必要なパッケージは以下のとおりです:
- プラットフォームのサードパーティパッケージ(cmakeEntries配列)。
- ツールチェーンパッケージ(コンパイラとツールチェーンファイル)。
- BoardSdkパッケージ
- FreeRTOS パッケージ(該当する場合)
各パッケージには以下の属性があります:
| 属性 | 説明 |
|---|---|
cmakeVar | 出力cmake変数 |
setting | Qt Creator Qt Online Installer によって設定されるべき設定名。 |
envVar | 設定からの値を上書きする環境変数名。 |
label | MCUサポートプラグインのUIに表示されるラベル (Edit -> Preferences -> Devices -> MCU) |
defaultValue | 設定または環境変数が設定されていない場合に使用されるデフォルト値。windowsとlinuxで別々の値に分割。 |
versions | サポートされているバージョンのリスト。 |
versionDetection | バージョン検出に使用される情報。 |
validation | パッケージの検証に使用されるパスサフィックス。 |
プラットフォームのjsonキットファイルは、$QUL_ROOT/kits/schemas/ にあるスキーマファイルとjsonschema検証ツールを使って検証できます。スキーマは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 ライセンスの下で利用可能です。
詳しく調べてください。