@@ -12,12 +12,9 @@ if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then
12
12
fi
13
13
which " ${PYTHON_EXECUTABLE} "
14
14
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 extension/android/gradle.properties " ${BUILD_AAR_DIR} "
17
+ cp -r extension/android/executorch_android " ${BUILD_AAR_DIR} /executorch_android"
21
18
}
22
19
23
20
build_android_native_library () {
@@ -96,44 +93,40 @@ build_android_native_library() {
96
93
cmake --build " ${CMAKE_OUT} " /extension/android -j " ${CMAKE_JOBS} " --config " ${EXECUTORCH_CMAKE_BUILD_TYPE} "
97
94
98
95
# 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} /"
101
98
102
99
# Copy QNN related so library
103
100
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} /"
113
110
fi
114
111
115
112
# Copy MTK related so library
116
113
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} /
120
117
fi
121
118
}
122
119
123
120
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"
128
121
pushd " ${BUILD_AAR_DIR} "
129
122
# Rename libexecutorch_jni.so to libexecutorch.so for soname consistency
130
123
# 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 {} \;
132
125
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 {} \;
134
127
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
+ ANDROID_HOME= " ${ANDROID_SDK :-/ opt / android / sdk} " ./gradlew build
129
+ cp executorch_android/build/outputs/aar/executorch_android-debug.aar executorch.aar
137
130
popd
138
131
}
139
132
@@ -149,7 +142,7 @@ main() {
149
142
150
143
ARTIFACTS_DIR_NAME=" $1 "
151
144
152
- build_jar
145
+ copy_src
153
146
for ANDROID_ABI in " ${ANDROID_ABIS[@]} " ; do
154
147
build_android_native_library ${ANDROID_ABI}
155
148
done
0 commit comments