void-packages/srcpkgs/cargo/template

92 lines
2.4 KiB
Bash

# Template file for 'cargo'
pkgname=cargo
version=1.64.0
revision=1
create_wrksrc=yes
build_helper=rust
hostmakedepends="cargo-bootstrap rust python3 curl cmake pkg-config zlib-devel"
makedepends="rust libcurl-devel openssl-devel"
depends="rust"
short_desc="Rust package manager"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="MIT, Apache-2.0"
homepage="https://crates.io/"
distfiles="https://github.com/rust-lang/cargo/archive/rust-${version}.tar.gz
https://github.com/crossbeam-rs/crossbeam/archive/refs/tags/crossbeam-utils-0.8.8.tar.gz"
checksum="8363ee37e1ff85c7322f0619087b1230f43852dcb26316627a1a703ed20ea4b7
52c451910203cd9002cc4b85cff95f45c6ba245392801e80d7898ca5c3c3ab29"
replaces="cargo-tree>=0"
build_options="static bindist"
desc_option_bindist="Generate a tarball for bootstrap"
if [ -n "$build_option_static" -o -n "$build_option_bindist" ]; then
_build_static=yes
fi
if [ -z "$_build_static" ]; then
makedepends+=" libgit2-devel"
fi
post_extract() {
mv cargo-rust-${version}/* .
mv crossbeam-crossbeam-utils-* crossbeam-utils
}
post_patch() {
rm crossbeam-utils/crossbeam-utils/no_atomic.rs
cp crossbeam-utils/no_atomic.rs crossbeam-utils/crossbeam-utils
cat >> Cargo.toml <<- EOF
[patch.crates-io]
crossbeam-utils = { path = './crossbeam-utils/crossbeam-utils' }
EOF
}
do_build() {
local cargs
if [ -n "$_build_static" ]; then
unset LIBSSH2_SYS_USE_PKG_CONFIG
export OPENSSL_STATIC=1
# rust-openssl can not be linked static if pkg-config is used
export OPENSSL_NO_PKG_CONFIG
export OPENSSL_DIR="${XBPS_CROSS_BASE}/usr"
fi
if [ -n "$_build_static" ]; then
cargs+=" --features=all-static"
fi
cargo build --release ${cargs}
}
do_install() {
local cbin="target/release/cargo"
if [ "$CROSS_BUILD" ]; then
cbin="target/${RUST_TARGET}/release/cargo"
fi
if [ "$build_option_bindist" ]; then
local dest="cargo-${version}-${RUST_TARGET}"
mkdir -p ${XBPS_SRCDISTDIR}/distfiles ${dest}/cargo/bin
install -m 0755 ${cbin} ${dest}/cargo/bin
install -m 0644 LICENSE-APACHE LICENSE-MIT LICENSE-THIRD-PARTY ${dest}
bsdtar cvJf ${dest}.tar.xz ${dest}
install -m 0644 ${dest}.tar.xz ${XBPS_SRCDISTDIR}/distfiles
exit 1
fi
vbin ${cbin}
for f in src/etc/man/*.?; do
vman $f
done
vinstall src/etc/cargo.bashcomp.sh 0644 \
usr/share/bash-completion/completions cargo
vinstall src/etc/_cargo 0644 usr/share/zsh/site-functions
vlicense LICENSE-APACHE
vlicense LICENSE-MIT
vlicense LICENSE-THIRD-PARTY
}