summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/cargo/cargo-0.14.0.ebuild')
-rw-r--r--dev-util/cargo/cargo-0.14.0.ebuild176
1 files changed, 176 insertions, 0 deletions
diff --git a/dev-util/cargo/cargo-0.14.0.ebuild b/dev-util/cargo/cargo-0.14.0.ebuild
new file mode 100644
index 000000000000..b78e2057d1c2
--- /dev/null
+++ b/dev-util/cargo/cargo-0.14.0.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+CARGO_SNAPSHOT_DATE="2016-03-21"
+CARGO_INDEX_COMMIT="14f7adaa984f78037839f7e64912fe89d7af025a"
+CRATES="advapi32-sys-0.2.0
+aho-corasick-0.5.3
+bitflags-0.1.1
+bitflags-0.7.0
+cfg-if-0.1.0
+cmake-0.1.17
+crates-io-0.4.0
+crossbeam-0.2.9
+curl-0.3.9
+curl-sys-0.2.4
+docopt-0.6.82
+env_logger-0.3.4
+filetime-0.1.10
+flate2-0.2.14
+fs2-0.2.5
+gcc-0.3.35
+gdi32-sys-0.2.0
+git2-0.4.4
+git2-curl-0.5.0
+glob-0.2.11
+idna-0.1.0
+kernel32-sys-0.2.2
+lazy_static-0.2.1
+libc-0.2.17
+libgit2-sys-0.4.5
+libressl-pnacl-sys-2.1.6
+libssh2-sys-0.1.39
+libz-sys-1.0.6
+log-0.3.6
+matches-0.1.2
+memchr-0.1.11
+miniz-sys-0.1.7
+miow-0.1.3
+net2-0.2.26
+num-0.1.36
+num-bigint-0.1.35
+num-complex-0.1.35
+num-integer-0.1.32
+num-iter-0.1.32
+num-rational-0.1.35
+num-traits-0.1.36
+num_cpus-1.0.0
+openssl-0.7.14
+openssl-sys-0.7.14
+openssl-sys-extras-0.7.14
+pkg-config-0.3.8
+pnacl-build-helper-1.4.10
+psapi-sys-0.1.0
+rand-0.3.14
+regex-0.1.77
+regex-syntax-0.3.5
+rustc-serialize-0.3.19
+semver-0.5.1
+semver-parser-0.6.1
+strsim-0.3.0
+tar-0.4.8
+tempdir-0.3.5
+term-0.4.4
+thread-id-2.0.0
+thread_local-0.2.6
+toml-0.2.0
+unicode-bidi-0.2.3
+unicode-normalization-0.1.2
+url-1.2.0
+user32-sys-0.2.0
+utf8-ranges-0.1.3
+winapi-0.2.8
+winapi-build-0.1.1
+ws2_32-sys-0.2.1
+"
+
+inherit cargo bash-completion-r1
+
+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
+ https://github.com/rust-lang/crates.io-index/archive/${CARGO_INDEX_COMMIT}.tar.gz -> cargo-registry-${CARGO_INDEX_COMMIT}.tar.gz
+ $(cargo_crate_uris ${CRATES})
+ x86? (
+ https://static.rust-lang.org/cargo-dist/${CARGO_SNAPSHOT_DATE}/cargo-nightly-i686-unknown-linux-gnu.tar.gz ->
+ cargo-snapshot-x86-${CARGO_SNAPSHOT_DATE}.tar.gz
+ )
+ amd64? (
+ https://static.rust-lang.org/cargo-dist/${CARGO_SNAPSHOT_DATE}/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz ->
+ cargo-snapshot-amd64-${CARGO_SNAPSHOT_DATE}.tar.gz
+ )"
+
+RESTRICT="mirror"
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc libressl"
+
+COMMON_DEPEND="sys-libs/zlib
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ net-libs/libssh2
+ net-libs/http-parser"
+RDEPEND="${COMMON_DEPEND}
+ !dev-util/cargo-bin
+ net-misc/curl[ssl]"
+DEPEND="${COMMON_DEPEND}
+ >=dev-lang/rust-1.9.0:stable
+ dev-util/cmake
+ sys-apps/coreutils
+ sys-apps/diffutils
+ sys-apps/findutils
+ sys-apps/sed"
+
+src_configure() {
+ # Cargo only supports these GNU triples:
+ # - Linux: <arch>-unknown-linux-gnu
+ # - MacOS: <arch>-apple-darwin
+ # - Windows: <arch>-pc-windows-gnu
+ # where <arch> could be 'x86_64' (amd64) or 'i686' (x86)
+ use amd64 && CTARGET="x86_64-unknown-linux-gnu"
+ use x86 && CTARGET="i686-unknown-linux-gnu"
+
+ # NOTE: 'disable-nightly' is used by crates (such as 'matches') to entirely
+ # skip their internal libraries that make use of unstable rustc features.
+ # Don't use 'enable-nightly' with a stable release of rustc as DEPEND,
+ # otherwise you could get compilation issues.
+ # see: github.com/gentoo/gentoo-rust/issues/13
+ local myeconfargs=(
+ --host=${CTARGET}
+ --build=${CTARGET}
+ --target=${CTARGET}
+ --enable-optimize
+ --disable-nightly
+ --disable-verify-install
+ --disable-debug
+ --disable-cross-tests
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ # Building sources
+ export CARGO_HOME="${ECARGO_HOME}"
+ emake VERBOSE=1 PKG_CONFIG_PATH=""
+
+ # Building HTML documentation
+ use doc && emake doc
+}
+
+src_install() {
+ emake prepare-image-${CTARGET} IMGDIR_${CTARGET}="${ED}/usr"
+
+ # Install HTML documentation
+ use doc && HTML_DOCS=("target/doc")
+ einstalldocs
+
+ dobashcomp "${ED}"/usr/etc/bash_completion.d/cargo
+ rm -rf "${ED}"/usr/etc || die
+}
+
+src_test() {
+ # Running unit tests
+ # NOTE: by default 'make test' uses the copy of cargo (v0.0.1-pre-nighyly)
+ # from the installer snapshot instead of the version just built, so the
+ # ebuild needs to override the value of CFG_LOCAL_CARGO to avoid false
+ # positives from unit tests.
+ emake test \
+ CFG_ENABLE_OPTIMIZE=1 \
+ VERBOSE=1 \
+ CFG_LOCAL_CARGO="${WORKDIR}"/${P}/target/${CTARGET}/release/cargo
+}