From 2fd48a356c88707709c04c53641a2517dfad8399 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 24 Apr 2022 23:16:07 +0200 Subject: [PATCH 1/6] libretro-vecx: add missing graphics dependency --- packages/emulation/libretro-vecx/package.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/emulation/libretro-vecx/package.mk b/packages/emulation/libretro-vecx/package.mk index 4dab0a6371..97c06d876b 100644 --- a/packages/emulation/libretro-vecx/package.mk +++ b/packages/emulation/libretro-vecx/package.mk @@ -14,6 +14,14 @@ PKG_LIBNAME="vecx_libretro.so" PKG_LIBPATH="${PKG_LIBNAME}" PKG_LIBVAR="VECX_LIB" +if [ "${OPENGLES_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" +fi + +if [ "${OPENGL_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL}" +fi + make_target() { if [ "${OPENGL_SUPPORT}" = no ]; then HAS_GLES=1 make From d357a20068dcf48e341d2f64c06dfebc27860d1f Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 24 Apr 2022 23:17:33 +0200 Subject: [PATCH 2/6] pvr.vdr.vnsi: add missing graphics dependency --- .../kodi-binary-addons/pvr.vdr.vnsi/package.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk index 3c3a543ff5..24d17bad84 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk @@ -17,3 +17,11 @@ PKG_LONGDESC="pvr.vdr.vnsi" PKG_IS_ADDON="yes" PKG_ADDON_TYPE="xbmc.pvrclient" + +if [ "${OPENGLES_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" +fi + +if [ "${OPENGL_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL}" +fi From 88ebe7197610eebb0d2bb11e270def4848d97666 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 24 Apr 2022 23:17:54 +0200 Subject: [PATCH 3/6] glm: add graphics dependency --- packages/graphics/glm/package.mk | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/graphics/glm/package.mk b/packages/graphics/glm/package.mk index 8ec1526d34..10db567350 100644 --- a/packages/graphics/glm/package.mk +++ b/packages/graphics/glm/package.mk @@ -11,6 +11,16 @@ PKG_SOURCE_DIR="glm" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="OpenGL Mathematics (GLM)" +# Not needed by GLM itself, but users will need it. So instead of adding this +# to every user, put it here once. +if [ "${OPENGLES_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" +fi + +if [ "${OPENGL_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL}" +fi + # Hack install solution until cmake install restored in upstream package makeinstall_target() { target_has_feature 32bit && PKG_VOID_SIZE=4 || PKG_VOID_SIZE=8 From ff6f6996a215c722c0fb349f7e009497b71dff25 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 21 Aug 2022 10:16:08 +0200 Subject: [PATCH 4/6] kodi: unify KODI_PLAYER and KODI_PLATFORM --- packages/mediacenter/kodi/package.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index be35f73701..51b6cde657 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -192,7 +192,7 @@ configure_package() { if [ ! "${KODIPLAYER_DRIVER}" = "default" -a "${DISPLAYSERVER}" = "no" ]; then PKG_DEPENDS_TARGET+=" ${KODIPLAYER_DRIVER} libinput libxkbcommon" if [ "${OPENGLES_SUPPORT}" = yes -a "${KODIPLAYER_DRIVER}" = "${OPENGLES}" ]; then - KODI_PLAYER="-DCORE_PLATFORM_NAME=gbm -DAPP_RENDER_SYSTEM=gles" + KODI_PLATFORM="-DCORE_PLATFORM_NAME=gbm -DAPP_RENDER_SYSTEM=gles" CFLAGS+=" -DEGL_NO_X11" CXXFLAGS+=" -DEGL_NO_X11" if [ "${PROJECT}" = "Generic" ]; then @@ -255,7 +255,6 @@ configure_package() { ${KODI_AIRTUNES} \ ${KODI_OPTICAL} \ ${KODI_BLURAY} \ - ${KODI_PLAYER} \ ${KODI_ALSA} \ ${KODI_PULSEAUDIO} \ ${KODI_PIPEWIRE}" From 7cf21f41e09a3ebfa5270c9a427ba75bd715983b Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 24 Apr 2022 21:04:04 +0200 Subject: [PATCH 5/6] kodi: Add host target for addon headers --- packages/mediacenter/kodi/package.mk | 26 ++++++++++ .../patches/kodi-999.20-headers-only.patch | 48 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 packages/mediacenter/kodi/patches/kodi-999.20-headers-only.patch diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 51b6cde657..5f4e6bcebe 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -9,6 +9,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" PKG_URL="https://github.com/xbmc/xbmc/archive/${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain JsonSchemaBuilder:host TexturePacker:host Python3 zlib systemd lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt rapidjson sqlite ffmpeg crossguid libdvdnav libfmt lirc libfstrcmp flatbuffers:host flatbuffers libudfread spdlog" +PKG_DEPENDS_HOST="toolchain" PKG_LONGDESC="A free and open source cross-platform media player." PKG_BUILD_FLAGS="+speed" @@ -260,6 +261,31 @@ configure_package() { ${KODI_PIPEWIRE}" } +configure_host() { + setup_toolchain target:cmake + cmake ${CMAKE_GENERATOR_NINJA} \ + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CONF} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -DHEADERS_ONLY=ON \ + ${KODI_ARCH} \ + ${KODI_NEON} \ + ${KODI_PLATFORM} .. +} + +make_host() { + : +} + +makeinstall_host() { + DESTDIR=${SYSROOT_PREFIX} cmake -DCMAKE_INSTALL_COMPONENT="kodi-addon-dev" -P cmake_install.cmake + + # more binaddons cross compile badness meh + sed -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR ${SYSROOT_PREFIX}/usr/include/kodi:g" \ + -e "s:CMAKE_MODULE_PATH /usr/lib/kodi /usr/share/kodi/cmake:CMAKE_MODULE_PATH ${SYSROOT_PREFIX}/usr/share/kodi/cmake:g" \ + -i ${SYSROOT_PREFIX}/usr/lib/kodi/cmake/KodiConfig.cmake +} + pre_configure_target() { export LIBS="${LIBS} -lncurses" } diff --git a/packages/mediacenter/kodi/patches/kodi-999.20-headers-only.patch b/packages/mediacenter/kodi/patches/kodi-999.20-headers-only.patch new file mode 100644 index 0000000000..6ea97a4797 --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.20-headers-only.patch @@ -0,0 +1,48 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e5824f0d20b7..cf17e1563a7f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -45,6 +45,7 @@ include(ExternalProject) + + + # general ++option(HEADERS_ONLY "Skip building" OFF) + option(VERBOSE "Enable verbose output?" OFF) + option(ENABLE_CLANGTIDY "Enable clang-tidy support?" OFF) + option(ENABLE_CPPCHECK "Enable cppcheck support?" OFF) +@@ -95,6 +96,7 @@ endif() + + core_find_git_rev(APP_SCMID FULL) + ++if(NOT HEADERS_ONLY) + # Dynamically loaded libraries built with the project + add_custom_target(${APP_NAME_LC}-libraries) + set(LIBRARY_FILES "" CACHE STRING "" FORCE) +@@ -458,6 +460,7 @@ endif() + if(FFMPEG_CREATE_SHARED_LIBRARY) + set(CMAKE_CXX_CREATE_SHARED_LIBRARY "${FFMPEG_CREATE_SHARED_LIBRARY}") + endif() ++endif() + + # Platform specific additional extra targets + if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/scripts/${CORE_SYSTEM_NAME}/ExtraTargets.cmake) +diff --git a/cmake/scripts/linux/Install.cmake b/cmake/scripts/linux/Install.cmake +index 331722cb5616..cc00c55fa27c 100644 +--- a/cmake/scripts/linux/Install.cmake ++++ b/cmake/scripts/linux/Install.cmake +@@ -51,6 +51,7 @@ configure_file(${CMAKE_SOURCE_DIR}/tools/Linux/kodi.desktop.in + configure_file(${CMAKE_SOURCE_DIR}/tools/Linux/kodi.metainfo.xml.in + ${CORE_BUILD_DIR}/${APP_PACKAGE}.metainfo.xml @ONLY) + ++if(NOT HEADERS_ONLY) + # Install app + install(TARGETS ${APP_NAME_LC} + DESTINATION ${libdir}/${APP_NAME_LC} +@@ -160,6 +161,7 @@ if(INTERNAL_TEXTUREPACKER_INSTALLABLE) + RENAME "${APP_NAME_LC}-TexturePacker" + COMPONENT kodi-tools-texturepacker) + endif() ++endif() + + # Install kodi-addon-dev headers + include(${CMAKE_SOURCE_DIR}/xbmc/addons/AddonBindings.cmake) From 28ed5366a6bf57b43dd369e56641b6992c23b9a2 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 24 Apr 2022 21:04:56 +0200 Subject: [PATCH 6/6] kodi-platform: swith to kodi:host dependency --- packages/mediacenter/kodi-platform/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/kodi-platform/package.mk b/packages/mediacenter/kodi-platform/package.mk index be6b145c76..3fb87ddc3a 100644 --- a/packages/mediacenter/kodi-platform/package.mk +++ b/packages/mediacenter/kodi-platform/package.mk @@ -8,7 +8,7 @@ PKG_SHA256="159165ae641da5eb273885ce53b8a4b84e62a595c4974f9d12c1b5d1428ef25c" PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" PKG_URL="https://github.com/xbmc/kodi-platform/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain tinyxml ${MEDIACENTER} p8-platform" +PKG_DEPENDS_TARGET="toolchain tinyxml ${MEDIACENTER}:host p8-platform" PKG_LONGDESC="kodi-platform:" PKG_CMAKE_OPTS_TARGET="-DCMAKE_INSTALL_LIBDIR:STRING=lib \