C
架构和平台特定构建设置
Qt Quick Ultralite 被分为核心理库和平台库。这些组件的编译设置可以用于多个项目。
使用每个 BoardArchitectureConfig.cmake
中的 QUL_PLATFORM_ARCHITECTURE
CMake 变量设置板卡的架构。
set (QUL_PLATFORM_ARCHITECTURE "cortex-m7-hf-fpv5-d16")
Qt Quick Ultralite 支持的默认架构可以在 platform\architecture
找到。CMake 会查找与给定字符串匹配的架构并加载为它定义的预设值。
使用自定义架构
如果你的 CPU 不符合预定义的任何架构,你可以创建自己的。需要指定一个自定义架构名称,它不能与现有的任何架构冲突,以及 CMake 读取自定义设置所在的文件位置。
set(QUL_PLATFORM_ARCHITECTURE SomeCustomName) set(QUL_PLATFORM_ARCHITECTURE_FILE "${CMAKE_CURRENT_LIST_DIR}/${QUL_COMPILER_NAME}/architecture.cmake")
在设置上述两个变量时,将禁用所有其他架构处理。您可以从 platform\architecture
中的任何文件中选择一个作为自定义文件的基础。
设置传播
为了传递项目不同部分的编译设置,CMake 使用的接口库不是实际库,但可以继承设置。为了将设置继承到您的应用程序中,您需要链接到它们。对于标准使用,当您使用 qul_add_target
注册应用程序时,这是自动完成的。
可用的编译设置
架构
库目标 Qul::PlatformArchitecture
包含特定于您的 CPU 架构的设置。
target_link_options(PlatformArchitecture INTERFACE -mthumb -mfloat-abi=hard -mfpu=fpv5-d16 -mcpu=cortex-m7 -mapcs ) target_compile_options(PlatformArchitecture INTERFACE -mthumb -mapcs -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin )
平台
Qul::Platform
库包含特定于您的平台设置,该平台为使用 Qt Quick Ultralite 提供的 API 的应用程序提供设置。
平台 SDK 配置
Qul::PlatformBSPConfig
库包含需要访问 SDK 特定函数和头文件的应用程序所需的设置。例如,特定的硬件上下文函数或中断处理程序。只使用 Qt Quick Ultralite 提供的 API 的应用程序不需要链接到此库。
有关如何指定供应商 SDK 特定设置的详细信息,请参阅移植指南 。
链接脚本
库Qul::PlatformDefaultLinkerScript
包含默认链接脚本设置。这些设置由每个平台在其 LinkerScriptConfig.cmake
文件中通过调用 CMake 函数来指定。
qul_platform_add_default_linker_script(<LINKER_SCRIPT_FILE>)
请参阅 添加你的链接脚本 的示例。
该函数可以多次调用,以防你的平台需要多个链接脚本。它将为库 Qul::PlatformDefaultLinkerScript
添加每个链接脚本。
为了将链接脚本传递给你的应用程序,你需要链接到这个库。在通过函数 qul_add_target
添加你的应用程序时,这会自动完成。
如果你想自己处理链接脚本而不想有任何自动处理,可以设置变量 QUL_NO_DEFAULT_LINKER_SCRIPT
。这将防止任何链接脚本添加到你的应用程序中。
核心库的定制优化
通常,核心库是独立于平台构建的。如果你的平台需要为核心库定制编译设置(例如,为优化),你可以在平台目录下的 cmake
文件夹中创建 coreLibrary.cmake
文件。此文件可以为 Core
目标设置额外的标志。
注意:此文件仅在构建 Qt Quick Ultralite 核心库和平台库时加载。
可在某些 Qt 许可证下获得。
了解更多信息。