diff mbox series

[meta-oe] lvgl: Generate proper shared libraries with version suffix

Message ID 20240314025504.44148-1-marex@denx.de
State Accepted
Headers show
Series [meta-oe] lvgl: Generate proper shared libraries with version suffix | expand

Commit Message

Marek Vasut March 14, 2024, 2:54 a.m. UTC
Add missing version suffix to shared libraries. Currently the filename of
generated shared libraries is only liblvgl.so, which prevents coexistence
of different versions of LVGL on the same system. Set VERSION and SOVERSION
to make cmake add the version suffix to generated shared libraries. That
changes the filename to liblvgl.so.9.0.0 and includes symlink with major
ABI version, i.e. liblvgl.so.9 .

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Fabio Estevam <festevam@denx.de>
Cc: Khem Raj <raj.khem@gmail.com>
Cc: Martin Jansa <martin.jansa@gmail.com>
---
 ...-generate-versioned-shared-libraries.patch | 68 +++++++++++++++++++
 .../lvgl/lvgl-demo-fb_9.0.0.bb                |  1 +
 meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb   |  3 +-
 3 files changed, 70 insertions(+), 2 deletions(-)
 create mode 100644 meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch

Comments

Khem Raj March 17, 2024, 8:18 p.m. UTC | #1
On Thu, 14 Mar 2024 03:54:44 +0100, Marek Vasut wrote:
> Add missing version suffix to shared libraries. Currently the filename of
> generated shared libraries is only liblvgl.so, which prevents coexistence
> of different versions of LVGL on the same system. Set VERSION and SOVERSION
> to make cmake add the version suffix to generated shared libraries. That
> changes the filename to liblvgl.so.9.0.0 and includes symlink with major
> ABI version, i.e. liblvgl.so.9 .
> 
> [...]

Applied, thanks!

[1/1] lvgl: Generate proper shared libraries with version suffix
      commit: 4b09b8f12fb62e806968a1805bc1b4418b77f0ef

Best regards,
diff mbox series

Patch

diff --git a/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch
new file mode 100644
index 000000000..6997d8415
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch
@@ -0,0 +1,68 @@ 
+From 40657a770baadfff30abfecf7638e7b1c340db4d Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Thu, 14 Mar 2024 03:23:10 +0100
+Subject: [PATCH] fix(cmake): generate versioned shared libraries
+
+Add missing version suffix to shared libraries. Currently the filename of
+generated shared libraries is only liblvgl.so, which prevents coexistence
+of different versions of LVGL on the same system. Set VERSION and SOVERSION
+to make cmake add the version suffix to generated shared libraries. That
+changes the filename to liblvgl.so.9.0.0 and includes symlink with major
+ABI version, i.e. liblvgl.so.9 .
+
+Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5865]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ env_support/cmake/custom.cmake | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/env_support/cmake/custom.cmake b/env_support/cmake/custom.cmake
+index 9800468eb..6f33f1cc8 100644
+--- a/env_support/cmake/custom.cmake
++++ b/env_support/cmake/custom.cmake
+@@ -1,3 +1,6 @@
++set(LVGL_VERSION "9.0.0")
++set(LVGL_SOVERSION "9")
++
+ # Option to define LV_LVGL_H_INCLUDE_SIMPLE, default: ON
+ option(LV_LVGL_H_INCLUDE_SIMPLE
+        "Use #include \"lvgl.h\" instead of #include \"../../lvgl.h\"" ON)
+@@ -119,6 +122,8 @@ install(
+ set_target_properties(
+   lvgl
+   PROPERTIES OUTPUT_NAME lvgl
++             VERSION ${LVGL_VERSION}
++             SOVERSION ${LVGL_SOVERSION}
+              ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+              LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+              RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+@@ -137,6 +142,8 @@ if(NOT LV_CONF_BUILD_DISABLE_THORVG_INTERNAL)
+   set_target_properties(
+     lvgl_thorvg
+     PROPERTIES OUTPUT_NAME lvgl_thorvg
++               VERSION ${LVGL_VERSION}
++               SOVERSION ${LVGL_SOVERSION}
+                ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+                LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+                RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+@@ -155,6 +162,8 @@ if(NOT LV_CONF_BUILD_DISABLE_DEMOS)
+   set_target_properties(
+     lvgl_demos
+     PROPERTIES OUTPUT_NAME lvgl_demos
++               VERSION ${LVGL_VERSION}
++               SOVERSION ${LVGL_SOVERSION}
+                ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+                LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+                RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+@@ -173,6 +182,8 @@ if(NOT LV_CONF_BUILD_DISABLE_EXAMPLES)
+   set_target_properties(
+     lvgl_examples
+     PROPERTIES OUTPUT_NAME lvgl_examples
++               VERSION ${LVGL_VERSION}
++               SOVERSION ${LVGL_SOVERSION}
+                ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+                LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+                RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+-- 
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb
index 70df822cc..6d3ae1ec3 100644
--- a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb
+++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb
@@ -13,6 +13,7 @@  SRC_URI = "\
 	file://0004-Factor-out-fbdev-initialization-code.patch \
 	file://0005-Add-DRM-KMS-example-support.patch \
 	file://0006-Add-SDL2-example-support.patch \
+	file://0007-fix-cmake-generate-versioned-shared-libraries.patch;patchdir=lvgl \
 	"
 SRCREV_demo = "dccc6a1ca48372aa993dbea7a8e17dec6f42df6a"
 SRCREV_lvgl = "e29d35b43c509b6d7189f5dac87139441669ae66"
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb
index b84fc5a3d..8d0848508 100644
--- a/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb
+++ b/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb
@@ -12,6 +12,7 @@  SRC_URI = "\
 	git://github.com/lvgl/lvgl;protocol=https;branch=master \
 	file://0001-fix-drm-Default-to-XRGB8888-framebuffer.patch \
 	file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \
+	file://0007-fix-cmake-generate-versioned-shared-libraries.patch \
 	"
 SRCREV = "e29d35b43c509b6d7189f5dac87139441669ae66"
 PV .= "+git${SRCPV}"
@@ -30,5 +31,3 @@  FILES:${PN}-dev += "\
     ${includedir}/${PN}/ \
     ${includedir}/${PN}/lvgl/ \
     "
-SOLIBS = ".so"
-FILES_SOLIBSDEV = ""