mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 13:44:15 +08:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/39587 Example of using direct linking to pytorch_jni library from aar and updating android/README.md with the tutorial how to do it. Adding `nativeBuild` dimension to `test_app`, using direct aar dependencies, as headers packaging is not landed yet, excluding `nativeBuild` from building by default for CI. Additional change to `scripts/build_pytorch_android.sh`: Skipping clean task here as android gradle plugin 3.3.2 exteralNativeBuild has problems with it when abiFilters are specified. Will be returned back in the following diffs with upgrading of gradle and android gradle plugin versions. Test Plan: Imported from OSS Differential Revision: D22118945 Pulled By: IvanKobzarev fbshipit-source-id: 31c54b49b1f262cbe5f540461d3406f74851db6c
52 lines
1.8 KiB
Bash
Executable File
52 lines
1.8 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
|
|
# Skipping clean task here as android gradle plugin 3.3.2 exteralNativeBuild has problems
|
|
# with it when abiFilters are specified.
|
|
$GRADLE_PATH -PABI_FILTERS=$ABIS_LIST -p $PYTORCH_ANDROID_DIR assembleRelease
|
|
else
|
|
$GRADLE_PATH -p $PYTORCH_ANDROID_DIR clean assembleRelease
|
|
fi
|
|
|
|
find $PYTORCH_ANDROID_DIR -type f -name *aar | xargs ls -lah
|