[Buildroot] [PATCH 4/5] package/kodi: add Kconfig option to make TexturePacker optional
Bernd Kuhls
berndkuhls at hotmail.com
Thu Feb 2 07:56:07 UTC 2017
From: Bernd Kuhls <bernd.kuhls at t-online.de>
Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
Signed-off-by: Bernd Kuhls <berndkuhls at hotmail.com>
---
.../kodi-skin-confluence/kodi-skin-confluence.mk | 11 +++++++
package/kodi/Config.in | 15 ++++++++++
package/kodi/kodi.mk | 34 ++++++++++++++++------
3 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/package/kodi-skin-confluence/kodi-skin-confluence.mk b/package/kodi-skin-confluence/kodi-skin-confluence.mk
index 65f27150a..8ffa817a3 100644
--- a/package/kodi-skin-confluence/kodi-skin-confluence.mk
+++ b/package/kodi-skin-confluence/kodi-skin-confluence.mk
@@ -10,9 +10,20 @@ KODI_SKIN_CONFLUENCE_LICENSE = GPLv2+
KODI_SKIN_CONFLUENCE_LICENSE_FILES = COPYING
KODI_SKIN_CONFLUENCE_DEPENDENCIES = kodi
+ifeq ($(BR2_PACKAGE_KODI_TEXTUREPACKER),y)
+define KODI_SKIN_CONFLUENCE_BUILD_CMDS
+ $(HOST_DIR)/usr/bin/TexturePacker -input $(@D)/media/ -output $(@D)/media/Textures.xbt -dupecheck -use_none
+endef
+define KODI_SKIN_CONFLUENCE_CLEAN
+ find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.jpg -delete
+ find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.png -delete
+endef
+endif
+
define KODI_SKIN_CONFLUENCE_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence
cp -dpfr $(@D)/* $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence
+ $(KODI_SKIN_CONFLUENCE_CLEAN)
endef
$(eval $(generic-package))
diff --git a/package/kodi/Config.in b/package/kodi/Config.in
index 40b9cfb36..67435d34f 100644
--- a/package/kodi/Config.in
+++ b/package/kodi/Config.in
@@ -345,6 +345,21 @@ config BR2_PACKAGE_KODI_SKIN_DEFAULT_CONFLUENCE
endchoice
+config BR2_PACKAGE_KODI_TEXTUREPACKER
+ bool "kodi-texturepacker"
+ default y
+ help
+ Kodi uses a tool named TexturePacker to compile all images
+ used in a skin into a single file. The benefit of it is that
+ images inside the Textures.xbt will load faster in the skin.
+ This is done by converting all images into a format that take
+ less processing by Kodi when they need to be rendered onto the
+ screen.
+
+ http://kodi.wiki/view/TexturePacker
+
+comment "Skins"
+
config BR2_PACKAGE_KODI_SKIN_ESTUARY
bool "kodi-skin-estuary"
default y
diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
index d86ac6d36..f9e7434aa 100644
--- a/package/kodi/kodi.mk
+++ b/package/kodi/kodi.mk
@@ -18,11 +18,7 @@ KODI_DEPENDENCIES = \
freetype \
host-gawk \
host-gettext \
- host-giflib \
host-gperf \
- host-libjpeg \
- host-libpng \
- host-lzo \
host-nasm \
host-swig \
host-xmlstarlet \
@@ -53,10 +49,7 @@ KODI_CONF_ENV = \
PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \
PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)" \
PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" \
- PYTHON_NOVERSIONCHECK="no-check" \
- use_texturepacker_native=yes \
- USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \
- TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
+ PYTHON_NOVERSIONCHECK="no-check"
KODI_MAKE_ENV = \
DVD_PREFIX="$(STAGING_DIR)"
@@ -286,11 +279,30 @@ endif
# Add HOST_DIR to PATH for codegenerator.mk to find swig
define KODI_BOOTSTRAP
$(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/JsonSchemaBuilder
- $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/TexturePacker
cd $(@D) && PATH=$(BR_PATH) ./bootstrap
endef
KODI_PRE_CONFIGURE_HOOKS += KODI_BOOTSTRAP
+ifeq ($(BR2_PACKAGE_KODI_TEXTUREPACKER),y)
+KODI_DEPENDENCIES += \
+ host-giflib \
+ host-libjpeg \
+ host-libpng \
+ host-lzo
+KODI_CONF_ENV += \
+ use_texturepacker_native=yes \
+ USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \
+ TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
+define KODI_BUILD_TEXTUREPACKER
+ $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/TexturePacker
+ $(INSTALL) -m 755 -D $(@D)/tools/depends/native/TexturePacker/bin/TexturePacker $(HOST_DIR)/usr/bin/TexturePacker
+endef
+KODI_PRE_CONFIGURE_HOOKS += KODI_BUILD_TEXTUREPACKER
+KODI_CONF_OPTS += --enable-texturepacker
+else
+KODI_CONF_OPTS += --disable-texturepacker
+endif
+
# Remove versioncheck addon, updating Kodi is done by building a new
# buildroot image.
@@ -306,12 +318,14 @@ KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS
# Skins estuary and estouchy are installed by default and need to be
# removed if they are disabled in buildroot
ifeq ($(BR2_PACKAGE_KODI_SKIN_ESTUARY),y)
+ifeq ($(BR2_PACKAGE_KODI_TEXTUREPACKER),y)
define KODI_CLEAN_SKIN_ESTUARY
find $(TARGET_DIR)/usr/share/kodi/addons/skin.estuary/media -name *.gif -delete
find $(TARGET_DIR)/usr/share/kodi/addons/skin.estuary/media -name *.jpg -delete
find $(TARGET_DIR)/usr/share/kodi/addons/skin.estuary/media -name *.png -delete
endef
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_SKIN_ESTUARY
+endif
else
define KODI_REMOVE_SKIN_ESTUARY
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/skin.estuary
@@ -323,12 +337,14 @@ KODI_POST_INSTALL_TARGET_HOOKS += KODI_REMOVE_SKIN_ESTUARY
endif
ifeq ($(BR2_PACKAGE_KODI_SKIN_ESTOUCHY),y)
+ifeq ($(BR2_PACKAGE_KODI_TEXTUREPACKER),y)
define KODI_CLEAN_SKIN_ESTOUCHY
find $(TARGET_DIR)/usr/share/kodi/addons/skin.estouchy/media -name *.gif -delete
find $(TARGET_DIR)/usr/share/kodi/addons/skin.estouchy/media -name *.jpg -delete
find $(TARGET_DIR)/usr/share/kodi/addons/skin.estouchy/media -name *.png -delete
endef
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_SKIN_ESTOUCHY
+endif
else
define KODI_REMOVE_SKIN_ESTOUCHY
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/skin.estouchy
--
2.11.0
More information about the buildroot
mailing list