# Template file for 'rust-bootstrap'
pkgname=rust-bootstrap
version=1.77.1
revision=1
short_desc="Rust programming language bootstrap toolchain"
maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT, Apache-2.0"
homepage="https://www.rust-lang.org/"
conflicts="rust>=0"
lib32disabled=yes
nostrip=yes
repository=bootstrap

if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
	depends="libexecinfo-devel"
fi

_bootstrap_url="https://static.rust-lang.org/dist"

case "$XBPS_TARGET_MACHINE" in
	x86_64*|i686) ;;
	# See srcpkgs/rust-bootstrap/files/generating-distfiles.md for details
	*) _bootstrap_url="https://repo-default.voidlinux.org/distfiles";;
esac

# hardcode platform triplets
# because this info isn't avaialble here without hacky workarounds
case "$XBPS_TARGET_MACHINE" in
	i686)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-i686-unknown-linux-gnu.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-i686-unknown-linux-gnu.tar.xz"
		checksum="
		 204a79ddc33e74a23b817724a57fdaad5e2552d034653915a7508c7d0063045a
		 7bf24ca93bde8cd761128e68cbcabc9d304c5cf19fcdd020bca2d56e43014381"
		;;
	x86_64)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-x86_64-unknown-linux-gnu.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-x86_64-unknown-linux-gnu.tar.xz"
		checksum="
		 c9caaf8c214f6683281fa55e76a4d345004aa2933daca469952b3bead8cc5ca9
		 317e604909360d1bb92f7558aaa5ce449312630d8226767ae9df99bf5bef4fd1"
		;;
	x86_64-musl)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-x86_64-unknown-linux-musl.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-x86_64-unknown-linux-musl.tar.xz"
		checksum="
		 d00be127d978177c0b2f439a1e63e4c25a3ca5f035a7282187555ab540cc18a3
		 899c2668e65ad3557033169e67a6fa3d9c816c62d39ee11d5ebef4eded226d0b"
		;;
	# placeholders for user-supplied distfiles
	ppc64le)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-powerpc64le-unknown-linux-gnu.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-powerpc64le-unknown-linux-gnu.tar.xz"
		checksum="
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
		;;
	ppc64le-musl)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-powerpc64le-unknown-linux-musl.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-powerpc64le-unknown-linux-musl.tar.xz"
		checksum="
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
		;;
	ppc64)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-powerpc64-unknown-linux-gnu.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-powerpc64-unknown-linux-gnu.tar.xz"
		checksum="
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
		;;
	ppc)
		distfiles="
		 ${_bootstrap_url}/rustc-${version}-powerpc-unknown-linux-gnu.tar.xz
		 ${_bootstrap_url}/rust-std-${version}-powerpc-unknown-linux-gnu.tar.xz"
		checksum="
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb
		 badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
		;;
	*) broken="rust bootstrap binaries unavailable for ${XBPS_TARGET_MACHINE}";;
esac

do_install() {
	for d in *; do
		cd $d
		./install.sh --prefix=/usr --destdir="${DESTDIR}"
		cd ..
	done

	vlicense rustc-${version}-${RUST_TARGET}/COPYRIGHT
	vlicense rustc-${version}-${RUST_TARGET}/LICENSE-APACHE
	vlicense rustc-${version}-${RUST_TARGET}/LICENSE-MIT

	rm -rf ${DESTDIR}/usr/share/doc/rust
	rm -f ${DESTDIR}/usr/lib/rustlib/${RUST_TARGET}/bin/rust-ll*
}
