|
3 | 3 | set -ex
|
4 | 4 | source shared.sh
|
5 | 5 |
|
6 |
| -ZIRCON=e9a26dbc70d631029f8ee9763103910b7e3a2fe1 |
7 |
| - |
8 |
| -mkdir -p zircon |
9 |
| -pushd zircon > /dev/null |
10 |
| - |
11 |
| -# Download sources |
12 |
| -git init |
13 |
| -git remote add origin https://github.com/rust-lang-nursery/mirror-google-fuchsia-zircon |
14 |
| -git fetch --depth=1 origin $ZIRCON |
15 |
| -git reset --hard FETCH_HEAD |
16 |
| - |
17 |
| -# Download toolchain |
18 |
| -./scripts/download-toolchain |
19 |
| -chmod -R a+rx prebuilt/downloads/clang+llvm-x86_64-linux |
20 |
| -cp -a prebuilt/downloads/clang+llvm-x86_64-linux/. /usr/local |
21 |
| - |
22 |
| -build() { |
23 |
| - local arch="$1" |
24 |
| - |
25 |
| - case "${arch}" in |
26 |
| - x86_64) tgt="zircon-pc-x86-64" ;; |
27 |
| - aarch64) tgt="zircon-qemu-arm64" ;; |
28 |
| - esac |
29 |
| - |
30 |
| - hide_output make -j$(getconf _NPROCESSORS_ONLN) $tgt |
31 |
| - dst=/usr/local/${arch}-fuchsia |
32 |
| - mkdir -p $dst |
33 |
| - cp -a build-${tgt}/sysroot/include $dst/ |
34 |
| - cp -a build-${tgt}/sysroot/lib $dst/ |
| 6 | +FUCHSIA_SDK_URL=https://chrome-infra-packages.appspot.com/dl/fuchsia/sdk/core/linux-amd64 |
| 7 | +FUCHSIA_SDK_ID=4xjxrGUrDbQ6_zJwj6cDN1IbWsWV5aCQXC_zO_Hu0XkC |
| 8 | +FUCHSIA_SDK_SHA256=e318f1ac652b0db43aff32708fa70337521b5ac595e5a0905c2ff33bf1eed179 |
| 9 | +FUCHSIA_SDK_USR_DIR=/usr/local/core-linux-amd64-fuchsia-sdk |
| 10 | +CLANG_DOWNLOAD_URL=\ |
| 11 | +https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/linux-amd64 |
| 12 | +CLANG_DOWNLOAD_ID=vU0vNjSihOV4Q6taQYCpy03JXGiCyVwxen3rFMNMIgsC |
| 13 | +CLANG_DOWNLOAD_SHA256=bd4d2f3634a284e57843ab5a4180a9cb4dc95c6882c95c317a7deb14c34c220b |
| 14 | + |
| 15 | +install_clang() { |
| 16 | + mkdir -p clang_download |
| 17 | + pushd clang_download > /dev/null |
| 18 | + |
| 19 | + # Download clang+llvm |
| 20 | + curl -LO "${CLANG_DOWNLOAD_URL}/+/${CLANG_DOWNLOAD_ID}" |
| 21 | + echo "$(echo ${CLANG_DOWNLOAD_SHA256}) ${CLANG_DOWNLOAD_ID}" | sha256sum --check --status |
| 22 | + unzip -qq ${CLANG_DOWNLOAD_ID} -d clang-linux-amd64 |
| 23 | + |
| 24 | + # Other dists currently depend on our Clang... moving into /usr/local for other |
| 25 | + # dist usage instead of a Fuchsia /usr/local directory |
| 26 | + chmod -R 777 clang-linux-amd64/. |
| 27 | + cp -a clang-linux-amd64/. /usr/local |
| 28 | + |
| 29 | + # CFLAGS and CXXFLAGS env variables in main Dockerfile handle sysroot linking |
| 30 | + for arch in x86_64 aarch64; do |
| 31 | + for tool in clang clang++; do |
| 32 | + ln -s /usr/local/bin/${tool} /usr/local/bin/${arch}-fuchsia-${tool} |
| 33 | + done |
| 34 | + ln -s /usr/local/bin/llvm-ar /usr/local/bin/${arch}-fuchsia-ar |
| 35 | + done |
| 36 | + |
| 37 | + popd > /dev/null |
| 38 | + rm -rf clang_download |
35 | 39 | }
|
36 | 40 |
|
37 |
| -# Build sysroot |
38 |
| -for arch in x86_64 aarch64; do |
39 |
| - build ${arch} |
40 |
| -done |
41 |
| - |
42 |
| -popd > /dev/null |
43 |
| -rm -rf zircon |
44 |
| - |
45 |
| -for arch in x86_64 aarch64; do |
46 |
| - for tool in clang clang++; do |
47 |
| - cat >/usr/local/bin/${arch}-fuchsia-${tool} <<EOF |
48 |
| -#!/bin/sh |
49 |
| -${tool} --target=${arch}-fuchsia --sysroot=/usr/local/${arch}-fuchsia "\$@" |
50 |
| -EOF |
51 |
| - chmod +x /usr/local/bin/${arch}-fuchsia-${tool} |
52 |
| - done |
53 |
| - ln -s /usr/local/bin/llvm-ar /usr/local/bin/${arch}-fuchsia-ar |
54 |
| -done |
| 41 | +install_zircon_libs() { |
| 42 | + mkdir -p zircon |
| 43 | + pushd zircon > /dev/null |
| 44 | + |
| 45 | + # Download Fuchsia SDK (with Zircon libs) |
| 46 | + curl -LO "${FUCHSIA_SDK_URL}/+/${FUCHSIA_SDK_ID}" |
| 47 | + echo "$(echo ${FUCHSIA_SDK_SHA256}) ${FUCHSIA_SDK_ID}" | sha256sum --check --status |
| 48 | + unzip -qq ${FUCHSIA_SDK_ID} -d core-linux-amd64 |
| 49 | + |
| 50 | + # Moving SDK into Docker's user-space |
| 51 | + mkdir -p ${FUCHSIA_SDK_USR_DIR} |
| 52 | + chmod -R 777 core-linux-amd64/. |
| 53 | + cp -r core-linux-amd64/* ${FUCHSIA_SDK_USR_DIR} |
| 54 | + |
| 55 | + popd > /dev/null |
| 56 | + rm -rf zircon |
| 57 | +} |
| 58 | + |
| 59 | +hide_output install_clang |
| 60 | +hide_output install_zircon_libs |
0 commit comments