LVGL项目CMake构建与集成指南
2025-07-05 07:34:51作者:羿妍玫Ivan
概述
CMake是一个跨平台的构建系统生成器,它能够简化项目或库的集成过程。在LVGL项目中,CMake被原生支持,开发者可以通过它来直接配置和构建LVGL,或者将其集成到更高级别的CMake构建系统中。
本指南将详细介绍如何使用CMake构建LVGL项目,以及如何将LVGL集成到您的项目中。
准备工作
在开始构建前,请确保您的系统满足以下要求:
- 安装CMake以及GNU make或Ninja(Linux构建需要)
- 安装
scripts/install-prerequisites.sh/bat
中列出的所有依赖项 - 如果计划使用KConfig配置系统,需要安装Python3解释器
CMake构建方法
命令行构建
最简单的构建方式是使用命令行:
# 方法1
cd <lvgl_repo>
mkdir build
cd build
cmake .. # 配置阶段
cmake --build . # 构建阶段
# 方法2
cd <lvgl_repo>
cmake -B build # 配置阶段
cmake --build build # 构建阶段
使用CMake预设
LVGL项目提供了CMakePresets.json文件,其中包含了一些预定义的配置选项:
配置预设:
windows-base
:Windows配置,使用VS MSVC,基于lv_conf.h配置windows-kconfig
:Windows配置,使用VS MSVC,基于Kconfig配置linux-base
:Linux配置,使用Ninja和GCC,基于lv_conf.h配置linux-kconfig
:Linux配置,使用Ninja和GCC,基于Kconfig配置
构建预设:
windows-base_dbg
:Windows调试构建windows-base_rel
:Windows发布构建linux-base_dbg
:Linux调试构建linux-base_rel
:Linux发布构建
使用预设构建的示例:
cmake --preset windows-base
cmake --build --preset windows-base_dbg
ctest --preset windows-base_dbg
使用IDE构建
推荐使用支持CMakePresets的IDE,如:
- Visual Studio 2022
- VS Code
- CLion
只需在IDE中打开项目并选择所需的预设即可开始构建。
使用CMake GUI构建
通过CMake GUI打开项目,选择预设后点击生成按钮,CMake将创建相应的解决方案文件(VS)或Ninja文件(Linux)。
构建目标
LVGL项目提供以下构建目标:
lvgl
:核心库(必需)lvgl_thorvg
:矢量图形扩展(可选)lvgl_examples
:示例程序(可选)lvgl_demos
:演示程序(可选)
可通过设置相应的缓存变量来禁用可选目标。
将LVGL集成到您的项目
LVGL的CMake系统设计为易于集成到其他项目中。以下是几种集成方式:
基本集成
add_subdirectory(lvgl)
指定配置文件路径
set(LV_BUILD_CONF_PATH path/to/my_lv_conf.h)
add_subdirectory(lvgl)
指定配置文件目录
set(LV_BUILD_CONF_DIR path/to/directory)
add_subdirectory(lvgl)
使用KConfig配置系统
set(LV_BUILD_USE_KCONFIG ON)
add_subdirectory(lvgl)
使用特定defconfig文件
set(LV_BUILD_USE_KCONFIG ON)
set(LV_BUILD_DEFCONFIG_PATH path/to/my_defconfig)
add_subdirectory(lvgl)
启用示例和演示
set(CONFIG_LV_BUILD_EXAMPLES ON)
set(CONFIG_LV_BUILD_DEMOS ON)
add_subdirectory(lvgl)
重要配置选项
选项 | 类型 | 描述 |
---|---|---|
LV_BUILD_CONF_PATH | PATH | 自定义lv_conf.h路径 |
LV_BUILD_CONF_DIR | PATH | 包含lv_conf.h的目录 |
LV_BUILD_USE_KCONFIG | BOOLEAN | 使用KConfig作为配置源 |
LV_BUILD_DEFCONFIG_PATH | PATH | 在KConfig设置中指定.defconfig文件 |
LV_BUILD_LVGL_H_SYSTEM_INCLUDE | BOOLEAN | 将lvgl.h作为系统头文件包含 |
LV_BUILD_LVGL_H_SIMPLE_INCLUDE | BOOLEAN | 将lvgl.h作为简单头文件包含(默认启用) |
LV_BUILD_SET_CONFIG_OPTS | BOOLEAN | 处理lv_conf.h/Kconfig配置生成CMake变量 |
CONFIG_LV_BUILD_DEMOS | BOOLEAN | 构建演示程序 |
CONFIG_LV_BUILD_EXAMPLES | BOOLEAN | 构建示例程序 |
CONFIG_LV_USE_THORVG_INTERNAL | BOOLEAN | 编译内置ThorVG版本 |
CONFIG_LV_USE_PRIVATE_API | BOOLEAN | 安装私有头文件 |
注意事项
当启用LV_BUILD_SET_CONFIG_OPTS
或LV_BUILD_USE_KCONFIG
时,所有以CONFIG_*
为前缀的选项/变量将自动设置为lv_conf.h
中的对应值。
通过本指南,您应该能够顺利地在不同环境下构建LVGL项目,并将其集成到您的应用程序中。CMake的强大功能使得跨平台开发和项目集成变得更加简单高效。