blob: 109b3fe8981058ff408de99f3dcd64af9f147bb4 [file] [log] [blame] [edit]
#!/bin/bash
# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# TODO(raggi): add support for arm targets
if [[ -z $RUST_ROOT ]]; then
echo "Need \$RUST_ROOT to be set"
exit 1
fi
if [[ -z $FUCHSIA_DIR ]]; then
echo "Need \$FUCHSIA_DIR to be set"
exit 1
fi
if [[ -z $FUCHSIA_OUT_DIR ]]; then
echo "Need \$FUCHSIA_OUT_DIR to be set"
exit 1
fi
case $(uname) in
Darwin)
export PREFIX=$FUCHSIA_DIR/buildtools/mac-x64/rust
clangdir="$FUCHSIA_DIR/buildtools/mac-x64/clang"
export TARGETS=x86_64-unknown-fuchsia,x86_64-apple-darwin
;;
Linux)
export PREFIX=$FUCHSIA_DIR/buildtools/linux-x64/rust
clangdir="$FUCHSIA_DIR/buildtools/linux-x64/clang"
export TARGETS=x86_64-unknown-fuchsia,x86_64-unknown-linux-gnu
;;
*)
echo "Unsupported platform" >&2
exit 1
;;
esac
if [[ ! -d $clangdir ]]; then
echo "Prebuilt clang toolchain missing $clangdir, maybe you need to update?" >&2
exit 1
fi
export PATH=$FUCHSIA_DIR/buildtools:$clangdir/bin:$PATH
for arch in x86_64 ; do
for tool in clang clang++; do
cat > $clangdir/bin/${arch}-unknown-fuchsia-${tool} <<EOF
#!/bin/sh
${tool} --target=${arch}-unknown-fuchsia --sysroot=$FUCHSIA_OUT_DIR/build-zircon/build-zircon-pc-x86-64/sysroot/ "\$@"
EOF
chmod +x $clangdir/bin/${arch}-unknown-fuchsia-${tool}
done
if [[ ! -x $clangdir/${arch}-unknown-fuchsia-ar ]]; then
ln -s $clangdir/bin/llvm-ar $clangdir/bin/${arch}-unknown-fuchsia-ar
fi
export AR_${arch}_unknown_fuchsia=llvm-ar
export CC_${arch}_unknown_fuchsia=${arch}-unknown-fuchsia-clang
export CXX_${arch}_unknown_fuchsia=${arch}-unknown-fuchsia-clang++
done
mkdir -p $FUCHSIA_OUT_DIR/rust
cd $FUCHSIA_OUT_DIR/rust
if [[ ! -f config.toml ]]; then
$RUST_ROOT/configure --target=$TARGETS --sysconfdir=$PREFIX/etc --enable-extended --prefix=$PREFIX --enable-ninja --enable-optimize --enable-optimize-llvm --enable-cargo-openssl-static
fi
python2.7 $RUST_ROOT/x.py dist && python2.7 $RUST_ROOT/x.py install