| #!/bin/bash |
| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| set -e |
| |
| # invoke_cargo.sh is a wrapper to invoke Cargo from Meson. This is a workaround |
| # solution to read the rust-toolchain file and set the the relevant environment |
| # variables. |
| |
| CARGO="${1}" |
| CARGO_FLAGS="${2}" |
| CARGO_FMT_FLAG="${3}" |
| export RUSTFLAGS="${4}" |
| |
| TOOLCHAIN_FILE="${5}" |
| if [[ -f $TOOLCHAIN_FILE ]]; then |
| TOOLCHAIN="$(cat ${TOOLCHAIN_FILE})" |
| fi |
| |
| export MESON_SOURCE_ROOT="${6}" |
| export MESON_BUILD_ROOT="${7}" |
| |
| if [ "${CARGO_TEST}" == 1 ]; then |
| echo "CARGO TEST BUILD!" |
| "${CARGO}" fmt ${CARGO_FMT_FLAG} |
| "${CARGO}" +"${TOOLCHAIN}" test ${CARGO_FLAGS} --workspace |
| "${CARGO}" +"${TOOLCHAIN}" build ${CARGO_FLAGS} |
| else |
| "${CARGO}" fmt ${CARGO_FMT_FLAG} |
| "${CARGO}" +"${TOOLCHAIN}" build ${CARGO_FLAGS} |
| fi |