| #!/bin/bash |
| # Copyright 2018 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. |
| |
| ### updates rustc_library and rustc_binary third_party dependencies |
| |
| ## usage: fx update-rustc-third-party |
| ## Updates third_party/rust_crates based on the contents of |
| ## third_party/rust_crates/Cargo.toml |
| ## |
| ## After updating third_party/rust_crates, the pinned revision of |
| ## third_party/rust_crates will need to be updated in garnet/manifest/third_party. |
| ## See https://fuchsia.googlesource.com/fuchsia/+/master/docs/development/languages/rust/third_party.md |
| ## for more details. |
| |
| set -e |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $? |
| |
| case "$(uname -s)" in |
| Linux*) OS=linux-x64;; |
| Darwin*) OS=mac-x64;; |
| *) fx-error "unrecognized OS"; exit 1;; |
| esac |
| |
| declare -x PATH=$FUCHSIA_DIR/buildtools/$OS/cmake/bin:$PATH |
| |
| if [[ "$OS" = "mac-x64" ]]; then |
| if ! [[ -x "$(command -v brew)" ]]; then |
| fx-error "'brew' binary not found" |
| fx-error "A homebrew <https://brew.sh> installation of opensslis required in order to update" |
| fx-error "Rust third party crates on the Mac." |
| exit 1 |
| fi |
| |
| declare -x LDFLAGS="-L$(brew --prefix)/opt/openssl/lib" |
| declare -x CPPFLAGS="-I$(brew --prefix)/opt/openssl/include" |
| fi |
| |
| export RUSTC=$FUCHSIA_DIR/buildtools/$OS/rust/bin/rustc |
| |
| (cd $FUCHSIA_DIR; $FUCHSIA_DIR/buildtools/$OS/rust/bin/cargo run \ |
| --target-dir $FUCHSIA_DIR/out/cargo_vendor_target \ |
| --manifest-path $FUCHSIA_DIR/third_party/rust-mirrors/cargo-vendor/Cargo.toml \ |
| -- vendor --sync $FUCHSIA_DIR/third_party/rust_crates/Cargo.toml \ |
| $FUCHSIA_DIR/third_party/rust_crates/vendor) |
| |
| python $FUCHSIA_DIR/scripts/rust/check_rust_licenses.py \ |
| --directory $FUCHSIA_DIR/third_party/rust_crates/vendor |