forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-fuchsia-toolchain.sh
executable file
·60 lines (48 loc) · 1.99 KB
/
build-fuchsia-toolchain.sh
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
#!/usr/bin/env bash
set -ex
source shared.sh
FUCHSIA_SDK_URL=https://chrome-infra-packages.appspot.com/dl/fuchsia/sdk/core/linux-amd64
FUCHSIA_SDK_ID=version:21.20240610.2.1
FUCHSIA_SDK_SHA256=2d2d057fc3f0404197cced2200f88cbcdaaf5fbf6475955045091f8676791ce7
FUCHSIA_SDK_USR_DIR=/usr/local/core-linux-amd64-fuchsia-sdk
CLANG_DOWNLOAD_URL=\
https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/linux-amd64
CLANG_DOWNLOAD_ID=git_revision:3809e20afc68d7d03821f0ec59b928dcf9befbf4
CLANG_DOWNLOAD_SHA256=3c2c442b61cd9e8f1b567738f6d53cffe11b3fc820e7dae87a82a0859be8f204
install_clang() {
mkdir -p clang_download
pushd clang_download > /dev/null
# Download clang+llvm
curl -LO "${CLANG_DOWNLOAD_URL}/+/${CLANG_DOWNLOAD_ID}"
echo "$(echo ${CLANG_DOWNLOAD_SHA256}) ${CLANG_DOWNLOAD_ID}" | sha256sum --check --status
unzip -qq ${CLANG_DOWNLOAD_ID} -d clang-linux-amd64
# Other dists currently depend on our Clang... moving into /usr/local for other
# dist usage instead of a Fuchsia /usr/local directory
chmod -R 777 clang-linux-amd64/.
cp -a clang-linux-amd64/. /usr/local
# CFLAGS and CXXFLAGS env variables in main Dockerfile handle sysroot linking
for arch in x86_64 aarch64; do
for tool in clang clang++; do
ln -s /usr/local/bin/${tool} /usr/local/bin/${arch}-unknown-fuchsia-${tool}
done
ln -s /usr/local/bin/llvm-ar /usr/local/bin/${arch}-unknown-fuchsia-ar
done
popd > /dev/null
rm -rf clang_download
}
install_zircon_libs() {
mkdir -p zircon
pushd zircon > /dev/null
# Download Fuchsia SDK (with Zircon libs)
curl -LO "${FUCHSIA_SDK_URL}/+/${FUCHSIA_SDK_ID}"
echo "$(echo ${FUCHSIA_SDK_SHA256}) ${FUCHSIA_SDK_ID}" | sha256sum --check --status
unzip -qq ${FUCHSIA_SDK_ID} -d core-linux-amd64
# Moving SDK into Docker's user-space
mkdir -p ${FUCHSIA_SDK_USR_DIR}
chmod -R 777 core-linux-amd64/.
cp -r core-linux-amd64/* ${FUCHSIA_SDK_USR_DIR}
popd > /dev/null
rm -rf zircon
}
hide_output install_clang
hide_output install_zircon_libs