C
使用CMake入门
CMakeLists.txt文件应以命令开始,cmake_minimum_required
和project
。目前,Qt Quick Ultralite期望的最低版本为v3.21.1,但可根据项目对最新CMake功能的依赖进行提高。project
命令定义了一个name
和项目使用的编程语言列表。尽管Qt Quick Ultralite期望在语言列表中包含C
和CXX
(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
设置为 MinSizeRel
。 MinSizeRel
是与 Qt Quick Ultralite 一起提供的预构建平台库所使用的构建类型。要更改构建类型(例如更改为 Release
),请在调用 CMake 时使用 -DCMAKE_BUILD_TYPE=Release
选项。更多详细信息,请参阅 CMAKE_BUILD_TYPE。
在特定的 Qt 许可下可用。
了解更多。