| #!/bin/bash |
| |
| # Run cargo2android.py with the appropriate arguments for the crate in the |
| # supplied directory. |
| |
| set -e |
| |
| if [ "$#" -ne 1 ]; then |
| echo "Usage: $0 CRATE_DIRECTORY" |
| exit 1 |
| fi |
| cd $1 |
| |
| if ! [ -x "$(command -v bpfmt)" ]; then |
| echo 'Error: bpfmt not found.' >&2 |
| exit 1 |
| fi |
| |
| C2A_ARGS="" |
| if [[ -f "cargo2android.json" ]]; then |
| # If the crate has a cargo2android config, let it handle all the flags. |
| C2A_ARGS+=" --config cargo2android.json" |
| else |
| # Otherwise, set common flags. |
| C2A_ARGS+=" --run --device --tests --global_defaults=crosvm_defaults --add_workspace" |
| # If there are subdirectories with crates, then pass --no-subdir. |
| if [ -n "$(find . -mindepth 2 -name "Cargo.toml")" ]; then |
| C2A_ARGS+=" --no-subdir" |
| fi |
| fi |
| |
| C2A=${C2A:-cargo2android.py} |
| echo "Using $C2A to run this script." |
| $C2A $C2A_ARGS |
| rm -f cargo.out |
| rm -rf target.tmp || /bin/true |
| |
| if [[ -f "Android.bp" ]]; then |
| bpfmt -w Android.bp || /bin/true |
| fi |