C
创建平台工具包配置文件
<YOUR_PLATFORM>.json
文件用于在 Qt Creator IDE 中创建平台工具包。它在 Qt Creator 中表示一个目标。
注意:此文件仅适用于您要使用 Qt Creator IDE 的情况。
注意:Qt Creator 不支持自定义编译器。
工具包 JSON 文件的主要元素包括
属性 | 描述 |
---|---|
qulVersion | 平台构建所依赖的 Qt Quick Ultralite 版本。默认情况下,此值设置为 @CMAKE_PROJECT_VERSION@ 。 |
platform | 包含平台名称、支持的颜色深度列表、供应商/制造商名称和第三方软件包的对象。 |
toolchain | 包含平台使用的工具链详细信息的对象。它分为两个对象 - 编译器和文件。前者帮助查找编译器,后者包含工具链的 CMake 文件的位置 使用自定义工具链。 |
boardSdk | 包含平台使用的 SDK 详细信息的对象。 |
freeRTOS | 包含平台 FreeRTOS 支持详细信息的对象。这部分不在裸机设备中存在。 |
JSON 文件包含一组合成的 json 对象,Qt Creator 使用这些对象来创建工具包。每个对象代表第三方依赖项(软件包),并持有依赖项的路径。路径稍后将转发到不同的输出
- 用于配置项目的 cmake 变量(例如 -DFREERTOS_DIR=<path>)
- 将添加到 PATH 环境变量中的目录
软件包值可以按以下顺序从以下位置由 QtCreator 读取
- Qt Creator 设置。
- 相应的环境变量(
envVar
)。 - 在 json 文件中定义的
defaultValue
。
总之,生成正确工具包所需的软件包包括
- 平台的第三方软件包(cmakeEntries 数组)。
- 工具链软件包(一个编译器和工具链文件)。
- BoardSdk 软件包
- FreeRTOS 软件包(当适用时)
每个软件包都有以下属性
属性 | 描述 |
---|---|
cmakeVar | 输出 cmake 变量 |
setting | 应由 Qt Online 安装程序设置的 QtCreator 设置名称。 |
envVar | 要覆盖设置中值的环境变量名称。 |
label | 在 MCU 支持插件的 UI 中显示的标签(编辑 -> 预设 -> 设备 -> MCU) |
defaultValue | 默认值,用于设置或环境变量未设置时。针对Windows和Linux分别设置不同的值。 |
版本 | 支持的版本列表。 |
版本检测 | 用于版本检测的信息。 |
验证 | 用于验证软件包的路径后缀。 |
可以使用位于 $QUL_ROOT/kits/schemas/ 中的架构文件和一个可选择的 jsonschema 验证工具来验证平台 json 工具文件,在线解决方案可以在这里找到。架构使用Draft-2020-12规范。目前只提供 "schema-2.3",以验证与 QtMCUs 2.3.0 及更高版本兼容的套件。
套件的 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 许可证下可用。
了解更多信息。