# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: kfgz <kfgz@interia.pl>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - patch to attempt fixing ARM hackery by bandwagoning developers
#  - retain 10/12 bit separation for AArch64
#  - disable all ARM assembly - version 2.8 broke ARM support completely
#  - patch from upstream bug https://bitbucket.org/multicoreware/x265/issues/442

pkgname=x265
pkgver=3.2.1
pkgrel=1
pkgdesc='Open Source H265/HEVC video encoder'
arch=(x86_64)
url=https://bitbucket.org/multicoreware/x265
license=(GPL)
depends=(gcc-libs)
makedepends=(
  cmake
  mercurial
  nasm
)
provides=(libx265.so)
source=(hg+https://bitbucket.org/multicoreware/x265#revision=7fa570ead8d361bf6055cd2a881a8e15f12110ae
        arm.patch)
sha256sums=('SKIP'
            'd292976588ea1cb12f6371a2379fe7e22b93c18a16ea0a5acd1fbebab48988f2')

pkgver() {
  cd x265

  hg id --tags
}

prepare() {
  cd x265

  patch -p1 -i ../arm.patch
  [[ $CARCH == "aarch64" ]] && CFLAGS+=" -fPIC" && CXXFLAGS+=" -fPIC"
  [[ $CARCH != "aarch64" ]] && CONFIG="-DENABLE_ASSEMBLY=OFF"

  for d in 8 $([[ $CARCH == 'aarch64' ]] && echo "10 12"); do
    if [[ -d build-$d ]]; then
      rm -rf build-$d
    fi
    mkdir build-$d
  done
}

build() {
if [[ $CARCH == aarch64 ]]; then

  cd x265/build-12

  cmake ../source \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DHIGH_BIT_DEPTH=TRUE \
    -DMAIN12=TRUE \
    -DEXPORT_C_API=FALSE \
    -DENABLE_CLI=FALSE \
    -DENABLE_SHARED=FALSE
  make

  cd ../build-10

  cmake ../source \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DHIGH_BIT_DEPTH=TRUE \
    -DEXPORT_C_API=FALSE \
    -DENABLE_CLI=FALSE \
    -DENABLE_SHARED=FALSE
  make

  cd ../build-8

  ln -s ../build-10/libx265.a libx265_main10.a
  ln -s ../build-12/libx265.a libx265_main12.a

  cmake ../source \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DENABLE_SHARED=TRUE \
    -DENABLE_HDR10_PLUS=TRUE \
    -DEXTRA_LIB='x265_main10.a;x265_main12.a' \
    -DEXTRA_LINK_FLAGS='-L .' \
    -DLINKED_10BIT=TRUE \
    -DLINKED_12BIT=TRUE
  make

else

  cd x265/build-8

  cmake ../source \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DENABLE_SHARED=TRUE \
    $CONFIG

fi
}

package() {
  cd x265/build-8

  make DESTDIR="${pkgdir}" install
}

# vim: ts=2 sw=2 et: