diff mbox

[4/5] package/kodi: add Kconfig option to make TexturePacker optional

Message ID VI1P192MB023746ADC6A2DA7B29E02362D94C0@VI1P192MB0237.EURP192.PROD.OUTLOOK.COM
State Superseded
Headers show

Commit Message

Bernd Kuhls Feb. 2, 2017, 7:56 a.m. UTC
From: Bernd Kuhls <bernd.kuhls@t-online.de>

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Bernd Kuhls <berndkuhls@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(-)

Comments

Thomas Petazzoni Feb. 2, 2017, 2:33 p.m. UTC | #1
Hello,

On Thu, 2 Feb 2017 07:56:07 +0000, Bernd Kuhls wrote:
> From: Bernd Kuhls <bernd.kuhls@t-online.de>
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>

A non-empty commit log here would be good, since the patch is
non-trivial.

Minor nit: many of your patches have two Signed-off-by line with your
name, but different e-mail addresses. This is not very useful.

Thanks,

Thomas
Bernd Kuhls Feb. 2, 2017, 8:06 p.m. UTC | #2
Hi Thomas,

FYI: I uploaded my patch series to
https://github.com/bkuhls/buildroot/tree/kodi_br

for easier testing.

Am Thu, 02 Feb 2017 15:33:35 +0100 schrieb Thomas Petazzoni:

> Hello,
> 
> On Thu, 2 Feb 2017 07:56:07 +0000, Bernd Kuhls wrote:
>> From: Bernd Kuhls <bernd.kuhls@t-online.de>
>> 
>> Signed-off-by: Bernd Kuhls
>> <bernd.kuhls@t-online.de>
>> Signed-off-by: Bernd Kuhls
>> <berndkuhls@hotmail.com>
> 
> A non-empty commit log here would be good, since the patch is
> non-trivial.

Done:
https://github.com/bkuhls/buildroot/
commit/70162c3677f516b118c7d72a5d439475198f9c33

The rest of the github branch is unchanged compared to my patch series.

> Minor nit: many of your patches have two Signed-off-by line with your
> name, but different e-mail addresses. This is not very useful.

I know, sorry, I had problems mailing the patch series this morning.

Regards, Bernd
diff mbox

Patch

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