[meta-zephyr][PATCH 4/4] zephyr-lvgl: new recipe


Bartosz Golaszewski
 

From: Bartosz Golaszewski <bartosz.golaszewski@...>

This adds a recipe for building the lvgl sample from mainline zephyr
source. We need to include one upstream patch that fixes a build problem
with lvgl and pull in two other modules or otherwise the default config
will fail to build. Currently only the nordic reference devkit for
nrf52840 is supported.

Big thanks to Eilís Ní Fhlannagáin <elizabeth.flanagan@...> for
helping me with that.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@...>
Signed-off-by: Eilís Ní Fhlannagáin <elizabeth.flanagan@...>
---
...0001-cmake-added-missing-file-ext-to.patch | 42 +++++++++++++++++++
.../zephyr-kernel/zephyr-kernel-common.inc | 1 +
.../zephyr-kernel/zephyr-kernel-src-2.6.1.inc | 3 ++
.../zephyr-kernel/zephyr-kernel-src-2.7.0.inc | 3 ++
.../zephyr-kernel/zephyr-kernel-src.inc | 3 ++
recipes-kernel/zephyr-kernel/zephyr-lvgl.bb | 11 +++++
6 files changed, 63 insertions(+)
create mode 100644 recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch
create mode 100644 recipes-kernel/zephyr-kernel/zephyr-lvgl.bb

diff --git a/recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch b/recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch
new file mode 100644
index 0000000..6aeca14
--- /dev/null
+++ b/recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch
@@ -0,0 +1,42 @@
+From 783c1f78c8e39751fe89d0883c8bce7336f55e94 Mon Sep 17 00:00:00 2001
+From: Torsten Rasmussen <Torsten.Rasmussen@...>
+Date: Thu, 19 Aug 2021 08:53:00 +0200
+Subject: [PATCH] cmake: added missing file ext to
+ lv_font_dejavu_16_persian_hebrew.c
+
+CMake >= 3.20 requires file extensions explicitly added to source files.
+
+See CMP0115:
+> Starting in CMake 3.20, CMake prefers all source files to have their
+> extensions explicitly listed:
+
+In the CMakeLists.txt, the file lv_font_dejavu_16_persian_hebrew.c
+was added without its .c extension, causing never CMakes ti fail
+discovering the file.
+
+This has been fixed by correctly add the file as:
+lv_font_dejavu_16_persian_hebrew.c
+
+Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@...>
+---
+Upstream-status: Accepted
+
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 57b07c84..0f433edc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,7 +58,7 @@ zephyr_library_sources(
+ src/lv_misc/lv_utils.c
+
+ src/lv_font/lv_font.c
+- src/lv_font/lv_font_dejavu_16_persian_hebrew
++ src/lv_font/lv_font_dejavu_16_persian_hebrew.c
+ src/lv_font/lv_font_fmt_txt.c
+ src/lv_font/lv_font_loader.c
+ src/lv_font/lv_font_montserrat_12.c
+--
+Gitee
+
diff --git a/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc b/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc
index 5ae7504..04eb72b 100644
--- a/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc
+++ b/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc
@@ -31,6 +31,7 @@ ZEPHYR_MODULES:append:arm = "\;${S}/modules/cmsis"
ZEPHYR_MODULES:append:nordic = "\;${S}/modules/hal/nordic"
ZEPHYR_MODULES:append:stm32 = "\;${S}/modules/hal/stm32"
ZEPHYR_MODULES:append:openamp = "\;${S}/modules/lib/open-amp\;${S}/modules/hal/libmetal"
+ZEPHYR_MODULES:append:zsegger = "\;${S}/modules/debug/segger"

EXTRA_OECMAKE:append = " -DZEPHYR_MODULES=${ZEPHYR_MODULES}"

diff --git a/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc b/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc
index 9f28df7..a7289f1 100644
--- a/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc
+++ b/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc
@@ -2,12 +2,15 @@ SRCREV_FORMAT = "default_cmsis"
SRCREV_cmsis = "c3bd2094f92d574377f7af2aec147ae181aa5f8e"
SRCREV_default = "2d6322d74aaac838ead46bfcba0db619cff4b534"
SRCREV_libmetal = "39d049d4ae68e6f6d595fce7de1dcfc1024fb4eb"
+SRCREV_lvgl = "31acbaa36e9e74ab88ac81e3d21e7f1d00a71136"
SRCREV_mbedtls = "5765cb7f75a9973ae9232d438e361a9d7bbc49e7"
SRCREV_nordic = "574493fe29c79140df4827ab5d4a23df79d03681"
SRCREV_open-amp = "6010f0523cbc75f551d9256cf782f173177acdef"
SRCREV_openthread = "385e19da1ae15f27872c2543b97276a42f102ead"
+SRCREV_segger = "3a52ab222133193802d3c3b4d21730b9b1f1d2f6"
SRCREV_stm32 = "f8ff8d25aa0a9e65948040c7b47ec67f3fa300df"
SRCREV_tinycrypt = "3e9a49d2672ec01435ffbf0d788db6d95ef28de0"
+SRCREV_TraceRecorderSource = "36c577727642457b0db7274298a4b96558374832"

ZEPHYR_BRANCH = "v2.6-branch"
PV = "2.6.1+git${SRCPV}"
diff --git a/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.0.inc b/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.0.inc
index f425d9f..1cc9a4e 100644
--- a/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.0.inc
+++ b/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.0.inc
@@ -2,12 +2,15 @@ SRCREV_FORMAT = "default_cmsis"
SRCREV_cmsis = "b0612c97c1401feeb4160add6462c3627fe90fc7"
SRCREV_default = "3f826560aaf81a444018293bd6acce3c339fe150"
SRCREV_libmetal = "39d049d4ae68e6f6d595fce7de1dcfc1024fb4eb"
+SRCREV_lvgl = "31acbaa36e9e74ab88ac81e3d21e7f1d00a71136"
SRCREV_mbedtls = "5765cb7f75a9973ae9232d438e361a9d7bbc49e7"
SRCREV_nordic = "a6e5299041f152da5ae0ab17b2e44e088bb96d6d"
SRCREV_open-amp = "6010f0523cbc75f551d9256cf782f173177acdef"
SRCREV_openthread = "5d706547ebcb0a85e11412bcd88e80e2af98c74d"
+SRCREV_segger = "3a52ab222133193802d3c3b4d21730b9b1f1d2f6"
SRCREV_stm32 = "5c8275071ec1cf160bfe8c18bbd9330a7d714dc8"
SRCREV_tinycrypt = "3e9a49d2672ec01435ffbf0d788db6d95ef28de0"
+SRCREV_TraceRecorderSource = "36c577727642457b0db7274298a4b96558374832"

ZEPHYR_BRANCH = "v2.7-branch"
PV = "2.7.0+git${SRCPV}"
diff --git a/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc b/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc
index 4ef8a9a..f0445cc 100644
--- a/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc
+++ b/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc
@@ -14,10 +14,13 @@ SRC_URI = "\
git://github.com/zephyrproject-rtos/hal_nordic.git;protocol=https;destsuffix=git/modules/hal/nordic;name=nordic \
git://github.com/zephyrproject-rtos/hal_stm32.git;branch=main;protocol=https;destsuffix=git/modules/hal/stm32;name=stm32 \
git://github.com/zephyrproject-rtos/libmetal.git;protocol=https;destsuffix=git/modules/hal/libmetal;name=libmetal \
+ git://github.com/zephyrproject-rtos/lvgl.git;branch=zephyr;protocol=https;destsuffix=git/modules/lib/gui/lvgl;name=lvgl \
git://github.com/zephyrproject-rtos/mbedtls.git;protocol=https;destsuffix=git/modules/lib/mbedtls;name=mbedtls \
git://github.com/zephyrproject-rtos/open-amp.git;protocol=https;destsuffix=git/modules/lib/open-amp;name=open-amp \
git://github.com/zephyrproject-rtos/openthread.git;protocol=https;branch=zephyr;destsuffix=git/modules/lib/openthread;name=openthread \
+ git://github.com/zephyrproject-rtos/segger.git;protocol=https;destsuffix=git/modules/debug/segger;name=segger \
git://github.com/zephyrproject-rtos/tinycrypt.git;protocol=https;destsuffix=git/modules/crypto/tinycrypt;name=tinycrypt \
+ git://github.com/zephyrproject-rtos/TraceRecorderSource.git;branch=zephyr;protocol=https;destsuffix=git/modules/debug/TraceRecorder;name=TraceRecorderSource \
"
S = "${WORKDIR}/git"

diff --git a/recipes-kernel/zephyr-kernel/zephyr-lvgl.bb b/recipes-kernel/zephyr-kernel/zephyr-lvgl.bb
new file mode 100644
index 0000000..29d1c5f
--- /dev/null
+++ b/recipes-kernel/zephyr-kernel/zephyr-lvgl.bb
@@ -0,0 +1,11 @@
+include zephyr-sample.inc
+
+ZEPHYR_SRC_DIR = "${S}/samples/subsys/display/lvgl"
+ZEPHYR_MODULES:append = "\;${S}/modules/lib/gui/lvgl"
+
+# TODO Once more machines and displays are supported, add a PACKAGECONFIG.
+EXTRA_OECMAKE:append =" -DSHIELD=adafruit_2_8_tft_touch_v2"
+
+SRC_URI:append = " file://0001-cmake-added-missing-file-ext-to.patch;patchdir=modules/lib/gui/lvgl"
+
+COMATIBLE_MACHINE = "(nrf52840dk-nrf52840)"
--
2.30.1

Join yocto@lists.yoctoproject.org to automatically receive all group messages.