C

使用CMake入门

CMakeLists.txt文件应以命令开始,cmake_minimum_requiredproject。目前,Qt Quick Ultralite期望的最低版本为v3.21.1,但可根据项目对最新CMake功能的依赖进行提高。project命令定义了一个name和项目使用的编程语言列表。尽管Qt Quick Ultralite期望在语言列表中包含CCXX(C++),但某些支持的平台和GNU编译器还需要ASM(汇编)。将所有三种语言都包含在列表中是最佳实践,因为更长的语言列表不会造成伤害。

在一般的CMake配置之后,使用find_package来定位Qt Quick Ultralite附带库和头文件。您可以使用qul_add_target命令使用这些库和头文件构建您的基于Qt Quick Ultralite的应用程序。此命令会自动添加适当的包含目录、编译定义和库。

cmake_minimum_required (VERSION 3.21.1)

project(example_project LANGUAGE C CXX ASM)

find_package(Qul)
qul_add_target(example)

然后添加您的源文件。使用qul_target_qml_sources命令添加QML源文件,并使用qul_target_generate_interfaces命令添加定义导出类的C++文件。在构建过程中,QML源文件被转换为C++然后编译。接口头文件中对导出类型的描述可供QML代码使用。有关详细信息,请参阅将C++代码与QML集成

target_sources(example PRIVATE example.cpp)
qul_target_qml_sources(example ExampleView.qml)
qul_target_generate_interfaces(example example.h)

如果您希望应用程序可以翻译,请使用qul_target_embed_translations设置翻译。这将创建一个用于生成和更新基于QML源文件中的翻译字符串所列的.ts文件的update_translations目标,并将这些翻译嵌入到可执行文件中。有关详细信息,请参阅使用Qt Quick Ultralite进行国际化与本地化

qul_target_embed_translations(example translation.nb_NO.ts translation.lv_LV.ts)

最后,使用app_target_setup_os根据QUL_OS变量的值执行OS的额外设置。该命令链接正确的平台库并执行其他操作,例如编译和链接FreeRTOS源文件。

set(QUL_OS "baremetal")
app_target_setup_os(example)

通过在带有 CMakeLists.txt 文件和用于选择构建平台的命令行选项的目录中运行 cmake 来构建项目。例如,为 STM32F769I-Discovery 板构建

cmake <source_directory>
    -DCMAKE_TOOLCHAIN_FILE=<qul_directory>/lib/cmake/Qul/toolchain/armgcc.cmake
    -DQUL_PLATFORM=STM32F769I-DISCOVERY-baremetal

使用 CMAKE_TOOLCHAIN_FILE 变量切换到 armgcc 工具链,而 QUL_PLATFORM 变量决定了要为哪个特定板构建。

注意:在 Qt Quick Ultralite 项目中,默认将 CMAKE_BUILD_TYPE 设置为 MinSizeRelMinSizeRel 是与 Qt Quick Ultralite 一起提供的预构建平台库所使用的构建类型。要更改构建类型(例如更改为 Release),请在调用 CMake 时使用 -DCMAKE_BUILD_TYPE=Release 选项。更多详细信息,请参阅 CMAKE_BUILD_TYPE

在特定的 Qt 许可下可用。
了解更多。