@@ -12,11 +12,6 @@ if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then
12
12
fi
13
13
which " ${PYTHON_EXECUTABLE} "
14
14
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"
18
- }
19
-
20
15
build_android_native_library () {
21
16
ANDROID_ABI=" $1 "
22
17
ANDROID_NDK=" ${ANDROID_NDK:-/ opt/ ndk} "
@@ -93,40 +88,37 @@ build_android_native_library() {
93
88
cmake --build " ${CMAKE_OUT} " /extension/android -j " ${CMAKE_JOBS} " --config " ${EXECUTORCH_CMAKE_BUILD_TYPE} "
94
89
95
90
# Copy artifacts to ABI specific directory
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} /"
91
+ mkdir -p " cmake-out-android-so /${ANDROID_ABI} "
92
+ cp " ${CMAKE_OUT} " /extension/android/* .so " cmake-out-android-so/ ${ANDROID_ABI} /libexecutorch.so "
98
93
99
94
# Copy QNN related so library
100
95
if [ -n " $QNN_SDK_ROOT " ] && [ " $ANDROID_ABI " == " arm64-v8a" ]; then
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} /"
96
+ cp " ${CMAKE_OUT} " /lib/libqnn_executorch_backend.so " cmake-out-android-so /${ANDROID_ABI} /"
97
+ cp " ${QNN_SDK_ROOT} " /lib/aarch64-android/libQnnHtp.so " cmake-out-android-so /${ANDROID_ABI} /"
98
+ cp " ${QNN_SDK_ROOT} " /lib/aarch64-android/libQnnSystem.so " cmake-out-android-so /${ANDROID_ABI} /"
99
+ cp " ${QNN_SDK_ROOT} " /lib/aarch64-android/libQnnHtpV69Stub.so " cmake-out-android-so /${ANDROID_ABI} /"
100
+ cp " ${QNN_SDK_ROOT} " /lib/aarch64-android/libQnnHtpV73Stub.so " cmake-out-android-so /${ANDROID_ABI} /"
101
+ cp " ${QNN_SDK_ROOT} " /lib/aarch64-android/libQnnHtpV75Stub.so " cmake-out-android-so /${ANDROID_ABI} /"
102
+ cp " ${QNN_SDK_ROOT} " /lib/hexagon-v69/unsigned/libQnnHtpV69Skel.so " cmake-out-android-so /${ANDROID_ABI} /"
103
+ cp " ${QNN_SDK_ROOT} " /lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so " cmake-out-android-so /${ANDROID_ABI} /"
104
+ cp " ${QNN_SDK_ROOT} " /lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so " cmake-out-android-so /${ANDROID_ABI} /"
110
105
fi
111
106
112
107
# Copy MTK related so library
113
108
if [ -n " $NEURON_BUFFER_ALLOCATOR_LIB " ] && [ -n " $NEURON_USDK_ADAPTER_LIB " ] && [ " $ANDROID_ABI " == " arm64-v8a" ]; then
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} /
109
+ cp " ${CMAKE_OUT} " /backends/mediatek/libneuron_backend.so cmake-out-android-so /${ANDROID_ABI} /
110
+ cp " ${NEURON_BUFFER_ALLOCATOR_LIB} " cmake-out-android-so /${ANDROID_ABI} /
111
+ cp " ${NEURON_USDK_ADAPTER_LIB} " cmake-out-android-so /${ANDROID_ABI} /
117
112
fi
118
113
}
119
114
120
115
build_aar () {
121
- pushd " ${BUILD_AAR_DIR} "
122
- # Rename libexecutorch_jni.so to libexecutorch.so for soname consistency
123
- # between Java and JNI
124
- find . -type f -name " libexecutorch_jni.so" -exec bash -c ' mv "$1" "${1/_jni/}"' bash {} \;
125
116
if [ " $EXECUTORCH_CMAKE_BUILD_TYPE " == " Release" ]; then
126
- find . -type f -name " *.so" -exec " $ANDROID_NDK " /toolchains/llvm/prebuilt/* /bin/llvm-strip {} \;
117
+ find cmake-out-android-so -type f -name " *.so" -exec " $ANDROID_NDK " /toolchains/llvm/prebuilt/* /bin/llvm-strip {} \;
127
118
fi
119
+ pushd extension/android/
128
120
ANDROID_HOME=" ${ANDROID_SDK:-/ opt/ android/ sdk} " ./gradlew build
129
- cp executorch_android/build/outputs/aar/executorch_android-debug.aar executorch.aar
121
+ cp executorch_android/build/outputs/aar/executorch_android-debug.aar " ${BUILD_AAR_DIR} / executorch.aar"
130
122
popd
131
123
}
132
124
@@ -140,7 +132,7 @@ main() {
140
132
fi
141
133
export ANDROID_ABIS
142
134
143
- copy_src
135
+ mkdir -p cmake-out-android-so/
144
136
for ANDROID_ABI in " ${ANDROID_ABIS[@]} " ; do
145
137
build_android_native_library ${ANDROID_ABI}
146
138
done
0 commit comments