comparison lang/rust/rust.sh @ 1176:e45b5d1810ab

lang/rust: initial import, closes #1097
author David Demelier <markand@malikania.fr>
date Wed, 23 Oct 2019 07:10:36 +0200
parents
children 6710613b88b9
comparison
equal deleted inserted replaced
1175:944780161c16 1176:e45b5d1810ab
1 #!/bin/sh
2 #
3 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
4 #
5 # Permission to use, copy, modify, and/or distribute this software for any
6 # purpose with or without fee is hereby granted, provided that the above
7 # copyright notice and this permission notice appear in all copies.
8 #
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 #
17
18 PKGNAME=rust
19 PKGVERSION=1.38.0
20 PKGREVISION=1
21 PKGLICENSE="APACHEv20 MIT"
22 PKGSUMMARY="the Rust programming language"
23 PKGDOWNLOAD="https://static.rust-lang.org/dist/rustc-$PKGVERSION-src.tar.gz"
24 PKGDEPENDS="bash:build rust:build python:build"
25 PKGTAGS="CUSTOM"
26 PKGOPTIONS="COMPONENTS"
27
28 : ${CC:=clang}
29 : ${CFLAGS:=-O2}
30 : ${CXX:=clang++}
31 : ${CXXFLAGS:=-O2}
32 : ${LDFLAGS:=}
33 : ${LIBS:=}
34 : ${COMPONENTS:=yes}
35
36 case $COMPONENTS in
37 "yes")
38 with_components="cargo clippy rustfmt" ;;
39 "no")
40 with_components="" ;;
41 *)
42 with_components="$COMPONENTS"
43 esac
44
45 build()
46 {
47 rm -rf rustc-$PKGVERSION-src
48 tar xvpf rustc-$PKGVERSION-src.tar.gz
49 cd rustc-$PKGVERSION-src
50
51 if [ "$CC" = "clang" ]; then
52 patch -p0 < ../patch-clang.patch
53 fi
54
55 # http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/lang/rust/patches
56 patch -p0 < ../patch-libressl.patch
57 patch -p0 < ../patch-rust.patch
58
59 sed \
60 -e "s|@PWD@|$cwd|" \
61 -e "s|@ARCH@|$(uname -m)|" \
62 -e "s|@CC@|$CC|" \
63 -e "s|@CXX@|$CXX|" \
64 -e "s|@VERSION@|$PKGVERSION|" ../config.toml > config.toml
65
66 ./x.py build -v -j 2 src/libstd src/librustc $with_components
67 DESTDIR=$DESTDIR ./x.py install -v src/libstd src/librustc $with_components
68
69 # Remove useless bits.
70 rm -f $DESTDIR/lib/rustlib/uninstall.sh
71 rm -f $DESTDIR/lib/rustlib/install.log
72 rm -f $DESTDIR/lib/rustlib/components
73 rm -f $DESTDIR/lib/rustlib/manifest*
74
75 cd ..
76 rm -rf rustc-$PKGVERSION-src
77 }