# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=rav1e
pkgver=0.7.1
pkgrel=0
pkgdesc="The fastest and safest AV1 encoder"
url="https://github.com/xiph/rav1e"
arch="all"
license="BSD-2-Clause custom"
makedepends="cargo cargo-c nasm cargo-auditable"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs"
source="$pkgname-$pkgver.tar.gz::https://github.com/xiph/rav1e/archive/v$pkgver.tar.gz
	upgrade-rust-libc-to-support-loongarch64.patch
	"
options="net" # cargo crates

# armhf: tests take >6h
case "$CARCH" in
arm*|riscv64)
	options="$options !check"
	;;
esac

export CARGO_PROFILE_RELEASE_INCREMENTAL=false
export CARGO_PROFILE_RELEASE_DEBUG=false

prepare() {
	default_prepare

	cargo fetch --locked
}

build() {
	export CARGO_PROFILE_RELEASE_OPT_LEVEL=3

	cargo auditable build --release --locked
	cargo auditable cbuild \
		--release \
		--locked \
		--prefix /usr \
		--library-type cdylib \
		--library-type staticlib
}

check() {
	cargo test --frozen --workspace
}

package() {
	cargo auditable cinstall --release \
		--frozen \
		--prefix /usr \
		--destdir "$pkgdir" \
		--library-type cdylib \
		--library-type staticlib

	install -Dm755 target/release/rav1e -t "$pkgdir"/usr/bin/

	install -Dm644 README.md PATENTS -t "$pkgdir"/usr/share/doc/rav1e

	# fixes static linking flags
	sed -i 's|Libs.private:.*|Libs.private: -lssp_nonshared -lgcc_eh -lc|' \
		"$pkgdir"/usr/lib/pkgconfig/rav1e.pc
}

sha512sums="
15e95401fe43ff5d28f5cf98122a057566faf291540151eda57fdf941e1ab446afb366ca52fea22dc6e46c5b49878269760f27cbda7487558beac8c5f8c727f9  rav1e-0.7.1.tar.gz
e63f044a72480e786e72900bfef370313f90e34c0c12071b7383f04b2e07b12e7e2c1b4131691bf17acc64eb8bac4c9933bb1a720475b303328ee5e39ab5fe2b  upgrade-rust-libc-to-support-loongarch64.patch
"
