| .. | ||
| 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()
