Skip to content

Commit

Permalink
modules: lvgl: Move gluecode back to zephyr main repo
Browse files Browse the repository at this point in the history
Moves back the module specific gluecode into the main repository

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
  • Loading branch information
faxe1008 committed Aug 14, 2023
1 parent 250748b commit ff3142d
Show file tree
Hide file tree
Showing 22 changed files with 1,789 additions and 69 deletions.
2 changes: 1 addition & 1 deletion MAINTAINERS.yml
Expand Up @@ -3095,7 +3095,7 @@ West:
- brgl
- pdgendt
files:
- modules/Kconfig.lvgl
- modules/lvgl/
- tests/lib/gui/lvgl/
labels:
- manifest-lvgl
Expand Down
5 changes: 4 additions & 1 deletion modules/Kconfig
Expand Up @@ -24,7 +24,7 @@ source "modules/Kconfig.esp32"
source "modules/Kconfig.imx"
source "modules/Kconfig.infineon"
source "modules/Kconfig.libmetal"
source "modules/Kconfig.lvgl"
source "modules/lvgl/Kconfig"
source "modules/Kconfig.mcux"
source "modules/Kconfig.microchip"
source "modules/Kconfig.nuvoton"
Expand Down Expand Up @@ -104,6 +104,9 @@ comment "THRIFT module not available."
comment "Segger module not available."
depends on !ZEPHYR_SEGGER_MODULE

comment "LVGL module not available."
depends on !ZEPHYR_LVGL_MODULE

# This ensures that symbols are available in Kconfig for dependency checking
# and referencing, while keeping the settings themselves unavailable when the
# modules are not present in the workspace
Expand Down
66 changes: 0 additions & 66 deletions modules/Kconfig.lvgl

This file was deleted.

229 changes: 229 additions & 0 deletions modules/lvgl/CMakeLists.txt
@@ -0,0 +1,229 @@
# Copyright (c) 2019 jan.van_winkel@dxplore.eu
# Copyright (c) 2020 Teslabs Engineering S.L.
# Copyright (c) 2023 Fabian Blatz <fabianblatz@gmail.com>
#
# SPDX-License-Identifier: Apache-2.0

if(CONFIG_LVGL)

set(ZEPHYR_CURRENT_LIBRARY lvgl)
set(LVGL_DIR ${ZEPHYR_LVGL_MODULE_DIR})

zephyr_interface_library_named(LVGL)
zephyr_library()

zephyr_include_directories(${LVGL_DIR}/src/)
zephyr_include_directories(.)

zephyr_compile_definitions(LV_CONF_INCLUDE_SIMPLE=1)
zephyr_compile_definitions(LV_CONF_PATH=${CMAKE_CURRENT_SOURCE_DIR}/lv_conf.h)

zephyr_library_sources(
${LVGL_DIR}/src/core/lv_disp.c
${LVGL_DIR}/src/core/lv_event.c
${LVGL_DIR}/src/core/lv_group.c
${LVGL_DIR}/src/core/lv_indev.c
${LVGL_DIR}/src/core/lv_indev_scroll.c
${LVGL_DIR}/src/core/lv_obj.c
${LVGL_DIR}/src/core/lv_obj_class.c
${LVGL_DIR}/src/core/lv_obj_draw.c
${LVGL_DIR}/src/core/lv_obj_pos.c
${LVGL_DIR}/src/core/lv_obj_scroll.c
${LVGL_DIR}/src/core/lv_obj_style.c
${LVGL_DIR}/src/core/lv_obj_style_gen.c
${LVGL_DIR}/src/core/lv_obj_tree.c
${LVGL_DIR}/src/core/lv_refr.c
${LVGL_DIR}/src/core/lv_theme.c

${LVGL_DIR}/src/draw/arm2d/lv_gpu_arm2d.c
${LVGL_DIR}/src/draw/lv_draw.c
${LVGL_DIR}/src/draw/lv_draw_arc.c
${LVGL_DIR}/src/draw/lv_draw_img.c
${LVGL_DIR}/src/draw/lv_draw_label.c
${LVGL_DIR}/src/draw/lv_draw_layer.c
${LVGL_DIR}/src/draw/lv_draw_line.c
${LVGL_DIR}/src/draw/lv_draw_mask.c
${LVGL_DIR}/src/draw/lv_draw_rect.c
${LVGL_DIR}/src/draw/lv_draw_transform.c
${LVGL_DIR}/src/draw/lv_draw_triangle.c
${LVGL_DIR}/src/draw/lv_img_buf.c
${LVGL_DIR}/src/draw/lv_img_cache.c
${LVGL_DIR}/src/draw/lv_img_decoder.c
${LVGL_DIR}/src/draw/nxp/pxp/lv_draw_pxp_blend.c
${LVGL_DIR}/src/draw/nxp/pxp/lv_gpu_nxp_pxp.c
${LVGL_DIR}/src/draw/nxp/pxp/lv_gpu_nxp_pxp_osa.c
${LVGL_DIR}/src/draw/nxp/vglite/lv_draw_vglite_arc.c
${LVGL_DIR}/src/draw/nxp/vglite/lv_draw_vglite_blend.c
${LVGL_DIR}/src/draw/nxp/vglite/lv_draw_vglite_rect.c
${LVGL_DIR}/src/draw/nxp/vglite/lv_draw_vglite.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_arc.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_bg.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_composite.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_img.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_label.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_layer.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_line.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_mask.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_polygon.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_rect.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_stack_blur.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_texture_cache.c
${LVGL_DIR}/src/draw/sdl/lv_draw_sdl_utils.c
${LVGL_DIR}/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_arc.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_blend.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_dither.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_gradient.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_img.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_layer.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_letter.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_line.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_polygon.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_rect.c
${LVGL_DIR}/src/draw/sw/lv_draw_sw_transform.c
${LVGL_DIR}/src/draw/swm341_dma2d/lv_gpu_swm341_dma2d.c

${LVGL_DIR}/src/extra/layouts/flex/lv_flex.c
${LVGL_DIR}/src/extra/layouts/grid/lv_grid.c
${LVGL_DIR}/src/extra/libs/bmp/lv_bmp.c
${LVGL_DIR}/src/extra/libs/ffmpeg/lv_ffmpeg.c
${LVGL_DIR}/src/extra/libs/freetype/lv_freetype.c
${LVGL_DIR}/src/extra/libs/fsdrv/lv_fs_fatfs.c
${LVGL_DIR}/src/extra/libs/fsdrv/lv_fs_posix.c
${LVGL_DIR}/src/extra/libs/fsdrv/lv_fs_stdio.c
${LVGL_DIR}/src/extra/libs/fsdrv/lv_fs_win32.c
${LVGL_DIR}/src/extra/libs/gif/gifdec.c
${LVGL_DIR}/src/extra/libs/gif/lv_gif.c
${LVGL_DIR}/src/extra/libs/png/lodepng.c
${LVGL_DIR}/src/extra/libs/png/lv_png.c
${LVGL_DIR}/src/extra/libs/qrcode/lv_qrcode.c
${LVGL_DIR}/src/extra/libs/qrcode/qrcodegen.c
${LVGL_DIR}/src/extra/libs/rlottie/lv_rlottie.c
${LVGL_DIR}/src/extra/libs/sjpg/lv_sjpg.c
${LVGL_DIR}/src/extra/libs/sjpg/tjpgd.c
${LVGL_DIR}/src/extra/lv_extra.c
${LVGL_DIR}/src/extra/others/fragment/lv_fragment.c
${LVGL_DIR}/src/extra/others/fragment/lv_fragment_manager.c
${LVGL_DIR}/src/extra/others/gridnav/lv_gridnav.c
${LVGL_DIR}/src/extra/others/ime/lv_ime_pinyin.c
${LVGL_DIR}/src/extra/others/imgfont/lv_imgfont.c
${LVGL_DIR}/src/extra/others/monkey/lv_monkey.c
${LVGL_DIR}/src/extra/others/msg/lv_msg.c
${LVGL_DIR}/src/extra/others/snapshot/lv_snapshot.c
${LVGL_DIR}/src/extra/themes/basic/lv_theme_basic.c
${LVGL_DIR}/src/extra/themes/default/lv_theme_default.c
${LVGL_DIR}/src/extra/themes/mono/lv_theme_mono.c
${LVGL_DIR}/src/extra/widgets/animimg/lv_animimg.c
${LVGL_DIR}/src/extra/widgets/calendar/lv_calendar.c
${LVGL_DIR}/src/extra/widgets/calendar/lv_calendar_header_arrow.c
${LVGL_DIR}/src/extra/widgets/calendar/lv_calendar_header_dropdown.c
${LVGL_DIR}/src/extra/widgets/chart/lv_chart.c
${LVGL_DIR}/src/extra/widgets/colorwheel/lv_colorwheel.c
${LVGL_DIR}/src/extra/widgets/imgbtn/lv_imgbtn.c
${LVGL_DIR}/src/extra/widgets/keyboard/lv_keyboard.c
${LVGL_DIR}/src/extra/widgets/led/lv_led.c
${LVGL_DIR}/src/extra/widgets/list/lv_list.c
${LVGL_DIR}/src/extra/widgets/menu/lv_menu.c
${LVGL_DIR}/src/extra/widgets/meter/lv_meter.c
${LVGL_DIR}/src/extra/widgets/msgbox/lv_msgbox.c
${LVGL_DIR}/src/extra/widgets/span/lv_span.c
${LVGL_DIR}/src/extra/widgets/spinbox/lv_spinbox.c
${LVGL_DIR}/src/extra/widgets/spinner/lv_spinner.c
${LVGL_DIR}/src/extra/widgets/tabview/lv_tabview.c
${LVGL_DIR}/src/extra/widgets/tileview/lv_tileview.c
${LVGL_DIR}/src/extra/widgets/win/lv_win.c

${LVGL_DIR}/src/font/lv_font.c
${LVGL_DIR}/src/font/lv_font_dejavu_16_persian_hebrew.c
${LVGL_DIR}/src/font/lv_font_fmt_txt.c
${LVGL_DIR}/src/font/lv_font_loader.c
${LVGL_DIR}/src/font/lv_font_montserrat_10.c
${LVGL_DIR}/src/font/lv_font_montserrat_12.c
${LVGL_DIR}/src/font/lv_font_montserrat_12_subpx.c
${LVGL_DIR}/src/font/lv_font_montserrat_14.c
${LVGL_DIR}/src/font/lv_font_montserrat_16.c
${LVGL_DIR}/src/font/lv_font_montserrat_18.c
${LVGL_DIR}/src/font/lv_font_montserrat_20.c
${LVGL_DIR}/src/font/lv_font_montserrat_22.c
${LVGL_DIR}/src/font/lv_font_montserrat_24.c
${LVGL_DIR}/src/font/lv_font_montserrat_26.c
${LVGL_DIR}/src/font/lv_font_montserrat_28.c
${LVGL_DIR}/src/font/lv_font_montserrat_28_compressed.c
${LVGL_DIR}/src/font/lv_font_montserrat_30.c
${LVGL_DIR}/src/font/lv_font_montserrat_32.c
${LVGL_DIR}/src/font/lv_font_montserrat_34.c
${LVGL_DIR}/src/font/lv_font_montserrat_36.c
${LVGL_DIR}/src/font/lv_font_montserrat_38.c
${LVGL_DIR}/src/font/lv_font_montserrat_40.c
${LVGL_DIR}/src/font/lv_font_montserrat_42.c
${LVGL_DIR}/src/font/lv_font_montserrat_44.c
${LVGL_DIR}/src/font/lv_font_montserrat_46.c
${LVGL_DIR}/src/font/lv_font_montserrat_48.c
${LVGL_DIR}/src/font/lv_font_montserrat_8.c
${LVGL_DIR}/src/font/lv_font_simsun_16_cjk.c
${LVGL_DIR}/src/font/lv_font_unscii_16.c
${LVGL_DIR}/src/font/lv_font_unscii_8.c

${LVGL_DIR}/src/hal/lv_hal_disp.c
${LVGL_DIR}/src/hal/lv_hal_indev.c
${LVGL_DIR}/src/hal/lv_hal_tick.c

${LVGL_DIR}/src/misc/lv_anim.c
${LVGL_DIR}/src/misc/lv_anim_timeline.c
${LVGL_DIR}/src/misc/lv_area.c
${LVGL_DIR}/src/misc/lv_async.c
${LVGL_DIR}/src/misc/lv_bidi.c
${LVGL_DIR}/src/misc/lv_color.c
${LVGL_DIR}/src/misc/lv_fs.c
${LVGL_DIR}/src/misc/lv_gc.c
${LVGL_DIR}/src/misc/lv_ll.c
${LVGL_DIR}/src/misc/lv_log.c
${LVGL_DIR}/src/misc/lv_lru.c
${LVGL_DIR}/src/misc/lv_math.c
${LVGL_DIR}/src/misc/lv_mem.c
${LVGL_DIR}/src/misc/lv_printf.c
${LVGL_DIR}/src/misc/lv_style.c
${LVGL_DIR}/src/misc/lv_style_gen.c
${LVGL_DIR}/src/misc/lv_templ.c
${LVGL_DIR}/src/misc/lv_timer.c
${LVGL_DIR}/src/misc/lv_tlsf.c
${LVGL_DIR}/src/misc/lv_txt.c
${LVGL_DIR}/src/misc/lv_txt_ap.c
${LVGL_DIR}/src/misc/lv_utils.c

${LVGL_DIR}/src/widgets/lv_arc.c
${LVGL_DIR}/src/widgets/lv_bar.c
${LVGL_DIR}/src/widgets/lv_btn.c
${LVGL_DIR}/src/widgets/lv_btnmatrix.c
${LVGL_DIR}/src/widgets/lv_canvas.c
${LVGL_DIR}/src/widgets/lv_checkbox.c
${LVGL_DIR}/src/widgets/lv_dropdown.c
${LVGL_DIR}/src/widgets/lv_img.c
${LVGL_DIR}/src/widgets/lv_label.c
${LVGL_DIR}/src/widgets/lv_line.c
${LVGL_DIR}/src/widgets/lv_objx_templ.c
${LVGL_DIR}/src/widgets/lv_roller.c
${LVGL_DIR}/src/widgets/lv_slider.c
${LVGL_DIR}/src/widgets/lv_switch.c
${LVGL_DIR}/src/widgets/lv_table.c
${LVGL_DIR}/src/widgets/lv_textarea.c

lvgl.c
lvgl_display.c
lvgl_display_mono.c
lvgl_display_16bit.c
lvgl_display_24bit.c
lvgl_display_32bit.c
lvgl_display_mono.c
)

zephyr_library_sources_ifdef(CONFIG_LV_Z_USE_FILESYSTEM lvgl_fs.c)
zephyr_library_sources_ifdef(CONFIG_LV_Z_MEM_POOL_SYS_HEAP lvgl_mem.c)
zephyr_library_sources_ifdef(CONFIG_LV_Z_SHELL lvgl_shell.c)

zephyr_library_link_libraries(LVGL)
target_link_libraries(LVGL INTERFACE zephyr_interface)

endif()
61 changes: 61 additions & 0 deletions modules/lvgl/Kconfig
@@ -0,0 +1,61 @@
# Copyright (c) 2023 Fabian Blatz <fabianblatz@gmail.com>
# SPDX-License-Identifier: Apache-2.0

config ZEPHYR_LVGL_MODULE
bool

config LVGL
bool "LVGL support"
help
This option enables the LVGL graphics library.

if LVGL

config LV_USE_MONKEY
bool

config LV_DPI_DEF
int

config LV_CONF_SKIP
bool
default n

config APP_LINK_WITH_LVGL
bool "Link 'app' with LVGL"
default y
help
Add LVGL header files to the 'app' include path. It may be
disabled if the include paths for LVGL are causing aliasing
issues for 'app'.

config LV_Z_USE_FILESYSTEM
bool "LVGL file system support"
depends on FILE_SYSTEM
default y if FILE_SYSTEM
help
Enable LittlevGL file system

choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_16
prompt "Color depth (bits per pixel)"

config LV_COLOR_DEPTH_32
bool "32: ARGB8888"
config LV_COLOR_DEPTH_16
bool "16: RGB565"
config LV_COLOR_DEPTH_8
bool "8: RGB232"
config LV_COLOR_DEPTH_1
bool "1: monochrome"
endchoice

config LV_COLOR_16_SWAP
bool

rsource "Kconfig.memory"
rsource "Kconfig.input"
rsource "Kconfig.shell"


endif

0 comments on commit ff3142d

Please sign in to comment.