@@ -12,11 +12,6 @@ if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then
1212fi
1313which " ${PYTHON_EXECUTABLE} "
1414
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-
2015build_android_native_library () {
2116 ANDROID_ABI=" $1 "
2217 ANDROID_NDK=" ${ANDROID_NDK:-/ opt/ ndk} "
@@ -93,40 +88,37 @@ build_android_native_library() {
9388 cmake --build " ${CMAKE_OUT} " /extension/android -j " ${CMAKE_JOBS} " --config " ${EXECUTORCH_CMAKE_BUILD_TYPE} "
9489
9590 # 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 "
9893
9994 # Copy QNN related so library
10095 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} /"
110105 fi
111106
112107 # Copy MTK related so library
113108 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} /
117112 fi
118113}
119114
120115build_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 {} \;
125116 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 {} \;
127118 fi
119+ pushd extension/android/
128120 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"
130122 popd
131123}
132124
@@ -140,7 +132,7 @@ main() {
140132 fi
141133 export ANDROID_ABIS
142134
143- copy_src
135+ mkdir -p cmake-out-android-so/
144136 for ANDROID_ABI in " ${ANDROID_ABIS[@]} " ; do
145137 build_android_native_library ${ANDROID_ABI}
146138 done
0 commit comments