| #!/bin/bash | 
 | ############################################################################### | 
 | # This script tests the custom selective build flow for PyTorch Android, which | 
 | # optimizes library size by only including ops used by a specific model. | 
 | ############################################################################### | 
 |  | 
 | set -eux | 
 |  | 
 | PYTORCH_DIR="$(cd $(dirname $0)/..; pwd -P)" | 
 | PYTORCH_ANDROID_DIR="${PYTORCH_DIR}/android" | 
 | BUILD_ROOT="${PYTORCH_DIR}/build_pytorch_android_custom" | 
 |  | 
 | source "${PYTORCH_ANDROID_DIR}/common.sh" | 
 |  | 
 | prepare_model_and_dump_root_ops() { | 
 |   cd "${BUILD_ROOT}" | 
 |   MODEL="${BUILD_ROOT}/MobileNetV2.pt" | 
 |   ROOT_OPS="${BUILD_ROOT}/MobileNetV2.yaml" | 
 |   python "${PYTORCH_ANDROID_DIR}/test_app/make_assets_custom.py" | 
 |   cp "${MODEL}" "${PYTORCH_ANDROID_DIR}/test_app/app/src/main/assets/mobilenet2.pt" | 
 | } | 
 |  | 
 | # Start building | 
 | mkdir -p "${BUILD_ROOT}" | 
 | check_android_sdk | 
 | check_gradle | 
 | parse_abis_list "$@" | 
 | prepare_model_and_dump_root_ops | 
 | SELECTED_OP_LIST="${ROOT_OPS}" build_android | 
 |  | 
 | # TODO: change this to build test_app instead | 
 | $GRADLE_PATH -PABI_FILTERS=$ABIS_LIST -p $PYTORCH_ANDROID_DIR clean assembleRelease |