blob: 9e0cce168be54f2ff85ad1b068caadfceac89030 [file] [log] [blame]
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
CRATES="
adler32-1.0.3
aho-corasick-0.6.10
ansi_term-0.11.0
atty-0.2.11
autocfg-0.1.2
backtrace-0.3.14
backtrace-sys-0.1.28
bit-set-0.5.1
bit-vec-0.5.1
bitflags-1.0.4
bufstream-0.1.4
build_const-0.2.1
byteorder-1.3.1
bytes-0.4.12
bytesize-1.0.0
cc-1.0.31
cfg-if-0.1.7
chrono-0.4.6
clap-2.32.0
cloudabi-0.0.3
commoncrypto-0.2.0
commoncrypto-sys-0.2.0
core-foundation-0.6.3
core-foundation-sys-0.6.2
crc-1.8.1
crc32fast-1.2.0
crossbeam-channel-0.3.8
crossbeam-utils-0.6.5
crypto-hash-0.3.3
curl-0.4.20
curl-sys-0.4.17
env_logger-0.6.1
failure-0.1.5
failure_derive-0.1.5
filetime-0.2.4
flate2-1.0.7
fnv-1.0.6
foreign-types-0.3.2
foreign-types-shared-0.1.1
fs2-0.4.3
fuchsia-cprng-0.1.1
fwdansi-1.0.1
git2-0.8.0
git2-curl-0.9.0
glob-0.2.11
globset-0.4.2
hex-0.3.2
home-0.3.4
http-0.1.17
humantime-1.2.0
idna-0.1.5
ignore-0.4.6
im-rc-12.3.3
iovec-0.1.2
itoa-0.4.3
jobserver-0.1.13
kernel32-sys-0.2.2
lazy_static-1.3.0
lazycell-1.2.1
libc-0.2.50
libgit2-sys-0.7.11
libnghttp2-sys-0.1.1
libssh2-sys-0.2.11
libz-sys-1.0.25
log-0.4.6
matches-0.1.8
memchr-2.2.0
miniz-sys-0.1.11
miniz_oxide-0.2.1
miniz_oxide_c_api-0.2.1
miow-0.3.3
num-integer-0.1.39
num-traits-0.2.6
num_cpus-1.10.0
opener-0.3.2
openssl-0.10.20
openssl-probe-0.1.2
openssl-src-111.2.1+1.1.1b
openssl-sys-0.9.43
percent-encoding-1.0.1
pkg-config-0.3.14
pretty_env_logger-0.3.0
proc-macro2-0.4.27
proptest-0.8.7
quick-error-1.2.2
quote-0.6.11
rand-0.5.6
rand-0.6.5
rand_chacha-0.1.1
rand_core-0.3.1
rand_core-0.4.0
rand_hc-0.1.0
rand_isaac-0.1.1
rand_jitter-0.1.3
rand_os-0.1.3
rand_pcg-0.1.2
rand_xorshift-0.1.1
rdrand-0.4.0
redox_syscall-0.1.51
redox_termios-0.1.1
regex-1.1.2
regex-syntax-0.6.5
remove_dir_all-0.5.1
rustc-demangle-0.1.13
rustc-workspace-hack-1.0.0
rustc_version-0.2.3
rustfix-0.4.4
rusty-fork-0.2.1
ryu-0.2.7
same-file-1.0.4
schannel-0.1.15
scopeguard-0.3.3
semver-0.9.0
semver-parser-0.7.0
serde-1.0.89
serde_derive-1.0.89
serde_ignored-0.0.4
serde_json-1.0.39
shell-escape-0.1.4
sized-chunks-0.1.2
smallvec-0.6.9
socket2-0.3.8
strsim-0.7.0
syn-0.15.29
synstructure-0.10.1
tar-0.4.22
tempfile-3.0.7
termcolor-1.0.4
termion-1.5.1
textwrap-0.10.0
thread_local-0.3.6
time-0.1.42
toml-0.4.10
typenum-1.10.0
ucd-util-0.1.3
unicode-bidi-0.3.4
unicode-normalization-0.1.8
unicode-width-0.1.5
unicode-xid-0.1.0
url-1.7.2
url_serde-0.2.0
utf8-ranges-1.0.2
vcpkg-0.2.6
vec_map-0.8.1
wait-timeout-0.1.5
walkdir-2.2.7
winapi-0.2.8
winapi-0.3.6
winapi-build-0.1.1
winapi-i686-pc-windows-gnu-0.4.0
winapi-util-0.1.2
winapi-x86_64-pc-windows-gnu-0.4.0
wincolor-1.0.1
"
inherit cargo bash-completion-r1 multiprocessing versionator
BOOTSTRAP_VERSION="0.$(($(get_version_component_range 2) - 1)).0"
DESCRIPTION="The Rust's package manager"
HOMEPAGE="http://crates.io"
SRC_URI="https://github.com/rust-lang/cargo/archive/${PV}.tar.gz -> ${P}.tar.gz
$(cargo_crate_uris ${CRATES})
x86? (
https://static.rust-lang.org/dist/cargo-${BOOTSTRAP_VERSION}-i686-unknown-linux-gnu.tar.xz
)
amd64? (
https://static.rust-lang.org/dist/cargo-${BOOTSTRAP_VERSION}-x86_64-unknown-linux-gnu.tar.xz
)
arm? (
https://static.rust-lang.org/dist/cargo-${BOOTSTRAP_VERSION}-arm-unknown-linux-gnueabi.tar.xz
https://static.rust-lang.org/dist/cargo-${BOOTSTRAP_VERSION}-arm-unknown-linux-gnueabihf.tar.xz
https://static.rust-lang.org/dist/cargo-${BOOTSTRAP_VERSION}-armv7-unknown-linux-gnueabihf.tar.xz
)
arm64? (
https://static.rust-lang.org/dist/cargo-${BOOTSTRAP_VERSION}-aarch64-unknown-linux-gnu.tar.xz
)"
RESTRICT="mirror"
LICENSE="|| ( MIT Apache-2.0 )"
SLOT="0"
KEYWORDS="-* amd64"
IUSE="doc libressl"
if [[ ${ARCH} = "amd64" ]]; then
TRIPLE="x86_64-unknown-linux-gnu"
elif [[ ${ARCH} = "x86" ]]; then
TRIPLE="i686-unknown-linux-gnu"
elif [[ ${ARCH} = "arm64" ]]; then
TRIPLE="aarch64-unknown-linux-gnu"
elif [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv6* ]]; then
TRIPLE="arm-unknown-linux-gnueabi"
elif [[ ${CHOST} == armv6*h* ]]; then
TRIPLE="arm-unknown-linux-gnueabihf"
elif [[ ${CHOST} == armv7*h* ]]; then
TRIPLE="armv7-unknown-linux-gnueabihf"
fi
# Hack: Unslotted OpenSSL dependency to allow cargo to continue using OpenSSL
# 1.0.2 across the OpenSSL 1.1 uprev. To be switched back to slotted dependency
# after the OpenSSL uprev is done.
COMMON_DEPEND="sys-libs/zlib
dev-libs/openssl
net-libs/libssh2"
RDEPEND="${COMMON_DEPEND}
!dev-util/cargo-bin
net-misc/curl[ssl]"
DEPEND="${COMMON_DEPEND}
>=dev-lang/rust-1.27.0
dev-util/cmake
sys-apps/coreutils
sys-apps/diffutils
sys-apps/findutils
sys-apps/sed"
src_configure() {
# Do nothing
echo "Configuring cargo..."
}
src_compile() {
export CARGO_HOME="${ECARGO_HOME}"
local cargo="${WORKDIR}/cargo-${BOOTSTRAP_VERSION}-${TRIPLE}/cargo/bin/cargo"
${cargo} build -j$(makeopts_jobs) --release || die
# Building HTML documentation
use doc && ${cargo} doc
}
src_install() {
dobin target/release/cargo
# Install HTML documentation
use doc && HTML_DOCS=("target/doc")
einstalldocs
newbashcomp src/etc/cargo.bashcomp.sh cargo
insinto /usr/share/zsh/site-functions
doins src/etc/_cargo
doman src/etc/man/*
}