Browse Source

update: easylvgl, 支持build_windows_32bit_msvc_gui.bat来编译easylvgl

zengeshuai 1 month ago
parent
commit
e2f89ee9e6

+ 0 - 8
bsp/pc/build_windows_32bit_msvc_gui_lvgl9.bat

@@ -1,8 +0,0 @@
-
-@REM xmake clean -a
-set VM_64bit=0
-set LUAT_USE_GUI=y
-set LUAT_USE_LVGL9=y
-xmake g --pkg_searchdirs=%cd%\pkgs
-xmake f -a x86 -y
-xmake -y

+ 0 - 8
bsp/pc/build_windows_32bit_msvc_gui_lvgl9_clean.bat

@@ -1,8 +0,0 @@
-
-xmake clean -a
-set VM_64bit=0
-set LUAT_USE_GUI=y
-set LUAT_USE_LVGL9=y
-xmake g --pkg_searchdirs=%cd%\pkgs
-xmake f -a x86 -y
-xmake -y

+ 52 - 54
bsp/pc/include/luat_conf_bsp.h

@@ -193,63 +193,61 @@
 
 //---------------------
 
-#if defined(LUAT_USE_LVGL9)
-// LVGL 9
 #define LUAT_USE_EASYLVGL 1
 #define LUAT_USE_EASYLVGL_SDL2 1
 
-#else
-// LVGL
-// 主推的UI库, 功能强大但API繁琐
-#define LUAT_USE_LVGL      1
-#define LUAT_USE_TJPGD 1
-
-#define LUAT_USE_LVGL_JPG 1 // 启用JPG解码支持
-#define LUAT_USE_LVGL_PNG 1 // 启用PNG解码支持
-#define LUAT_USE_LVGL_BMP 1 // 启用BMP解码支持
-
-#define LUAT_USE_LVGL_INDEV 1 // 输入设备
-
-// TP 模块与PC触摸驱动
-#define LUAT_USE_TP 1
-#define LUAT_USE_TP_PC 1
-
-#define LUAT_USE_LVGL_ARC   //圆弧 无依赖
-#define LUAT_USE_LVGL_BAR   //进度条 无依赖
-#define LUAT_USE_LVGL_BTN   //按钮 依赖容器CONT
-#define LUAT_USE_LVGL_BTNMATRIX   //按钮矩阵 无依赖
-#define LUAT_USE_LVGL_CALENDAR   //日历 无依赖
-#define LUAT_USE_LVGL_CANVAS   //画布 依赖图片IMG
-#define LUAT_USE_LVGL_CHECKBOX   //复选框 依赖按钮BTN 标签LABEL
-#define LUAT_USE_LVGL_CHART   //图表 无依赖
-#define LUAT_USE_LVGL_CONT   //容器 无依赖
-#define LUAT_USE_LVGL_CPICKER   //颜色选择器 无依赖
-#define LUAT_USE_LVGL_DROPDOWN   //下拉列表 依赖页面PAGE 标签LABEL
-#define LUAT_USE_LVGL_GAUGE   //仪表 依赖进度条BAR 仪表(弧形刻度)LINEMETER
-#define LUAT_USE_LVGL_IMG   //图片 依赖标签LABEL
-#define LUAT_USE_LVGL_IMGBTN   //图片按钮 依赖按钮BTN
-#define LUAT_USE_LVGL_KEYBOARD   //键盘 依赖图片按钮IMGBTN
-#define LUAT_USE_LVGL_LABEL   //标签 无依赖
-#define LUAT_USE_LVGL_LED   //LED 无依赖
-#define LUAT_USE_LVGL_LINE   //线 无依赖
-#define LUAT_USE_LVGL_LIST   //列表 依赖页面PAGE 按钮BTN 标签LABEL
-#define LUAT_USE_LVGL_LINEMETER   //仪表(弧形刻度) 无依赖
-#define LUAT_USE_LVGL_OBJMASK   //对象蒙版 无依赖
-#define LUAT_USE_LVGL_MSGBOX   //消息框 依赖图片按钮IMGBTN 标签LABEL
-#define LUAT_USE_LVGL_PAGE   //页面 依赖容器CONT
-#define LUAT_USE_LVGL_SPINNER   //旋转器 依赖圆弧ARC 动画ANIM
-#define LUAT_USE_LVGL_ROLLER   //滚筒 无依赖
-#define LUAT_USE_LVGL_SLIDER   //滑杆 依赖进度条BAR
-#define LUAT_USE_LVGL_SPINBOX   //数字调整框 无依赖
-#define LUAT_USE_LVGL_SWITCH   //开关 依赖滑杆SLIDER
-#define LUAT_USE_LVGL_TEXTAREA   //文本框 依赖标签LABEL 页面PAGE
-#define LUAT_USE_LVGL_TABLE   //表格 依赖标签LABEL
-#define LUAT_USE_LVGL_TABVIEW   //页签 依赖页面PAGE 图片按钮IMGBTN
-#define LUAT_USE_LVGL_TILEVIEW   //平铺视图 依赖页面PAGE
-#define LUAT_USE_LVGL_WIN   //窗口 依赖容器CONT 按钮BTN 标签LABEL 图片IMG 页面PAGE
-
-// #define LUAT_USE_AIRUI 1
-#endif
+// #else
+// // LVGL
+// // 主推的UI库, 功能强大但API繁琐
+// #define LUAT_USE_LVGL      1
+// #define LUAT_USE_TJPGD 1
+
+// #define LUAT_USE_LVGL_JPG 1 // 启用JPG解码支持
+// #define LUAT_USE_LVGL_PNG 1 // 启用PNG解码支持
+// #define LUAT_USE_LVGL_BMP 1 // 启用BMP解码支持
+
+// #define LUAT_USE_LVGL_INDEV 1 // 输入设备
+
+// // TP 模块与PC触摸驱动
+// #define LUAT_USE_TP 1
+// #define LUAT_USE_TP_PC 1
+
+// #define LUAT_USE_LVGL_ARC   //圆弧 无依赖
+// #define LUAT_USE_LVGL_BAR   //进度条 无依赖
+// #define LUAT_USE_LVGL_BTN   //按钮 依赖容器CONT
+// #define LUAT_USE_LVGL_BTNMATRIX   //按钮矩阵 无依赖
+// #define LUAT_USE_LVGL_CALENDAR   //日历 无依赖
+// #define LUAT_USE_LVGL_CANVAS   //画布 依赖图片IMG
+// #define LUAT_USE_LVGL_CHECKBOX   //复选框 依赖按钮BTN 标签LABEL
+// #define LUAT_USE_LVGL_CHART   //图表 无依赖
+// #define LUAT_USE_LVGL_CONT   //容器 无依赖
+// #define LUAT_USE_LVGL_CPICKER   //颜色选择器 无依赖
+// #define LUAT_USE_LVGL_DROPDOWN   //下拉列表 依赖页面PAGE 标签LABEL
+// #define LUAT_USE_LVGL_GAUGE   //仪表 依赖进度条BAR 仪表(弧形刻度)LINEMETER
+// #define LUAT_USE_LVGL_IMG   //图片 依赖标签LABEL
+// #define LUAT_USE_LVGL_IMGBTN   //图片按钮 依赖按钮BTN
+// #define LUAT_USE_LVGL_KEYBOARD   //键盘 依赖图片按钮IMGBTN
+// #define LUAT_USE_LVGL_LABEL   //标签 无依赖
+// #define LUAT_USE_LVGL_LED   //LED 无依赖
+// #define LUAT_USE_LVGL_LINE   //线 无依赖
+// #define LUAT_USE_LVGL_LIST   //列表 依赖页面PAGE 按钮BTN 标签LABEL
+// #define LUAT_USE_LVGL_LINEMETER   //仪表(弧形刻度) 无依赖
+// #define LUAT_USE_LVGL_OBJMASK   //对象蒙版 无依赖
+// #define LUAT_USE_LVGL_MSGBOX   //消息框 依赖图片按钮IMGBTN 标签LABEL
+// #define LUAT_USE_LVGL_PAGE   //页面 依赖容器CONT
+// #define LUAT_USE_LVGL_SPINNER   //旋转器 依赖圆弧ARC 动画ANIM
+// #define LUAT_USE_LVGL_ROLLER   //滚筒 无依赖
+// #define LUAT_USE_LVGL_SLIDER   //滑杆 依赖进度条BAR
+// #define LUAT_USE_LVGL_SPINBOX   //数字调整框 无依赖
+// #define LUAT_USE_LVGL_SWITCH   //开关 依赖滑杆SLIDER
+// #define LUAT_USE_LVGL_TEXTAREA   //文本框 依赖标签LABEL 页面PAGE
+// #define LUAT_USE_LVGL_TABLE   //表格 依赖标签LABEL
+// #define LUAT_USE_LVGL_TABVIEW   //页签 依赖页面PAGE 图片按钮IMGBTN
+// #define LUAT_USE_LVGL_TILEVIEW   //平铺视图 依赖页面PAGE
+// #define LUAT_USE_LVGL_WIN   //窗口 依赖容器CONT 按钮BTN 标签LABEL 图片IMG 页面PAGE
+
+// // #define LUAT_USE_AIRUI 1
+// #endif
 
 #endif
 

+ 45 - 78
bsp/pc/xmake.lua

@@ -316,87 +316,54 @@ target("luatos-lua")
         add_includedirs(luatos.."components/lcd")
         add_files(luatos.."components/lcd/*.c")
         
-        -- LVGL 版本选择
-        if os.getenv("LUAT_USE_LVGL9") == "y" then
-            -- LVGL 9.4 + EasyLVGL - 最基础组件编译
-            -- LVGL 9 源码路径(支持 #include "lvgl9/lvgl.h" 格式)
-            add_includedirs(luatos.."components/easylvgl")
-            add_includedirs(luatos.."components/easylvgl/lvgl9")
-            add_includedirs(luatos.."components/easylvgl/lvgl9/src")
-            
-            -- 先添加所有源文件
-            add_files(luatos.."components/easylvgl/lvgl9/src/**.c")
-            
-            -- 排除不需要的组件(按优先级排序)
-            -- 1. 硬件驱动(PC 模拟器不需要)
-            remove_files(luatos.."components/easylvgl/lvgl9/src/drivers/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/drivers/**/*.cpp")
-            
-            -- 2. 硬件加速绘制引擎(只保留软件渲染 SW)
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/dma2d/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/eve/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/nema_gfx/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/nxp/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/opengles/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/renesas/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/vg_lite/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/sdl/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/espressif/**/*.c")
-            remove_files(luatos.."components/easylvgl/lvgl9/src/draw/convert/**/*.c")
-            
-            -- 3. 库:排除所有,然后重新添加 bin_decoder(核心依赖)
-            -- remove_files(luatos.."components/easylvgl/lvgl9/src/libs/**/*.c")
-            -- remove_files(luatos.."components/easylvgl/lvgl9/src/libs/**/*.cpp")
-            -- add_files(luatos.."components/easylvgl/lvgl9/src/libs/bin_decoder/*.c")
-            
-            -- 4. 其他功能模块(sysmon, translation, xml 等)
-            -- remove_files(luatos.."components/easylvgl/lvgl9/src/others/**/*.c")
-            -- remove_files(luatos.."components/easylvgl/lvgl9/src/others/**/*.cpp")
-            
-            -- 5. 操作系统抽象层(如果使用 LV_OS_NONE)
-            -- remove_files(luatos.."components/easylvgl/lvgl9/src/osal/**/*.c")
-            
-            -- 6. 控件:先全部包含,确保编译通过
-            -- 所有控件都会被编译(没有被排除)
-            
-            -- 7. 保留主题编译(主题需要控件的类定义)
-            -- 主题文件会自动编译(没有被排除)
-            
-            -- EasyLVGL 重构架构配置
-            -- 1. 公共头文件
-            add_includedirs(luatos.."components/easylvgl/inc")
-            
-            -- 2. 包含 src 目录下的所有文件(递归)
-            add_includedirs(luatos.."components/easylvgl/src")
-            add_files(luatos.."components/easylvgl/src/**/*.c")
-            
-            -- 3. Lua 绑定层(binding,不在 src 目录下,需单独处理)
-            add_includedirs(luatos.."components/easylvgl/binding")
-            add_files(luatos.."components/easylvgl/binding/*.c")
-            
-            -- 4. 宏定义:启用 EasyLVGL 和 SDL2 平台
-            add_defines("LUAT_USE_EASYLVGL=1")
-            add_defines("LUAT_USE_EASYLVGL_SDL2=1")
-        else
-            -- LVGL 7.13 (原有配置)
-            add_includedirs(luatos.."components/lvgl")
-            add_includedirs(luatos.."components/lvgl/binding")
-            add_includedirs(luatos.."components/lvgl/gen")
-            add_includedirs(luatos.."components/lvgl/src")
-            add_includedirs(luatos.."components/lvgl/font")
-            add_includedirs(luatos.."components/lvgl/src/lv_font")
-            add_includedirs(luatos.."components/lvgl/sdl2")
-            add_files(luatos.."components/lvgl/**.c")
-            -- 默认不编译lv的demos, 节省大量的编译时间
-            remove_files(luatos.."components/lvgl/lv_demos/**.c")
-
-            -- tjpgd
-            add_includedirs(luatos.."components/tjpgd")
-            add_files(luatos.."components/tjpgd/*.c")
-        end
+        -- LVGL 9.4 + EasyLVGL - 最基础组件编译
+        -- 宏定义:启用 EasyLVGL 和 SDL2 平台
+        -- add_defines("LUAT_USE_EASYLVGL=1")
+        -- add_defines("LUAT_USE_EASYLVGL_SDL2=1")
+        -- 头文件添加:lvgl9 
+        add_includedirs(luatos.."components/easylvgl")
+        add_includedirs(luatos.."components/easylvgl/lvgl9")
+        add_includedirs(luatos.."components/easylvgl/lvgl9/src")
+        
+        -- 先添加所有源文件
+        add_files(luatos.."components/easylvgl/lvgl9/src/**.c")
+        
+        -- 排除不需要的组件(按优先级排序)
+        -- 1. 硬件驱动(PC 模拟器不需要)
+        remove_files(luatos.."components/easylvgl/lvgl9/src/drivers/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/drivers/**/*.cpp")
+        
+        -- 2. 硬件加速绘制引擎(只保留软件渲染 SW)
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/dma2d/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/eve/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/nema_gfx/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/nxp/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/opengles/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/renesas/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/vg_lite/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/sdl/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/espressif/**/*.c")
+        remove_files(luatos.."components/easylvgl/lvgl9/src/draw/convert/**/*.c")
+        
+        -- 3. 库:排除不需要的库(可选功能)
+        -- remove_files(luatos.."components/easylvgl/lvgl9/src/libs/**/*.c")
+        
+        -- EasyLVGL 架构配置
+        -- 1. 公共头文件
+        add_includedirs(luatos.."components/easylvgl/inc")
+        
+        -- 2. 包含 src 目录下的所有文件(递归)
+        add_includedirs(luatos.."components/easylvgl/src")
+        add_files(luatos.."components/easylvgl/src/**/*.c")
+        
+        -- 3. Lua 绑定层(binding,不在 src 目录下,需单独处理)
+        add_includedirs(luatos.."components/easylvgl/binding")
+        add_files(luatos.."components/easylvgl/binding/*.c")
 
         -- qrcode 和 tjpgd
         add_includedirs(luatos.."components/qrcode")
+        add_includedirs(luatos.."components/tjpgd")
+        add_files(luatos.."components/tjpgd/*.c")
         add_files(luatos.."components/qrcode/*.c")
 
         add_includedirs(luatos.."components/luatfonts")

+ 1 - 0
components/easylvgl/binding/luat_lib_easylvgl.c

@@ -16,6 +16,7 @@
 #include "../inc/luat_easylvgl_component.h"
 #include "../inc/luat_easylvgl_binding.h"
 #include "../inc/luat_easylvgl_symbol.h"
+#include "luat_conf_bsp.h"
 #if defined(LUAT_USE_EASYLVGL_BK7258)
 #include "../src/platform/bk7258/luat_easylvgl_platform_bk7258.h"
 #endif

+ 2 - 3
components/easylvgl/inc/luat_easylvgl_conf.h

@@ -9,12 +9,11 @@
 #ifndef LUAT_EASYLVGL_CONF_H
 #define LUAT_EASYLVGL_CONF_H
 
+#include "luat_conf_bsp.h"
+
 /*=================
  * PLATFORM CONFIGURATION
  *=================*/
- 
- // 打开png支持
- #define LV_USE_LODEPNG 1
 
 #if defined(LUAT_USE_EASYLVGL_SDL2)
     /* SDL2 平台配置 */

+ 1 - 0
components/easylvgl/src/components/widgets/luat_easylvgl_textarea.c

@@ -13,6 +13,7 @@
 #include "lvgl9/src/misc/lv_event.h"
 #include "lvgl9/src/core/lv_obj.h"
 #include <string.h>
+#include "luat_conf_bsp.h"
 
 #define LUAT_LOG_TAG "easylvgl_textarea"
 #include "luat_log.h"

+ 1 - 1
components/easylvgl/src/core/luat_easylvgl_ctx.c

@@ -10,7 +10,7 @@
 #include "lvgl9/lvgl.h"
 #include <string.h>
 #include <assert.h>
-
+#include "luat_conf_bsp.h"
 
 #define LUAT_LOG_TAG "easylvgl"
 #include "luat_log.h"

+ 2 - 0
components/easylvgl/src/platform/sdl/luat_easylvgl_display_sdl.c

@@ -4,6 +4,8 @@
  * @responsible SDL2 显示初始化、flush、vsync
  */
 
+#include "luat_conf_bsp.h"
+
 #if defined(LUAT_USE_EASYLVGL_SDL2)
 
 #include "luat_easylvgl.h"

+ 2 - 0
components/easylvgl/src/platform/sdl/luat_easylvgl_input_sdl.c

@@ -4,6 +4,8 @@
  * @responsible SDL2 鼠标/触摸输入处理
  */
 
+#include "luat_conf_bsp.h"
+
 #if defined(LUAT_USE_EASYLVGL_SDL2)
 
 #include "luat_easylvgl.h"

+ 2 - 0
components/easylvgl/src/platform/sdl/luat_easylvgl_platform_sdl.c

@@ -4,6 +4,8 @@
  * @responsible 导出 SDL2 平台驱动操作接口集合
  */
 
+#include "luat_conf_bsp.h"
+
 #if defined(LUAT_USE_EASYLVGL_SDL2)
 
 #include "luat_easylvgl.h"

+ 2 - 0
components/easylvgl/src/platform/sdl/luat_easylvgl_time_sdl.c

@@ -4,6 +4,8 @@
  * @responsible SDL2 时基获取和延时
  */
 
+#include "luat_conf_bsp.h"
+
 #if defined(LUAT_USE_EASYLVGL_SDL2)
 
 #include "luat_easylvgl.h"