summaryrefslogtreecommitdiff
path: root/repo/rust/rust.xibuild
blob: 2d68672b59344406b971e388844615b71d2edeab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/sh

MAKEDEPS="cmake libclang clang llvm curl"
DEPS="libssh2 openssl"

PKG_VER=1.63.0
SOURCE=https://static.rust-lang.org/dist/rustc-$PKG_VER-src.tar.gz
DESC="Systems programming language focused on safety, speed and concurrency"

ADDITIONAL="
    0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
    0007-do-not-install-libunwind-source.patch
    install-template-shebang.patch
    link-musl-dynamically.patch
    musl-fix-linux_musl_base.patch
    need-rpath.patch
    need-ssp_nonshared.patch
"

prepare () {
    apply_patches
    sed -i /LD_LIBRARY_PATH/d src/bootstrap/bootstrap.py
    sed -i 's/\("files":{\)[^}]*/\1/' vendor/libc/.cargo-checksum.json
}

build () {
    target=x86_64-unknown-linux-musl
    build=x86_64-unknown-linux-musl
    ./configure \
        --build="$build" \
        --host="$target" \
        --target="$target" \
		--prefix="/usr" \
		--release-channel="stable" \
		--llvm-root="/usr/lib/" \
		--disable-docs \
		--enable-extended \
		--tools="analysis,cargo,src,rustfmt" \
		--enable-llvm-link-shared \
		--enable-option-checking \
		--enable-locked-deps \
		--enable-vendor \
		--set="rust.musl-root=/usr" \
		--set="rust.codegen-units=1" \
		--set="rust.codegen-units-std=1" \
		--set="rust.parallel-compiler=true" \
		--set="target.$target.llvm-config=/usr/bin/llvm-config" \
		--set="target.$target.musl-root=/usr" \
		--set="target.$target.crt-static=false" \
		--set="target.$target.cc=gcc" \
		--set="target.$target.cxx=g++" \
		--set="target.$target.ar=ar" \
		--set="target.$target.linker=gcc" \
		--set="target.$build.musl-root=/usr" \
		--set="target.$build.crt-static=false" \
		--set="target.$build.cc=gcc" \
		--set="target.$build.cxx=g++" \
		--set="target.$build.ar=ar" \
		--set="target.$build.linker=gcc" \

    	sed 's/#deny-warnings = .*/deny-warnings = false/' -i config.toml
        sed 's|deny(warnings,|deny(|' -i src/bootstrap/lib.rs

        python ./x.py dist -v --jobs $JOBS

}

package () {
    export LIBSSH2_SYS_USE_PKG_CONFIG=1 &&
    DESTDIR=${PWD}/install python3 ./x.py install &&
    unset LIBSSH2_SYS_USE_PKG_CONFIG

    chown -R root:root install &&
    cp -a install/* $PKG_DEST
}