From 527c0eca79c308d5f4d8ef9c07af91e6a9e7c0a4 Mon Sep 17 00:00:00 2001
From: Fredrik Fornwall <fredrik@fornwall.net>
Date: Mon, 27 Aug 2018 12:13:28 +0200
Subject: [PATCH] libwebp: Add package and enable in imagemagick

Fixes #2676.
---
 packages/imagemagick/build.sh          |  2 +-
 packages/libwebp/CMakeLists.txt.patch  | 26 ++++++++++++++++++++++++++
 packages/libwebp/build.sh              | 18 ++++++++++++++++++
 packages/libwebp/cmake-cpu.cmake.patch | 20 ++++++++++++++++++++
 4 files changed, 65 insertions(+), 1 deletion(-)
 create mode 100644 packages/libwebp/CMakeLists.txt.patch
 create mode 100644 packages/libwebp/build.sh
 create mode 100644 packages/libwebp/cmake-cpu.cmake.patch

diff --git a/packages/imagemagick/build.sh b/packages/imagemagick/build.sh
index a1bfa6092..26ce6767e 100644
--- a/packages/imagemagick/build.sh
+++ b/packages/imagemagick/build.sh
@@ -27,7 +27,7 @@ share/man/man1/MagickCore-config.1
 share/man/man1/MagickWand-config.1
 share/man/man1/Wand-config.1
 "
-TERMUX_PKG_DEPENDS="fftw, pango, glib, libbz2, libjpeg-turbo, liblzma, libpng, libtiff, libxml2, openjpeg, littlecms"
+TERMUX_PKG_DEPENDS="fftw, pango, glib, libbz2, libjpeg-turbo, liblzma, libpng, libtiff, libxml2, openjpeg, littlecms, libwebp"
 
 termux_step_pre_configure() {
 	if [ $TERMUX_ARCH = "i686" ]; then
diff --git a/packages/libwebp/CMakeLists.txt.patch b/packages/libwebp/CMakeLists.txt.patch
new file mode 100644
index 000000000..6175d23fd
--- /dev/null
+++ b/packages/libwebp/CMakeLists.txt.patch
@@ -0,0 +1,26 @@
+diff -u -r ../libwebp-1.0.0/CMakeLists.txt ./CMakeLists.txt
+--- ../libwebp-1.0.0/CMakeLists.txt	2018-04-21 03:04:55.000000000 +0000
++++ ./CMakeLists.txt	2018-08-26 00:26:35.791990624 +0000
+@@ -37,21 +37,7 @@
+ 
+ ################################################################################
+ # Android only.
+-if(ANDROID)
+-  include_directories(${ANDROID_NDK}/sources/android/cpufeatures)
+-  add_library(cpufeatures STATIC
+-    ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c
+-  )
+-  target_link_libraries(cpufeatures dl)
+-  set(WEBP_DEP_LIBRARIES ${WEBP_DEP_LIBRARIES} cpufeatures)
+-  set(WEBP_DEP_INCLUDE_DIRS ${WEBP_DEP_INCLUDE_DIRS}
+-    ${ANDROID_NDK}/sources/android/cpufeatures
+-  )
+-  add_definitions(-DHAVE_CPU_FEATURES_H=1)
+-  set(HAVE_CPU_FEATURES_H 1)
+-else()
+-  set(HAVE_CPU_FEATURES_H 0)
+-endif()
++set(HAVE_CPU_FEATURES_H 0)
+ 
+ ################################################################################
+ # WebP source files.
diff --git a/packages/libwebp/build.sh b/packages/libwebp/build.sh
new file mode 100644
index 000000000..3a7740961
--- /dev/null
+++ b/packages/libwebp/build.sh
@@ -0,0 +1,18 @@
+TERMUX_PKG_HOMEPAGE=https://github.com/webmproject/libwebp
+TERMUX_PKG_DESCRIPTION="Library to encode and decode images in WebP format"
+TERMUX_PKG_VERSION=1.0.0
+TERMUX_PKG_SHA256=c5c5ebf979543ac1f3348df8f6245262abd787a147b9632c880d92bfc38dbbeb
+TERMUX_PKG_SRCURL=https://github.com/webmproject/libwebp/archive/v$TERMUX_PKG_VERSION.tar.gz
+TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
+--disable-gif
+--disable-jpeg
+--disable-libwebpdemux
+--disable-png
+--disable-tiff
+--disable-wic
+"
+TERMUX_PKG_RM_AFTER_INSTALL="share/man/man1"
+
+termux_step_pre_configure() {
+	./autogen.sh
+}
diff --git a/packages/libwebp/cmake-cpu.cmake.patch b/packages/libwebp/cmake-cpu.cmake.patch
new file mode 100644
index 000000000..c313310da
--- /dev/null
+++ b/packages/libwebp/cmake-cpu.cmake.patch
@@ -0,0 +1,20 @@
+diff -u -r ../libwebp-1.0.0/cmake/cpu.cmake ./cmake/cpu.cmake
+--- ../libwebp-1.0.0/cmake/cpu.cmake	2018-04-21 03:04:55.000000000 +0000
++++ ./cmake/cpu.cmake	2018-08-26 00:25:11.905018914 +0000
+@@ -45,16 +45,6 @@
+ set(WEBP_SIMD_FILES_TO_INCLUDE)
+ set(WEBP_SIMD_FLAGS_TO_INCLUDE)
+ 
+-if(${ANDROID})
+-  if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
+-    # This is because Android studio uses the configuration
+-    # "-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
+-    # that does not trigger neon optimizations but should
+-    # (as this configuration does not exist anymore).
+-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon ")
+-  endif()
+-endif()
+-
+ list(LENGTH WEBP_SIMD_FLAGS WEBP_SIMD_FLAGS_LENGTH)
+ math(EXPR WEBP_SIMD_FLAGS_RANGE "${WEBP_SIMD_FLAGS_LENGTH} - 1")
+