mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/39999 Cleaned up the android build scripts. Consolidated common functions into common.sh. Also made a few minor fixes: - We should trust build_android.sh doing right about reusing existing `build_android_$abi` directory; - We should clean up `pytorch_android/src/main/jniLibs/` to remove broken symbolic links in case custom abi list changes since last build; Test Plan: Imported from OSS Differential Revision: D22036926 Pulled By: ljk53 fbshipit-source-id: e93915ee4f195111b6171cdabc667fa0135d5195
50 lines
1.7 KiB
Bash
Executable File
50 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eux
|
|
|
|
##############################################################################
|
|
# Master script to build PyTorch Android library with Java bindings.
|
|
##############################################################################
|
|
# Example usage:
|
|
# - Build default AARs:
|
|
# scipts/build_pytorch_androis.sh
|
|
#
|
|
# - Build for specific ABI(s):
|
|
# scipts/build_pytorch_androis.sh armeabi-v7a
|
|
# scipts/build_pytorch_androis.sh arm64-v8a,x86,x86_64
|
|
#
|
|
# Script's workflow:
|
|
# 1. Builds libtorch for android for specified android abisi (by default for all 4).
|
|
# Custom list of android abis can be specified as a bash argument as comma separated list.
|
|
# For example just for testing on android x86 emulator we need only x86 build.
|
|
# ./scipts/build_pytorch_androis.sh x86
|
|
# 2. Creates symbolic links to android/pytorch_android/src/main/jniLibs/${abi} for libtorch build output,
|
|
# android/pytorch_android/src/main/cpp/libtorch_include/${abi} for headers.
|
|
# 3. Runs pyotrch_android gradle build:
|
|
# gradle assembleRelease
|
|
|
|
PYTORCH_DIR="$(cd $(dirname $0)/..; pwd -P)"
|
|
PYTORCH_ANDROID_DIR=$PYTORCH_DIR/android
|
|
|
|
echo "PYTORCH_DIR:$PYTORCH_DIR"
|
|
|
|
source "$PYTORCH_ANDROID_DIR/common.sh"
|
|
|
|
check_android_sdk
|
|
check_gradle
|
|
parse_abis_list "$@"
|
|
build_android
|
|
|
|
# To set proxy for gradle add following lines to ./gradle/gradle.properties:
|
|
# systemProp.http.proxyHost=...
|
|
# systemProp.http.proxyPort=8080
|
|
# systemProp.https.proxyHost=...
|
|
# systemProp.https.proxyPort=8080
|
|
|
|
if [ "$CUSTOM_ABIS_LIST" = true ]; then
|
|
$GRADLE_PATH -PABI_FILTERS=$ABIS_LIST -p $PYTORCH_ANDROID_DIR clean assembleRelease
|
|
else
|
|
$GRADLE_PATH -p $PYTORCH_ANDROID_DIR clean assembleRelease
|
|
fi
|
|
|
|
find $PYTORCH_ANDROID_DIR -type f -name *aar | xargs ls -lah
|