Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 534512 Details for
Bug 657110
dev-lang/rust: add WebAssembly support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
ebuild with wasm support
rust-1.26.1.ebuild (text/plain), 6.67 KB, created by
Oleg
on 2018-06-02 14:00:34 UTC
(
hide
)
Description:
ebuild with wasm support
Filename:
MIME Type:
Creator:
Oleg
Created:
2018-06-02 14:00:34 UTC
Size:
6.67 KB
patch
obsolete
># Copyright 1999-2018 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 > >EAPI=6 > >PYTHON_COMPAT=( python2_7 python3_{5,6} pypy ) > >inherit multiprocessing multilib-build python-any-r1 versionator toolchain-funcs > >if [[ ${PV} = *beta* ]]; then > betaver=${PV//*beta} > BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" > MY_P="rustc-beta" > SLOT="beta/${PV}" > SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz" > KEYWORDS="" >else > ABI_VER="$(get_version_component_range 1-2)" > SLOT="stable/${ABI_VER}" > MY_P="rustc-${PV}" > SRC="${MY_P}-src.tar.xz" > KEYWORDS="~amd64 ~arm64 ~x86" >fi > >CHOST_amd64=x86_64-unknown-linux-gnu >CHOST_x86=i686-unknown-linux-gnu >CHOST_arm64=aarch64-unknown-linux-gnu > >RUST_STAGE0_VERSION="1.$(($(get_version_component_range 2) - 1)).0" >RUST_STAGE0_amd64="rust-${RUST_STAGE0_VERSION}-${CHOST_amd64}" >RUST_STAGE0_x86="rust-${RUST_STAGE0_VERSION}-${CHOST_x86}" >RUST_STAGE0_arm64="rust-${RUST_STAGE0_VERSION}-${CHOST_arm64}" > >CARGO_DEPEND_VERSION="0.$(($(get_version_component_range 2) + 1)).0" > >DESCRIPTION="Systems programming language from Mozilla" >HOMEPAGE="http://www.rust-lang.org/" > >SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz > amd64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_amd64}.tar.xz ) > x86? ( https://static.rust-lang.org/dist/${RUST_STAGE0_x86}.tar.xz ) > arm64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_arm64}.tar.xz ) >" > >LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" > >ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 > NVPTX PowerPC Sparc SystemZ X86 XCore ) >ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) >LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} > >IUSE="debug doc extended source +jemalloc wasm ${ALL_LLVM_TARGETS[*]}" > >RDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 > jemalloc? ( dev-libs/jemalloc )" >DEPEND="${RDEPEND} > ${PYTHON_DEPS} > || ( > >=sys-devel/gcc-4.7 > >=sys-devel/clang-3.5 > ) > dev-util/cmake >" >PDEPEND=">=dev-util/cargo-${CARGO_DEPEND_VERSION}" > >REQUIRED_USE="source? ( extended ) >|| ( ${ALL_LLVM_TARGETS[*]} ) " > >S="${WORKDIR}/${MY_P}-src" > >toml_usex() { > usex "$1" true false >} > >tools_list() { > if use extended; then > echo "tools=[$(usex source "\"src\", " "")\"rls\", \"analysis\"]" > fi >} > >src_prepare() { > local rust_stage0_root="${WORKDIR}"/rust-stage0 > > local rust_stage0_name="RUST_STAGE0_${ARCH}" > local rust_stage0="${!rust_stage0_name}" > > "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die > > default >} > >src_configure() { > local rust_target="" rust_targets="" rust_target_name arch_cflags > > # Collect rust target names to compile standard libs for all ABIs. > for v in $(multilib_get_enabled_abi_pairs); do > rust_target_name="CHOST_${v##*.}" > rust_targets="${rust_targets},\"${!rust_target_name}\"" > done > if use wasm; then > rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" > fi > rust_targets="${rust_targets#,}" > > local rust_stage0_root="${WORKDIR}"/rust-stage0 > > local rust_target_name="CHOST_${ARCH}" > local rust_target="${!rust_target_name}" > > cat <<- EOF > "${S}"/config.toml > [llvm] > optimize = $(toml_usex !debug) > release-debuginfo = $(toml_usex debug) > assertions = $(toml_usex debug) > targets = "${LLVM_TARGETS// /;}" > [build] > build = "${rust_target}" > host = ["${rust_target}"] > target = [${rust_targets}] > cargo = "${rust_stage0_root}/bin/cargo" > rustc = "${rust_stage0_root}/bin/rustc" > docs = $(toml_usex doc) > submodules = false > python = "${EPYTHON}" > locked-deps = true > vendor = true > verbose = 2 > extended = $(toml_usex extended) > $(tools_list) > [install] > prefix = "${EPREFIX}/usr" > libdir = "$(get_libdir)/${P}" > docdir = "share/doc/${P}" > mandir = "share/${P}/man" > [rust] > optimize = $(toml_usex !debug) > debuginfo = $(toml_usex debug) > debug-assertions = $(toml_usex debug) > use-jemalloc = $(toml_usex jemalloc) > default-linker = "$(tc-getCC)" > rpath = false > lld = $(toml_usex wasm) > EOF > > for v in $(multilib_get_enabled_abi_pairs); do > rust_target=$(get_abi_CHOST ${v##*.}) > arch_cflags="$(get_abi_CFLAGS ${v##*.})" > > cat <<- EOF >> "${S}"/config.env > CFLAGS_${rust_target}=${arch_cflags} > EOF > > cat <<- EOF >> "${S}"/config.toml > [target.${rust_target}] > cc = "$(tc-getBUILD_CC)" > cxx = "$(tc-getBUILD_CXX)" > linker = "$(tc-getCC)" > ar = "$(tc-getAR)" > EOF > done > > if use wasm; then > cat <<- EOF >> "${S}"/config.toml > [target.wasm32-unknown-unknown] > linker = "lld" > EOF > fi >} > >src_compile() { > env $(cat "${S}"/config.env)\ > ./x.py build --verbose --config="${S}"/config.toml -j$(makeopts_jobs) || die >} > >src_install() { > local rust_target abi_libdir > > env DESTDIR="${D}" ./x.py install || die > > mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die > mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die > mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die > mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die > if use extended; then > mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die > fi > > # Copy shared library versions of standard libraries for all targets > # into the system's abi-dependent lib directories because the rust > # installer only does so for the native ABI. > for v in $(multilib_get_enabled_abi_pairs); do > if [ ${v##*.} = ${DEFAULT_ABI} ]; then > continue > fi > abi_libdir=$(get_abi_LIBDIR ${v##*.}) > rust_target=$(get_abi_CHOST ${v##*.}) > mkdir -p ${D}/usr/${abi_libdir} > cp ${D}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib/*.so \ > ${D}/usr/${abi_libdir} || die > done > > dodoc COPYRIGHT > > cat <<-EOF > "${T}"/50${P} > LDPATH="/usr/$(get_libdir)/${P}" > MANPATH="/usr/share/${P}/man" > EOF > if use source; then > cat <<-EOF >> "${T}"/50${P} > RUST_SRC_PATH="/usr/$(get_libdir)/${P}/rustlib/src/rust/src/" > EOF > fi > doenvd "${T}"/50${P} > > cat <<-EOF > "${T}/provider-${P}" > /usr/bin/rustdoc > /usr/bin/rust-gdb > /usr/bin/rust-lldb > EOF > if use extended; then > echo "/usr/bin/rls" >> "${T}/provider-${P}" > fi > dodir /etc/env.d/rust > insinto /etc/env.d/rust > doins "${T}/provider-${P}" > > rm -rf "${D}/usr/$(get_libdir)/rustlib/src/" >} > >pkg_postinst() { > eselect rust update --if-unset > > elog "Rust installs a helper script for calling GDB and LLDB," > elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." > > if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then > elog "install app-emacs/rust-mode to get emacs support for rust." > fi > > if has_version app-editors/gvim || has_version app-editors/vim; then > elog "install app-vim/rust-vim to get vim support for rust." > fi > > if has_version 'app-shells/zsh'; then > elog "install app-shells/rust-zshcomp to get zsh completion for rust." > fi >} > >pkg_postrm() { > eselect rust unset --if-invalid >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 657110
: 534512