mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
.. | ||
abstract | ||
include | ||
lvgl_board | ||
lvgl_common | ||
lvgl_x86 | ||
CMakeLists.txt | ||
README.md |
1. GUI引擎
负责对接GUI开源库。包括ubuntu动态对接lvgl模拟器和开发板的lvgl库。
1.1. 目录
- lvgl_common
lvgl引擎接口二次封装的公共源码,目的是把lvgl开源库的接口解耦合,避免lvgl接口兼容导致的迭代困难。
- lvgl_board
交叉编译源码目录,含fb驱动。lvgl源码版本和模拟器一致。
- lvgl_x86
ubuntu系统模拟器源码。
1.2. 编译静态链接
根据构建脚本TARGET_PLATFORM的定义,来选择链接lvgl_x86或者lvgl_board
// 只有两种链接情况,分别使用gcc编译和交叉编译
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) // 第一:链接PC模拟器,此处模拟器单独编译成lvgl-x86库
# build the lvgl sumlator in linux.
include_directories(
./lvgl_common
${EXTERNAL_SOURCE_PATH}/lvglLinux-x86/lv_sim_vscode_sdl/lvgl
)
aux_source_directory(./lvgl_x86 SRC_FILES)
aux_source_directory(./lvgl_common SRC_FILES)
set(TARGET_NAME GuiEngine-lvglx86)
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
target_link_libraries(${TARGET_NAME} lvgl-x86 ReturnCode Log) // 链接模拟器库
else() // 第二:链接fb驱动代码,此处驱动源码,lvgl源码编译成GuiEngine-board库
include_directories(
./lvgl_common
${EXTERNAL_SOURCE_PATH}/lvglBoard
${EXTERNAL_SOURCE_PATH}/lvglBoard/lvgl
${EXTERNAL_SOURCE_PATH}/lvglBoard/lv_drivers
)
aux_source_directory(./lvgl_board SRC_FILES)
aux_source_directory(./lvgl_common SRC_FILES)
file(GLOB_RECURSE LVGL_SRC_FILES ${EXTERNAL_SOURCE_PATH}/lvglBoard/lvgl/src/*c) // 获取lvgl源码
file(GLOB_RECURSE LVGL_DRIVERS_SRC_FILES ${EXTERNAL_SOURCE_PATH}/lvglBoard/lv_drivers/*c) // 获取驱动源码
set(TARGET_NAME GuiEngine-board)
add_library(${TARGET_NAME} STATIC ${SRC_FILES} ${LVGL_SRC_FILES} ${LVGL_DRIVERS_SRC_FILES})
target_link_libraries(${TARGET_NAME} GuiEngineAbstract ReturnCode Log)
endif()