# Maintainer: omni <omni+alpine@hack.org>
pkgname=sccache
pkgver=0.10.0
pkgrel=0
pkgdesc="shared compilation cache for C/C++ and Rust"
url="https://github.com/mozilla/sccache/"
arch="all"
license="Apache-2.0"
makedepends="cargo openssl-dev>3 cargo-auditable"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/mozilla/sccache/archive/v$pkgver.tar.gz
	test_musl_ldd_parse.patch
	unlimit-sccache-dist.patch
	"

case "$CARCH" in
loongarch64|riscv64|s390x)
	# limited by nix crate held back by libmount crate
	_features="dist-client"
	;;
*)
	subpackages="$subpackages $pkgname-dist"
	_features="dist-client,dist-server"
	;;
esac


prepare() {
	default_prepare
	cargo fetch --locked
}

build() {
	cargo auditable build --release --frozen --features $_features
}

check() {
	echo "$CARGO_HOME"
	cargo test --frozen --features $_features \
		-- --skip test_rlib_dep_reader_call # assertion failed: cargo_home.is_ok()
}

package() {
	install -Dm0755 target/release/sccache -t "$pkgdir"/usr/bin

	case "$CARCH" in
	loongarch64|riscv64|s390x)
		;;
	*)
		install -Dm0755 target/release/sccache-dist \
			-t "$pkgdir"/usr/bin
		;;
	esac

	install -Dm0644 -t "$pkgdir"/usr/share/doc/"$pkgname" \
		docs/*.md
	rm "$pkgdir"/usr/share/doc/"$pkgname"/DistributedFreeBSD.md \
	   "$pkgdir"/usr/share/doc/"$pkgname"/Releasing.md
}

dist() {
	pkgdesc="$pkgdesc (dist server)"

	amove usr/bin/sccache-dist
}

sha512sums="
66e324bd7db1841e7f23a3f78ef421bedcaac5531d14f53ea5a31b1a2d051aae18bf57972c802b10acf658c2e24914eb0d9a0018b0455fe667a5954ef32a8ed0  sccache-0.10.0.tar.gz
e362e14364f8730dd1843ce5a0838e2090e5c2a5b09ab63d4877b2b890429b5c103d9e418f894c7286803049074013a26e2bc531b32dd890b1afe36b0456e516  test_musl_ldd_parse.patch
f374148127d3ea33a9daac32036479fd7f6df301d9bca490417560ab8edc49856ef9782d6027affeaa830f45ded26632a0da4f8aa30db38457451dfba74a567e  unlimit-sccache-dist.patch
"
