Skip to content

Commit d6a26c8

Browse files
committed
Use gradle to build the AAR
1 parent e1a14ea commit d6a26c8

File tree

2 files changed

+29
-30
lines changed

2 files changed

+29
-30
lines changed

build/build_android_library.sh

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@ if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then
1212
fi
1313
which "${PYTHON_EXECUTABLE}"
1414

15-
build_jar() {
16-
pushd extension/android
17-
./gradlew build
18-
popd
19-
mkdir -p "${BUILD_AAR_DIR}/libs"
20-
cp extension/android/build/libs/executorch.jar "${BUILD_AAR_DIR}/libs/"
15+
copy_src() {
16+
cp -r extension/android/build.gradle extension/android/settings.gradle extension/android/gradlew extension/android/gradle extension/android/gradlew.bat "${BUILD_AAR_DIR}"
17+
cp -r extension/android/executorch_android "${BUILD_AAR_DIR}/executorch_android"
2118
}
2219

2320
build_android_native_library() {
@@ -96,44 +93,40 @@ build_android_native_library() {
9693
cmake --build "${CMAKE_OUT}"/extension/android -j "${CMAKE_JOBS}" --config "${EXECUTORCH_CMAKE_BUILD_TYPE}"
9794

9895
# Copy artifacts to ABI specific directory
99-
mkdir -p "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}"
100-
cp "${CMAKE_OUT}"/extension/android/*.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
96+
mkdir -p "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}"
97+
cp "${CMAKE_OUT}"/extension/android/*.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
10198

10299
# Copy QNN related so library
103100
if [ -n "$QNN_SDK_ROOT" ] && [ "$ANDROID_ABI" == "arm64-v8a" ]; then
104-
cp "${CMAKE_OUT}"/lib/libqnn_executorch_backend.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
105-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtp.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
106-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnSystem.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
107-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV69Stub.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
108-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV73Stub.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
109-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV75Stub.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
110-
cp "${QNN_SDK_ROOT}"/lib/hexagon-v69/unsigned/libQnnHtpV69Skel.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
111-
cp "${QNN_SDK_ROOT}"/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
112-
cp "${QNN_SDK_ROOT}"/lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
101+
cp "${CMAKE_OUT}"/lib/libqnn_executorch_backend.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
102+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtp.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
103+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnSystem.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
104+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV69Stub.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
105+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV73Stub.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
106+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV75Stub.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
107+
cp "${QNN_SDK_ROOT}"/lib/hexagon-v69/unsigned/libQnnHtpV69Skel.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
108+
cp "${QNN_SDK_ROOT}"/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
109+
cp "${QNN_SDK_ROOT}"/lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
113110
fi
114111

115112
# Copy MTK related so library
116113
if [ -n "$NEURON_BUFFER_ALLOCATOR_LIB" ] && [ -n "$NEURON_USDK_ADAPTER_LIB" ] && [ "$ANDROID_ABI" == "arm64-v8a" ]; then
117-
cp "${CMAKE_OUT}"/backends/mediatek/libneuron_backend.so ${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/
118-
cp "${NEURON_BUFFER_ALLOCATOR_LIB}" ${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/
119-
cp "${NEURON_USDK_ADAPTER_LIB}" ${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/
114+
cp "${CMAKE_OUT}"/backends/mediatek/libneuron_backend.so ${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/
115+
cp "${NEURON_BUFFER_ALLOCATOR_LIB}" ${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/
116+
cp "${NEURON_USDK_ADAPTER_LIB}" ${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/
120117
fi
121118
}
122119

123120
build_aar() {
124-
echo \<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" \
125-
package=\"org.pytorch.executorch\"\> \
126-
\<uses-sdk android:minSdkVersion=\"19\" /\> \
127-
\</manifest\> > "${BUILD_AAR_DIR}/AndroidManifest.xml"
128121
pushd "${BUILD_AAR_DIR}"
129122
# Rename libexecutorch_jni.so to libexecutorch.so for soname consistency
130123
# between Java and JNI
131-
find jni -type f -name "libexecutorch_jni.so" -exec bash -c 'mv "$1" "${1/_jni/}"' bash {} \;
124+
find . -type f -name "libexecutorch_jni.so" -exec bash -c 'mv "$1" "${1/_jni/}"' bash {} \;
132125
if [ "$EXECUTORCH_CMAKE_BUILD_TYPE" == "Release" ]; then
133-
find jni -type f -name "*.so" -exec "$ANDROID_NDK"/toolchains/llvm/prebuilt/*/bin/llvm-strip {} \;
126+
find . -type f -name "*.so" -exec "$ANDROID_NDK"/toolchains/llvm/prebuilt/*/bin/llvm-strip {} \;
134127
fi
135-
# Zip all necessary files into the AAR file
136-
zip -r executorch.aar libs jni/*/libexecutorch.so jni/*/libqnn*.so jni/*/libQnn*.so jni/*/libneuron_backend.so jni/*/libneuron_buffer_allocator.so jni/*/libneuronusdk_adapter.mtk.so AndroidManifest.xml
128+
./gradlew build
129+
cp executorch_android/build/outputs/aar/executorch_android-debug.aar executorch.aar
137130
popd
138131
}
139132

@@ -149,7 +142,7 @@ main() {
149142

150143
ARTIFACTS_DIR_NAME="$1"
151144

152-
build_jar
145+
copy_src
153146
for ANDROID_ABI in "${ANDROID_ABIS[@]}"; do
154147
build_android_native_library ${ANDROID_ABI}
155148
done

extension/android/executorch_android/build.gradle

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ mavenPublishing {
3838
publishToMavenCentral(SonatypeHost.DEFAULT)
3939
signAllPublications()
4040

41-
coordinates("org.pytorch", "executorch-android", "0.6.0-SNAPSHOT")
41+
coordinates("org.pytorch", "executorch-android", "0.5.0-SNAPSHOT")
4242

4343
pom {
4444
name = "ExecuTorch Android"
@@ -67,3 +67,9 @@ mavenPublishing {
6767
}
6868

6969
}
70+
71+
repositories {
72+
maven {
73+
url "https://oss.sonatype.org/content/repositories/snapshots"
74+
}
75+
}

0 commit comments

Comments
 (0)