diff options
author | Gonzalo Exequiel Pedone | 2024-04-15 02:43:13 -0300 |
---|---|---|
committer | Gonzalo Exequiel Pedone | 2024-04-15 02:43:13 -0300 |
commit | f8c7f6cf34abc409de8b6eee8afadcbdde195b3a (patch) | |
tree | 4f2cbf0c72206896ad2897c742d3facb0b2df4a9 | |
download | aur-android-x86-libheif-bootstrap.tar.gz |
New package.
-rw-r--r-- | .SRCINFO | 37 | ||||
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | PKGBUILD | 93 |
3 files changed, 136 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..14fe25abe217 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,37 @@ +pkgbase = android-x86-libheif-bootstrap + pkgdesc = An HEIF and AVIF file format decoder and encoder (Android x86) + pkgver = 1.17.6 + pkgrel = 1 + url = https://github.com/strukturag/libheif + arch = any + license = GPL3 + makedepends = android-cmake + makedepends = android-x86-dav1d + makedepends = android-x86-gdk-pixbuf2 + makedepends = android-x86-libjpeg + makedepends = android-x86-libpng + makedepends = android-x86-rav1e + makedepends = android-x86-svt-av1 + makedepends = doxygen + depends = android-x86-aom + depends = android-x86-libde265 + depends = android-x86-libwebp + depends = android-x86-x265 + optdepends = android-x86-libjpeg: for heif-convert and heif-enc + optdepends = android-x86-libpng: for heif-convert and heif-enc + optdepends = android-x86-dav1d: dav1d encoder + optdepends = android-x86-ffmpeg: hardware decode + optdepends = android-x86-rav1e: rav1e encoder + optdepends = android-x86-svt-av1: svt-av1 encoder + provides = android-x86-libheif + conflicts = android-x86-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-x86-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..7282c561906c --- /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=x86 + +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 {} \; +} |