diff options
-rw-r--r-- | meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb | 50 |
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 \ | |||
8 | SRC_URI = "gitsm://github.com/lvgl/lv_port_linux_frame_buffer.git;branch=master;protocol=https" | 8 | SRC_URI = "gitsm://github.com/lvgl/lv_port_linux_frame_buffer.git;branch=master;protocol=https" |
9 | SRCREV = "adf2c4490e17a1b9ec1902cc412a24b3b8235c8e" | 9 | SRCREV = "adf2c4490e17a1b9ec1902cc412a24b3b8235c8e" |
10 | 10 | ||
11 | EXTRA_OEMAKE = "DESTDIR=${D}" | ||
12 | |||
13 | PACKAGECONFIG ??= "drm" | ||
14 | PACKAGECONFIG[drm] = ",,libdrm" | ||
15 | PACKAGECONFIG[fbdev] = ",," | ||
16 | PACKAGECONFIG[sdl] = ",,virtual/libsdl2" | ||
17 | LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}" | ||
18 | LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0" | ||
19 | LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}" | ||
20 | LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}" | ||
21 | |||
22 | inherit cmake | ||
23 | |||
11 | S = "${WORKDIR}/git" | 24 | S = "${WORKDIR}/git" |
12 | 25 | ||
13 | REQUIRED_DISTRO_FEATURES = "fbdev" | 26 | EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}" |
27 | TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm" | ||
14 | 28 | ||
15 | inherit features_check | 29 | do_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 | ||
17 | EXTRA_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 | ||
19 | do_install() { | 58 | do_install:append() { |
20 | oe_runmake install | 59 | install -d ${D}${bindir} |
60 | install -m 0755 ${B}/lvgl_fb ${D}${bindir}/ | ||
21 | } | 61 | } |