このページでは

C

のプラットフォーム・キット・ファイルを作成するQt Creator

<YOUR_PLATFORM>/cmake/<YOUR_COMPILER>/<YOUR_PLATFORM>.json ファイルはQt Creator IDE でプラットフォーム・キットを作成するために使用します。Qt Creator の用語でターゲットを表します。

注意: このファイルはQt Creator IDE を使用する場合にのみ必要です。

:Qt Creator では、カスタム・コンパイラーはサポートされていません。

キットの JSON ファイルの主な要素は次のとおりです:

属性説明
qulVersionQt 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変数
settingQt Creator Qt Online Installer によって設定されるべき設定名。
envVar設定からの値を上書きする環境変数名。
labelMCUサポートプラグインの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 ライセンスの下で利用可能です。
詳しく調べてください。