C
创建平台配置文件
platform\<YOUR_PLATFORM>\CMakeLists.txt
是您平台的主要配置文件。它指定了所有源代码,包含目录、编译定义以及您平台所需的其它参数。有关 CMake 语法的信息,请参阅 CMake 文档。您还可以将 platform\boards\qt\example-baremetal\CMakeLists.txt
作为您平台 CMakeLists.txt
的基础。
注意:当定义对于您的平台而言的源代码、包含目录或其它属性时,您必须指定 Platform
作为这些定义的目标。
以下为 example-baremetal
平台的 CMakeLists.txt
target_sources(Platform PRIVATE examplelayerengine.cpp examplepath.cpp examplestroker.cpp examplequeue.cpp platform_context.cpp devicelink.cpp mem.cpp ${PLATFORM_COMMON_SRC_DIR}/singlepointtoucheventdispatcher.cpp ${PLATFORM_COMMON_SRC_DIR}/platform.cpp # Add platform source files here ) target_include_directories(Platform PRIVATE # Add platform specific include directories here ) target_compile_definitions(Platform PRIVATE # Insert platform specific compile flags here # e.g. APPLICATION_ADDRESS=0x90000000 )
示例 CMakeLists.txt
中定义了源代码中的两个文件:platform_context.cpp
和 mem.cpp
/mem-iar.cpp
。这些文件分别包含了基本函数和内存分配 API 的示例代码。这些文件的详细内容请参阅 实现基本函数 和 在 Qt Quick Ultralite 平台抽象中的内存分配 两章。
设置平台属性
与平台相关的配置设置在目标平台的 CMakeLists.txt
文件中,作为 Platform
目标属性。以下表格展示了所有属性及其默认值和说明
常见属性
属性名称 | 默认值 | 说明 |
---|---|---|
QUL_PLATFORM_DEFAULT_SCREEN_WIDTH | 480 | 默认屏幕宽度(像素)。目前仅由桌面后端使用。 |
QUL_PLATFORM_DEFAULT_SCREEN_HEIGHT | 272 | 默认屏幕高度(像素)。目前仅由桌面后端使用。 |
QUL_PLATFORM_DEFAULT_TEXT_CACHE_ENABLED | 关闭 | 目标平台上的默认文本缓存值。有关更多信息,请参阅 QUL_PLATFORM_DEFAULT_TEXT_CACHE_ENABLED。 |
QUL_PLATFORM_DEFAULT_TEXT_CACHE_SIZE | 24*1024 | 目标平台上的默认文本缓存大小。有关更多信息,请参阅 QUL_PLATFORM_DEFAULT_TEXT_CACHE_SIZE。 |
QUL_PLATFORM_DEFAULT_NUM_FRAMES_TO_PRESERVE_ASSETS | 0 | 目标平台上保留资源的默认帧数。有关更多信息,请参阅 QUL_PLATFORM_DEFAULT_NUM_FRAMES_TO_PRESERVE_ASSETS。 |
QUL_PLATFORM_REQUIRED_IMAGE_ALIGNMENT | 1 | 目标平台要求的最小对齐方式。更多信息请见QUL_PLATFORM_REQUIRED_IMAGE_ALIGNMENT。 |
QUL_PLATFORM_REQUIRED_PIXEL_WIDTH_ALIGNMENT | 1 | 在目标平台上,图像宽度将是该值的倍数。更多信息请见QUL_PLATFORM_REQUIRED_PIXEL_WIDTH_ALIGNMENT。 |
QUL_PLATFORM_EXCLUDED_EXAMPLES | 应从构建中排除的示例列表。它定义在CMake列表格式中,每个值由分号分隔或分隔。 以下示例禁用了 set_target_properties(Platform PROPERTIES QUL_PLATFORM_EXCLUDED_EXAMPLES "freertos_multitask;image_cache" ) | |
QUL_PLATFORM_EXCLUDED_DEMOS | 应从构建中排除的演示列表。它定义在CMake列表格式中,每个值由分号分隔或分隔。 以下示例禁用了 set_target_properties(Platform PROPERTIES QUL_PLATFORM_EXCLUDED_DEMOS "automotive;motor_cluster" ) | |
QUL_PLATFORM_EXCLUDED_TESTS | 应从构建中排除的测试列表。它定义在CMake列表格式中,每个值由分号分隔或分隔。 以下示例禁用了 set_target_properties(Platform PROPERTIES QUL_PLATFORM_EXCLUDED_TESTS "controls;flickable" ) |
Infineon平台特定属性
属性名称 | 说明 | |
---|---|---|
QUL_PRIVATE_INFINEON_RESOURCE_GENERATOR | 到ResourceGenerator.exe 二进制文件的路径,该文件位于Infineon SDK目录中。设置此属性以编译资源。 |
NXP平台特定属性
属性名称 | 说明 |
---|---|
NXP_CHIP_NAME | NXP芯片家族名称,例如MIMXRT1052xxxxB 。设置此变量以能够烧录目标。 |
NXP_CONNECT_SCRIPT | 从MCUXpressoIDE 获取的连接脚本名称,例如RT1050_connect.scp 。设置此变量以能够连接到烧录目标。 |
NXP_RESET_SCRIPT | 从MCUXpressoIDE 获取的重置脚本名称,例如RT1170_reset.scp 。目前此变量仅由NXP RT1170需要,以便在烧录后正确重启板。 |
NXP_PARTFILES_DIR | 包含XML格式NXP器件文件的目录路径。设置此变量以在烧录目标时使用它。 |
STM平台特定属性
属性名称 | 说明 |
---|---|
STM32_EXTERNAL_LOADER | STM32外部加载文件的路径,以便能够烧录外部内存。 |
在平台CMakeLists.txt
中设置的示例属性
set_target_properties(Platform PROPERTIES NXP_CHIP_NAME "MIMXRT1052xxxxB" NXP_CONNECT_SCRIPT "RT1050_connect.scp" # variables cannot be expanded that's why there is "\" before "$". It will be later evaluated at CMake runtime using # qul_private_evaluate_path_from_target_property() function NXP_PARTFILES_DIR "\${QUL_PLATFORM_TARGET_DIR}/../mimxrt1050-evk-common/cmake" QUL_PLATFORM_EXCLUDED_DEMOS "automotive;motor_cluster" QUL_PLATFORM_EXCLUDED_EXAMPLES "freertos_app_switch;imagedecoder;layers;multiscreen" QUL_PLATFORM_EXCLUDED_TESTS "layers;layers_with_shapes;layer_transparency;resource_storage_section" QUL_PRIVATE_USE_PLATFORM_CONFIGURATION_HEADER ON EXPORT_PROPERTIES "NXP_CHIP_NAME;NXP_CONNECT_SCRIPT;NXP_PARTFILES_DIR;QUL_PLATFORM_EXCLUDED_DEMOS;QUL_PLATFORM_EXCLUDED_EXAMPLES;QUL_PLATFORM_EXCLUDED_TESTS" )
指定平台编译和链接选项
platform.cmake
包含特定于您平台的编译和链接选项。架构选项可以在特定架构的文件中找到。
指定供应商SDK特定设置
BSPConfig.cmake
包含使用供应商SDK中的函数(如GPIO或中断处理程序)所需的所有设置。
参见平台SDK配置。
这些通常是特定板卡的宏定义和包含路径。
target_compile_definitions(PlatformBSPConfig INTERFACE # Platform SDK specific compile definitions USE_HAL_DRIVER ) target_include_directories(PlatformBSPConfig INTERFACE # Platform SDK specific include directories # eg. ${QUL_BOARD_SDK_DIR}/Drivers/BSP/STM32F769I-Discovery/ )
在特定的Qt许可证下提供。
了解更多信息。