summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb50
1 files changed, 45 insertions, 5 deletions
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
index 1dfb199ff..33e7c94e6 100644
--- a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
+++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
@@ -8,14 +8,54 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \
8SRC_URI = "gitsm://github.com/lvgl/lv_port_linux_frame_buffer.git;branch=master;protocol=https" 8SRC_URI = "gitsm://github.com/lvgl/lv_port_linux_frame_buffer.git;branch=master;protocol=https"
9SRCREV = "adf2c4490e17a1b9ec1902cc412a24b3b8235c8e" 9SRCREV = "adf2c4490e17a1b9ec1902cc412a24b3b8235c8e"
10 10
11EXTRA_OEMAKE = "DESTDIR=${D}"
12
13PACKAGECONFIG ??= "drm"
14PACKAGECONFIG[drm] = ",,libdrm"
15PACKAGECONFIG[fbdev] = ",,"
16PACKAGECONFIG[sdl] = ",,virtual/libsdl2"
17LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}"
18LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0"
19LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}"
20LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}"
21
22inherit cmake
23
11S = "${WORKDIR}/git" 24S = "${WORKDIR}/git"
12 25
13REQUIRED_DISTRO_FEATURES = "fbdev" 26EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
27TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm"
14 28
15inherit features_check 29do_configure:prepend() {
30 sed -i -e "s|\(^# define USE_FBDEV \).*|# define USE_FBDEV ${LVGL_CONFIG_USE_FBDEV}|g" \
31 -e "s|\(^# define USE_DRM \).*|# define USE_DRM ${LVGL_CONFIG_USE_DRM}|g" \
32 -e "s|\(^# define DRM_CARD \).*|# define DRM_CARD \"${LVGL_CONFIG_DRM_CARD}\"|g" \
33 -e "s|\(^# define USE_SDL \).*|# define USE_SDL ${LVGL_CONFIG_USE_SDL}|g" \
34 -e "s|\(^# define USE_SDL_GPU \).*|# define USE_SDL_GPU 1|g" \
35 -e "s|\(^# define SDL_DOUBLE_BUFFERED \).*|# define SDL_DOUBLE_BUFFERED 1|g" \
36 "${S}/lv_drv_conf.h"
16 37
17EXTRA_OEMAKE = "DESTDIR=${D}" 38 if [ "${LVGL_CONFIG_USE_DRM}" -eq 1 ] ; then
39 # Add libdrm build dependency
40 sed -i '/^target_link_libraries/ s@lvgl::drivers@& drm@' "${S}/CMakeLists.txt"
41 # Switch from fbdev to drm usage
42 sed -i 's@fbdev@drm@g' "${S}/main.c"
43 # Pull resolution from DRM instead of hardcoding it
44 sed -i '/disp_drv.hor_res/ d' "${S}/main.c"
45 sed -i '/disp_drv.ver_res/ s@disp_drv.ver_res.*@drm_get_sizes(\&disp_drv.hor_res, \&disp_drv.ver_res, NULL);@' "${S}/main.c"
46 fi
47
48 if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then
49 # Add libsdl build dependency
50 sed -i '/^target_link_libraries/ s@lvgl::drivers@& SDL2@' "${S}/CMakeLists.txt"
51 # Switch from fbdev to sdl usage
52 sed -i 's@fbdev_flush@sdl_display_flush@g' "${S}/main.c"
53 sed -i 's@lv_drivers/display/fbdev.h@lv_drivers/sdl/sdl.h@g' "${S}/main.c"
54 sed -i 's@fbdev@sdl@g' "${S}/main.c"
55 fi
56}
18 57
19do_install() { 58do_install:append() {
20 oe_runmake install 59 install -d ${D}${bindir}
60 install -m 0755 ${B}/lvgl_fb ${D}${bindir}/
21} 61}