# Template file for 'x265'
pkgname=x265
version=3.5
revision=1
_commit="f0c1022b6be1"
build_wrksrc=source
build_style=cmake
configure_args="-DENABLE_PIC=1"
hostmakedepends="git"
short_desc="Open Source H.265/HEVC video encoder"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later"
homepage="http://x265.org/"
distfiles="https://bitbucket.org/multicoreware/x265_git/get/${version}.tar.gz"
checksum=5ca3403c08de4716719575ec56c686b1eb55b078c0fe50a064dcf1ac20af1618

build_options="altivec assembly"

desc_option_altivec="Enable AltiVec support on ppc64 (POWER8 and higher only)"
desc_option_assembly="Enable assembly support on x86/ARM"

case "$XBPS_TARGET_MACHINE" in
	ppc64le*) build_options_default="altivec" ;;
	# on ARM, enabling it currently fails with undefined reference to
	# x265::setupAssemblyPrimitives(x265::EncoderPrimitives&, int)
	x86_64*|i686*) build_options_default="assembly" ;;
	*) ;;
esac

if [ "$build_option_assembly" ]; then
	case "$XBPS_TARGET_MACHINE" in
		x86_64*|i686*)
			# see https://bitbucket.org/multicoreware/x265_git/issues/559
			configure_args+=" -DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy"
			hostmakedepends+=" nasm"
			;;
		*) ;;
	esac
fi

case "$XBPS_TARGET_MACHINE" in
	ppc64*)
		# altivec does not build without power8 being enabled
		configure_args+=" -DENABLE_ALTIVEC=$(vopt_if altivec ON OFF)
		 -DCPU_POWER8=$(vopt_if altivec ON OFF)"
		;;
	*) configure_args+=" -DENABLE_ASSEMBLY=$(vopt_if assembly ON OFF)" ;;
esac

pre_configure() {
	if [ "$CROSS_BUILD" ]; then
		vsed -i CMakeLists.txt -e "s; -mcpu=native;;"
	fi
}

x265-devel_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.so"
		vmove "usr/lib/*.a"
	}
}
