# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=cargo-c
pkgver=0.10.13
pkgrel=0
pkgdesc="cargo subcommand to build and install C-ABI compatibile dynamic and static libraries"
url="https://github.com/lu-zero/cargo-c"
arch="all"
license="MIT"
# nghttp2-sys doesn't support system
makedepends="
	cargo
	cargo-auditable
	curl-dev
	!libgit2-dev
	libssh2-dev
	openssl-dev>3
	zlib-dev
	"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/lu-zero/cargo-c/archive/v$pkgver.tar.gz
	$pkgname-$pkgver-Cargo.lock::https://github.com/lu-zero/cargo-c/releases/download/v$pkgver/Cargo.lock"
options="net" # To download crates

export LIBSSH2_SYS_USE_PKG_CONFIG=1
export DEP_NGHTTP2_ROOT=/usr
export LIBGIT2_NO_VENDOR=0 # temporarily use vendored libgit2, fix cargo(crate) 0.86

prepare() {
	default_prepare

	cp "$srcdir"/$pkgname-$pkgver-Cargo.lock Cargo.lock

	cargo fetch --target="$CTARGET" --locked
}

build() {
	cargo auditable build --release --frozen
}

check() {
	# fixes debug builds of p384 on 32b architectures
	# https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/58129#note_391279
	export RUST_MIN_STACK=8388608

	# error: could not create LLVM TargetMachine for triple
	cargo test --frozen -- --skip test_lib_listing
}

package() {
	rm target/release/cargo-*.d
	install -Dm755 target/release/cargo-* -t "$pkgdir"/usr/bin/

	install -Dm644 -t "$pkgdir/usr/share/doc/cargo-c" README.md
	install -Dm644 -t "$pkgdir/usr/share/doc/cargo-c" LICENSE
}

sha512sums="
dbd861692bc6b8de2f0a5377e3e187c69f22fe2e2ba9a6b64bc644af935215bc1362ad490ad255b2b5775bbef617f47665a37b8c6d747e8dc2fb4f655fe1384c  cargo-c-0.10.13.tar.gz
820f8b02374dcdd6a3b217739b19145f5af9c5123673ca5d26cf395ae238f9f1e3eab64a8224f36dd0f0e3ce87a583be1fbab540e1c3bccd9bc7b71fb3b4a528  cargo-c-0.10.13-Cargo.lock
"
