summaryrefslogtreecommitdiff
path: root/sys-devel/rust-std
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-30 17:27:54 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-30 17:27:54 +0100
commitf70a1bfc721336d4fc7dfb711c2f518a6b18cf16 (patch)
treee907cb121b30e3c1df1710719c0ddf4029597a47 /sys-devel/rust-std
parentdb063b515939ab15261136b24e4bc44386335c0c (diff)
gentoo resync : 30.09.2020
Diffstat (limited to 'sys-devel/rust-std')
-rw-r--r--sys-devel/rust-std/Manifest3
-rw-r--r--sys-devel/rust-std/metadata.xml21
-rw-r--r--sys-devel/rust-std/rust-std-1.46.0.ebuild146
3 files changed, 170 insertions, 0 deletions
diff --git a/sys-devel/rust-std/Manifest b/sys-devel/rust-std/Manifest
new file mode 100644
index 000000000000..be088cad5481
--- /dev/null
+++ b/sys-devel/rust-std/Manifest
@@ -0,0 +1,3 @@
+DIST rustc-1.46.0-src.tar.xz 101868452 BLAKE2B da9798596b124a10d79c236a871228f05e5f571d22c2259328e7026c91e088c85f5de9c0536a16531e0cb10477bfcd16d3ac11467979f5561cb6199442b877ef SHA512 099857f1d295043587a4e2a65ef3e6a90e12c8b6958e98535a1656c113c553f9a9b621aba8a19cf21bd8d2c79d27cbfa4b8e6fabbcb3cbfee23b545be7b450b4
+EBUILD rust-std-1.46.0.ebuild 3220 BLAKE2B 29a66cd46bbd78d716fe0e7db483865b1b5a8b12200202e21f061624be9b3385e9fc1561a092b2f21be9a7d6cb84b9460a1ffafc67ac2d90db95f99be0e69bfc SHA512 129ab7a762c6dc633dde21235ab3d7267d3cb9ed800cb3b506b0e5a2de3ccad8fe4e5a31f51eddda6e840b457b9883827f94fdf41f80b8ece54fde3ebabec7e1
+MISC metadata.xml 818 BLAKE2B 32766ac24fada44b46f8d4ef77164a4e4843b876347056223184ec6fe48af9a6e2fa7d3e1fd48dec299f328f37fbdf4c84225a7450b788ce3e6c92e87bf8f313 SHA512 c1c4a46790dedc83b6890bbb536927148b293eed7f4d3bbd1f602b7664a9b303ca9689d4d1d35ed8047c2c909d64145fc4098efbec279f630b86207b0216ca80
diff --git a/sys-devel/rust-std/metadata.xml b/sys-devel/rust-std/metadata.xml
new file mode 100644
index 000000000000..c736f846eb11
--- /dev/null
+++ b/sys-devel/rust-std/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gyakovlev@gentoo.org</email>
+ <name>Georgy Yakovlev</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>rust@gentoo.org</email>
+ <name>Rust Project</name>
+ </maintainer>
+ <longdescription>
+ The Rust Standard Library is the foundation of portable Rust software,
+ a set of minimal and battle-tested shared abstractions for the broader Rust ecosystem.
+ It offers core types, like Vec&lt;T&gt; and Option&lt;T&gt;, library-defined operations on language primitives,
+ standard macros, I/O and multithreading, among many other things.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">rust-lang/rust</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-devel/rust-std/rust-std-1.46.0.ebuild b/sys-devel/rust-std/rust-std-1.46.0.ebuild
new file mode 100644
index 000000000000..a90e4641c1f1
--- /dev/null
+++ b/sys-devel/rust-std/rust-std-1.46.0.ebuild
@@ -0,0 +1,146 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs
+
+DESCRIPTION="Rust standard library, standalone (for crossdev)"
+HOMEPAGE="https://www.rust-lang.org"
+SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="stable/$(ver_cut 1-2)"
+# please do not keyword yet
+#KEYWORDS="" #nowarn
+IUSE="debug"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/rust-${PV}:=
+"
+
+DEPEND="||
+ (
+ >="${CATEGORY}"/gcc-4.7:*
+ >="${CATEGORY}"/clang-3.5:*
+ )
+"
+
+RDEPEND="${DEPEND}"
+
+# need full compiler to run tests
+RESTRICT="test"
+
+QA_FLAGS_IGNORED="usr/lib.*/rust-.*/rustlib/.*/lib/lib.*.so"
+
+S="${WORKDIR}/${P/-std/c}-src"
+
+#
+# The cross magic
+#
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+toml_usex() {
+ usex "$1" true false
+}
+
+pkg_pretend() {
+ is_cross || die "${PN} should only be used for cross"
+}
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ # do the great cleanup
+ strip-flags
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64'
+ strip-unsupported-flags
+
+ local rust_root x
+ rust_root="$(rustc --print sysroot)"
+ rtarget="$(rust_abi ${CTARGET})"
+ rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom.
+ rbuild="$(rust_abi ${CBUILD})"
+ rhost="$(rust_abi ${CHOST})"
+
+ echo
+ for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do
+ einfo "$(printf '%10s' ${x^^}:) ${!x}"
+ done
+
+ cat <<- EOF > "${S}"/config.toml
+ [build]
+ build = "${rbuild}"
+ host = ["${rhost}"]
+ target = ["${rtarget}"]
+ cargo = "${rust_root}/bin/cargo"
+ rustc = "${rust_root}/bin/rustc"
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ verbose = 2
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr"
+ libdir = "$(get_libdir)/${P/-std/}"
+ [rust]
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debuginfo-level-rustc = 0
+ backtrace = true
+ incremental = false
+ default-linker = "$(tc-getCC)"
+ rpath = false
+ dist-src = false
+ remap-debuginfo = true
+ jemalloc = false
+ [dist]
+ src-tarball = false
+ [target.${rtarget}]
+ cc = "$(tc-getCC ${CTARGET})"
+ cxx = "$(tc-getCXX ${CTARGET})"
+ linker = "$(tc-getCC ${CTARGET})"
+ ar = "$(tc-getAR ${CTARGET})"
+ $(usex elibc_musl 'crt-static = false' '')
+ EOF
+
+ einfo "${PN^} configured with the following settings:"
+ cat "${S}"/config.toml || die
+}
+
+src_compile() {
+ env RUST_BACKTRACE=1 \
+ "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \
+ src/libstd --stage 0 || die
+}
+
+src_test() {
+ ewarn "${PN} can't run tests"
+}
+
+src_install() {
+ local rustlib="$(get_libdir)/${P/-std/}/rustlib"
+ dodir "/usr/${rustlib}"
+ pushd "build/${rhost}/stage0-sysroot/${rustlib}" > /dev/null || die
+ cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die
+ popd > /dev/null || die
+}