summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Exequiel Pedone2024-04-15 02:41:36 -0300
committerGonzalo Exequiel Pedone2024-04-15 02:41:36 -0300
commit562c0173bd6adc0a724502384918c731a36c35fa (patch)
treee86d60cb044a6e39a11a0430f9932f8ebb340bb0
downloadaur-562c0173bd6adc0a724502384918c731a36c35fa.tar.gz
New package.
-rw-r--r--.SRCINFO37
-rw-r--r--.gitignore6
-rw-r--r--PKGBUILD93
3 files changed, 136 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..39ac5d401587
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,37 @@
+pkgbase = android-aarch64-libheif-bootstrap
+ pkgdesc = An HEIF and AVIF file format decoder and encoder (Android aarch64)
+ pkgver = 1.17.6
+ pkgrel = 1
+ url = https://github.com/strukturag/libheif
+ arch = any
+ license = GPL3
+ makedepends = android-cmake
+ makedepends = android-aarch64-dav1d
+ makedepends = android-aarch64-gdk-pixbuf2
+ makedepends = android-aarch64-libjpeg
+ makedepends = android-aarch64-libpng
+ makedepends = android-aarch64-rav1e
+ makedepends = android-aarch64-svt-av1
+ makedepends = doxygen
+ depends = android-aarch64-aom
+ depends = android-aarch64-libde265
+ depends = android-aarch64-libwebp
+ depends = android-aarch64-x265
+ optdepends = android-aarch64-libjpeg: for heif-convert and heif-enc
+ optdepends = android-aarch64-libpng: for heif-convert and heif-enc
+ optdepends = android-aarch64-dav1d: dav1d encoder
+ optdepends = android-aarch64-ffmpeg: hardware decode
+ optdepends = android-aarch64-rav1e: rav1e encoder
+ optdepends = android-aarch64-svt-av1: svt-av1 encoder
+ provides = android-aarch64-libheif
+ conflicts = android-aarch64-libheif
+ options = !strip
+ options = !buildflags
+ options = staticlibs
+ options = !emptydirs
+ source = https://github.com/strukturag/libheif/releases/download/v1.17.6/libheif-1.17.6.tar.gz
+ source = https://github.com/strukturag/libheif/commit/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
+ sha256sums = 8390baf4913eda0a183e132cec62b875fb2ef507ced5ddddc98dfd2f17780aee
+ sha256sums = 53a7eeb0f0f1c9fb076a6f56c6753abf8e30cf625355c54e720cc028ae9c1ce9
+
+pkgname = android-aarch64-libheif-bootstrap
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..b5b03b115225
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+pkg
+src
+*.tar.xz
+*.tar.gz
+*.tar.bz2
+*.asc
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..012645add3b1
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,93 @@
+# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
+# Contributor: Antonio Rojas <arojas@archlinux.org>
+# Contributor: Adam Fontenot <fontenot@ucla.edu>
+
+_android_arch=aarch64
+
+pkgname=android-${_android_arch}-libheif-bootstrap
+pkgver=1.17.6
+pkgrel=1
+arch=('any')
+pkgdesc="An HEIF and AVIF file format decoder and encoder (Android ${_android_arch})"
+url='https://github.com/strukturag/libheif'
+license=('GPL3')
+makedepends=('android-cmake'
+ "android-${_android_arch}-dav1d"
+ "android-${_android_arch}-gdk-pixbuf2"
+ "android-${_android_arch}-libjpeg"
+ "android-${_android_arch}-libpng"
+ "android-${_android_arch}-rav1e"
+ "android-${_android_arch}-svt-av1"
+ 'doxygen')
+depends=("android-${_android_arch}-aom"
+ "android-${_android_arch}-libde265"
+ "android-${_android_arch}-libwebp"
+ "android-${_android_arch}-x265")
+optdepends=("android-${_android_arch}-libjpeg: for heif-convert and heif-enc"
+ "android-${_android_arch}-libpng: for heif-convert and heif-enc"
+ "android-${_android_arch}-dav1d: dav1d encoder"
+ "android-${_android_arch}-ffmpeg: hardware decode"
+ "android-${_android_arch}-rav1e: rav1e encoder"
+ "android-${_android_arch}-svt-av1: svt-av1 encoder")
+provides=("android-${_android_arch}-libheif")
+conflicts=("android-${_android_arch}-libheif")
+options=(!strip !buildflags staticlibs !emptydirs)
+source=("https://github.com/strukturag/libheif/releases/download/v$pkgver/libheif-$pkgver.tar.gz"
+ "https://github.com/strukturag/libheif/commit/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch")
+sha256sums=('8390baf4913eda0a183e132cec62b875fb2ef507ced5ddddc98dfd2f17780aee'
+ '53a7eeb0f0f1c9fb076a6f56c6753abf8e30cf625355c54e720cc028ae9c1ce9')
+
+prepare() {
+ cd "${srcdir}/libheif-$pkgver"
+
+ patch -Np1 -i ../a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch # fix build against svt-av1 2.0.0
+}
+
+build() {
+ cd "${srcdir}/libheif-$pkgver"
+ source android-env ${_android_arch}
+
+ openjpeg_dir=$(ls "${ANDROID_PREFIX_LIB}/cmake" | grep openjpeg- | head -n 1)
+
+ android-${_android_arch}-cmake \
+ -S . \
+ -B build \
+ -DBUILD_TESTING=OFF \
+ -DWITH_EXAMPLES=OFF \
+ -DWITH_DAV1D=ON \
+ -DWITH_RAV1E=ON \
+ -DWITH_FFMPEG_DECODER=OFF \
+ -DWITH_FFMPEG_DECODER_PLUGIN=OFF \
+ -DWITH_SvtEnc=ON \
+ -DWITH_JPEG_DECODER=ON \
+ -DWITH_JPEG_ENCODER=ON \
+ -DWITH_OpenJPEG_DECODER=ON \
+ -DWITH_OpenJPEG_ENCODER=ON \
+ -DLIBDE265_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
+ -DLIBDE265_LIBRARY="${ANDROID_PREFIX_LIB}/libde265.so" \
+ -DX265_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
+ -DX265_LIBRARY="${ANDROID_PREFIX_LIB}/libx265.so" \
+ -DDAV1D_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
+ -DDAV1D_LIBRARY="${ANDROID_PREFIX_LIB}/libdav1d.so" \
+ -DAOM_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
+ -DAOM_LIBRARY="${ANDROID_PREFIX_LIB}/libaom.so" \
+ -DSvtEnc_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
+ -DSvtEnc_LIBRARY="${ANDROID_PREFIX_LIB}/libSvtAv1Enc.so" \
+ -DRAV1E_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}/rav1e" \
+ -DRAV1E_LIBRARY="${ANDROID_PREFIX_LIB}/librav1e.so" \
+ -DLIBSHARPYUV_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}/webp" \
+ -DLIBSHARPYUV_LIBRARY="${ANDROID_PREFIX_LIB}/libsharpyuv.so" \
+ -DJPEG_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
+ -DJPEG_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libjpeg.so" \
+ -DOpenJPEG_DIR="${ANDROID_PREFIX_LIB}/cmake/$openjpeg_dir"
+ sed -i "s| -lgdk_pixbuf-2.0 | -L${ANDROID_PREFIX_LIB} -lgdk_pixbuf-2.0 |g" build/gdk-pixbuf/CMakeFiles/pixbufloader-heif.dir/link.txt
+ make -C build $MAKEFLAGS
+}
+
+package() {
+ cd "${srcdir}/libheif-$pkgver"
+ source android-env ${_android_arch}
+
+ make -C build DESTDIR="$pkgdir" install
+ find "${pkgdir}/${ANDROID_PREFIX_LIB}" -type f -name '*.so' -exec ${ANDROID_STRIP} -g --strip-unneeded {} \;
+}