Skip to content

Commit e28a3f7

Browse files
Style nits and some extra robustness
1 parent 14de072 commit e28a3f7

File tree

2 files changed

+72
-39
lines changed

2 files changed

+72
-39
lines changed

build.sh

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -euxo
33
source config.sh
44

55
export OPENSSL_STATIC=1
6-
export OPENSSL_DIR=/usr/local/opt/openssl
6+
export OPENSSL_DIR=/usr/local/opt/openssl # for cimac3: /opt/homebrew/opt/openssl@3
77
if [ ! -d "$OPENSSL_DIR" ]; then
88
echo "OpenSSL not found at expected location. Try: brew install openssl"
99
exit 1
@@ -19,35 +19,53 @@ fi
1919

2020
WORKING_DIR="$(pwd)/build"
2121
mkdir -p "$WORKING_DIR"
22-
2322
cd "$WORKING_DIR"
24-
if [ ! -d "$WORKING_DIR/llvm-project" ]; then
25-
git clone --depth 1 --branch "$LLVM_BRANCH" https://github.com/apple/llvm-project.git
23+
24+
if [ ! -d "llvm-project" ]; then
25+
git clone \
26+
--shallow-since="1 year" --no-single-branch \
27+
https://github.com/apple/llvm-project.git \
28+
;
2629
fi
27-
cd "$WORKING_DIR/llvm-project"
28-
git reset --hard
29-
git clean -f
30-
git checkout "$LLVM_BRANCH"
31-
git apply ../../patches/llvm-system-libs.patch
32-
cd ..
30+
(cd "llvm-project"
31+
git reset --hard
32+
git clean -f
33+
git checkout "$LLVM_BRANCH"
34+
git apply ../../patches/llvm-system-libs.patch
35+
)
3336

3437
mkdir -p llvm-build
35-
cd llvm-build
36-
cmake "$WORKING_DIR/llvm-project/llvm" -DCMAKE_INSTALL_PREFIX="$WORKING_DIR/llvm-root" -DCMAKE_BUILD_TYPE=Release -DLLVM_INSTALL_UTILS=ON -DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64' -G Ninja
37-
ninja
38-
ninja install
38+
(cd llvm-build
39+
cmake \
40+
"$WORKING_DIR/llvm-project/llvm" \
41+
-DCMAKE_INSTALL_PREFIX="$WORKING_DIR/llvm-root" \
42+
-DCMAKE_BUILD_TYPE=Release \
43+
-DLLVM_INSTALL_UTILS=ON \
44+
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64' \
45+
-G Ninja \
46+
;
47+
ninja
48+
ninja install
49+
)
3950

40-
cd "$WORKING_DIR"
41-
if [ ! -d "$WORKING_DIR/rust" ]; then
51+
if [ ! -d "rust" ]; then
4252
git clone https://github.com/rust-lang/rust.git
4353
fi
44-
cd rust
45-
git reset --hard
46-
git clean -f
47-
git checkout "$RUST_BRANCH"
48-
cd ..
54+
(cd rust
55+
git reset --hard
56+
git clean -f
57+
git checkout "$RUST_BRANCH"
58+
)
59+
4960
mkdir -p rust-build
50-
cd rust-build
51-
../rust/configure --llvm-config="$WORKING_DIR/llvm-root/bin/llvm-config" --target=aarch64-apple-ios --enable-extended --tools=cargo --release-channel=nightly
52-
export CFLAGS_aarch64_apple_ios=-fembed-bitcode
53-
python "$WORKING_DIR/rust/x.py" build --stage 2
61+
(cd rust-build
62+
../rust/configure \
63+
--llvm-config="$WORKING_DIR/llvm-root/bin/llvm-config" \
64+
--target=aarch64-apple-ios \
65+
--enable-extended \
66+
--tools=cargo \
67+
--release-channel=nightly \
68+
;
69+
CFLAGS_aarch64_apple_ios=-fembed-bitcode \
70+
python "$WORKING_DIR/rust/x.py" build --stage 2
71+
)

dist.sh

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
set -euxo
33
source config.sh
44

5+
HOST_ARCH="$(rustc -vV | sed -nE 's/host: (.*)/\1/p')"
6+
57
# The built toolchain that we are going to package
6-
WORKING_DIR="$(pwd)/build"
8+
WORKING_DIR="${PWD}/build"
9+
BUILT_TOOLCHAIN_DIR="${WORKING_DIR}/rust-build/build/${HOST_ARCH}"
710

811
# The directory which will be added to the final zip file
9-
DEST="$(pwd)/dist/rust-${RUST_TOOLCHAIN}"
12+
DEST="${PWD}/dist/rust-${RUST_TOOLCHAIN}"
1013

1114
# The actual toolchain inside that, which will be installed to ~/.rustup/...
1215
TOOLCHAIN_DEST="${DEST}/${RUST_TOOLCHAIN}"
@@ -15,22 +18,34 @@ rm -rf "$DEST"
1518
mkdir -p "$TOOLCHAIN_DEST"
1619

1720
# Remove unneeded files from output
18-
rm -rf "$WORKING_DIR/rust-build/build/x86_64-apple-darwin/stage2/lib/rustlib/src"
21+
rm -rf "${BUILT_TOOLCHAIN_DIR}/stage2/lib/rustlib/src"
1922

2023
# Copy in toolchain artifacts
21-
cp -r "$WORKING_DIR/rust-build/build/x86_64-apple-darwin/stage2"/* "$TOOLCHAIN_DEST"
22-
cp -r "$WORKING_DIR/rust-build/build/x86_64-apple-darwin/stage2-tools/x86_64-apple-darwin/release/cargo" "$TOOLCHAIN_DEST/bin"
24+
cp -r \
25+
"${BUILT_TOOLCHAIN_DIR}/stage2"/* \
26+
"$TOOLCHAIN_DEST" \
27+
;
28+
cp -r \
29+
"${BUILT_TOOLCHAIN_DIR}/stage2-tools/$HOST_ARCH/release/cargo" \
30+
"$TOOLCHAIN_DEST/bin" \
31+
;
2332

2433
# Copy in static files that need to be included in the distribution
2534
cp LICENSE* README.md "$DEST"
2635

27-
echo "#!/bin/bash" >> "$DEST/install.sh"
28-
echo "DEST_TOOLCHAIN=\"\$HOME/.rustup/toolchains/$RUST_TOOLCHAIN\"" >> "$DEST/install.sh"
29-
echo "mkdir -p \"\$DEST_TOOLCHAIN\"" >> $DEST/install.sh
30-
echo "cp -r \"$RUST_TOOLCHAIN\"/* \"\$DEST_TOOLCHAIN\"" >> "$DEST/install.sh"
31-
chmod +x "$DEST/install.sh"
36+
sed 's/^ //' >"$DEST/install.sh"<<EOF
37+
#!/bin/bash
38+
set -euxo pipefail
39+
40+
DEST_TOOLCHAIN="\$HOME/.rustup/toolchains/${RUST_TOOLCHAIN}"
41+
mkdir -p "\$DEST_TOOLCHAIN"
42+
cp -r "${RUST_TOOLCHAIN}"/* "\$DEST_TOOLCHAIN"
43+
chmod +x "${DEST}/install.sh"
44+
45+
echo "Installed bitcode-enabled Rust toolchain. Use with: +${RUST_TOOLCHAIN}"
46+
EOF
3247

33-
cd dist
34-
rm -f "rust-${RUST_TOOLCHAIN}.zip"
35-
zip -r "rust-${RUST_TOOLCHAIN}.zip" "rust-${RUST_TOOLCHAIN}"
36-
cd ..
48+
(cd dist
49+
rm -f "rust-${RUST_TOOLCHAIN}.zip"
50+
zip -r "rust-${RUST_TOOLCHAIN}.zip" "rust-${RUST_TOOLCHAIN}"
51+
)

0 commit comments

Comments
 (0)