109 lines
3.7 KiB
BlitzBasic
109 lines
3.7 KiB
BlitzBasic
SUMMARY = "LVGL Demo Application"
|
|
HOMEPAGE = "https://github.com/digi-embedded/lv_port_linux_frame_buffer"
|
|
LICENSE = "MIT"
|
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \
|
|
file://lv_drivers/LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2 \
|
|
file://lvgl/LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
|
|
|
|
SRCBRANCH ?= "dey/master"
|
|
|
|
SRC_URI = " \
|
|
gitsm://github.com/digi-embedded/lv_port_linux_frame_buffer.git;branch=${SRCBRANCH};protocol=https \
|
|
file://lvgl-demo-init \
|
|
file://lvgl-demo-init.service \
|
|
"
|
|
SRCREV = "0a799d22a5aaf9de18aca428579945a0a9c2c270"
|
|
|
|
EXTRA_OEMAKE = "DESTDIR=${D}"
|
|
|
|
# By default, use wayland backend if possible.
|
|
# If unavailable, fall back to a secondary backend
|
|
MINIMAL_BACKEND ?= "fbdev"
|
|
MINIMAL_BACKEND:imxdrm = "drm"
|
|
MINIMAL_BACKEND:ccmp15 = "sdl"
|
|
PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '${MINIMAL_BACKEND}', d)}"
|
|
|
|
require lv-drivers.inc
|
|
|
|
inherit cmake systemd update-rc.d
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm"
|
|
|
|
# Change DRM card used for i.MX8-based platforms
|
|
LVGL_CONFIG_DRM_CARD:mx8-generic-bsp = "/dev/dri/card1"
|
|
|
|
LVGL_CONFIG_HOR_RES ?= "800"
|
|
LVGL_CONFIG_VER_RES ?= "480"
|
|
LVGL_CONFIG_HOR_RES:ccimx6ul ?= "1280"
|
|
LVGL_CONFIG_VER_RES:ccimx6ul ?= "800"
|
|
|
|
do_configure:prepend() {
|
|
if [ "${LVGL_CONFIG_USE_DRM}" -eq 1 ] ; then
|
|
# Add libdrm build dependency
|
|
sed -i '/^target_link_libraries/ s@lvgl::drivers@& drm@' "${S}/CMakeLists.txt"
|
|
fi
|
|
|
|
if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then
|
|
# Add libsdl build dependency
|
|
sed -i '/^target_link_libraries/ s@lvgl::drivers@& SDL2@' "${S}/CMakeLists.txt"
|
|
fi
|
|
|
|
if [ "${LVGL_CONFIG_USE_WAYLAND}" -eq 1 ] ; then
|
|
# Add wayland build dependencies
|
|
sed -i '/^target_link_libraries/ s@lvgl::drivers@& wayland-client wayland-cursor xkbcommon@' "${S}/CMakeLists.txt"
|
|
fi
|
|
|
|
# Configure the app's dimensions
|
|
sed -e "s|\(^#define *LV_DRV_DISP_HOR_RES *\).*|\1${LVGL_CONFIG_HOR_RES}|g" \
|
|
-e "s|\(^#define *LV_DRV_DISP_VER_RES *\).*|\1${LVGL_CONFIG_VER_RES}|g" \
|
|
\
|
|
-i "${S}/lv_drv_conf.h"
|
|
}
|
|
|
|
WESTON_SERVICE ?= "weston.service"
|
|
WESTON_SERVICE:ccmp15 ?= "weston-launch.service"
|
|
DEMO_DISPLAY ?= "wayland-0"
|
|
DEMO_DISPLAY:ccmp15 ?= "wayland-1"
|
|
DEMO_ENV ?= "DISPLAY=:0.0 XDG_RUNTIME_DIR=/run/user/0 WAYLAND_DISPLAY=\${DEMO_DISPLAY}"
|
|
DEMO_ENV:ccimx6ul ?= ""
|
|
|
|
do_install:append() {
|
|
install -d ${D}${bindir}
|
|
install -m 0755 ${B}/lvgl_fb ${D}${bindir}/lvgl_demo
|
|
|
|
# Install systemd service
|
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
|
# Install systemd unit files
|
|
install -d ${D}${systemd_unitdir}/system
|
|
install -m 0644 ${WORKDIR}/lvgl-demo-init.service ${D}${systemd_unitdir}/system/
|
|
sed -i -e "s,##WESTON_SERVICE##,${WESTON_SERVICE},g" \
|
|
"${D}${systemd_unitdir}/system/lvgl-demo-init.service"
|
|
fi
|
|
|
|
# Install wrapper bootscript to launch LVGL demo on boot
|
|
install -d ${D}${sysconfdir}/init.d
|
|
install -m 0755 ${WORKDIR}/lvgl-demo-init ${D}${sysconfdir}/lvgl-demo-init
|
|
sed -i -e "s@##DEMO_DISPLAY##@${DEMO_DISPLAY}@g" \
|
|
-e "s@##DEMO_ENV##@${DEMO_ENV}@g" \
|
|
"${D}${sysconfdir}/lvgl-demo-init"
|
|
ln -sf ${sysconfdir}/lvgl-demo-init ${D}${sysconfdir}/init.d/lvgl-demo-init
|
|
}
|
|
|
|
PACKAGES =+ "${PN}-init"
|
|
FILES:${PN}-init = " \
|
|
${sysconfdir}/lvgl-demo-init \
|
|
${sysconfdir}/init.d/lvgl-demo-init \
|
|
${systemd_unitdir}/system/lvgl-demo-init.service \
|
|
"
|
|
|
|
INITSCRIPT_PACKAGES += "${PN}-init"
|
|
INITSCRIPT_NAME:${PN}-init = "lvgl-demo-init"
|
|
INITSCRIPT_PARAMS:${PN}-init = "start 99 3 5 . stop 20 0 1 2 6 ."
|
|
|
|
SYSTEMD_PACKAGES = "${PN}-init"
|
|
SYSTEMD_SERVICE:${PN}-init = "lvgl-demo-init.service"
|
|
|
|
COMPATIBLE_MACHINE = "(ccimx6$|ccimx6ul|ccimx8m|ccimx8x|ccimx93|ccmp15)"
|