@@ -30,7 +30,7 @@ build_android_native_library() {
30
30
cmake . -DCMAKE_INSTALL_PREFIX=" ${CMAKE_OUT} " \
31
31
-DCMAKE_TOOLCHAIN_FILE=" ${ANDROID_NDK} /build/cmake/android.toolchain.cmake" \
32
32
-DANDROID_ABI=" ${ANDROID_ABI} " \
33
- -DANDROID_PLATFORM=android-23 \
33
+ -DANDROID_PLATFORM=android-26 \
34
34
-DEXECUTORCH_ENABLE_LOGGING=ON \
35
35
-DEXECUTORCH_LOG_LEVEL=Info \
36
36
-DEXECUTORCH_BUILD_XNNPACK=ON \
@@ -42,6 +42,8 @@ build_android_native_library() {
42
42
-DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON \
43
43
-DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON \
44
44
-DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \
45
+ -DEXECUTORCH_BUILD_NEURON=" ${EXECUTORCH_BUILD_NEURON} " \
46
+ -DNEURON_BUFFER_ALLOCATOR_LIB=" ${NEURON_BUFFER_ALLOCATOR_LIB} " \
45
47
-DEXECUTORCH_BUILD_QNN=" ${EXECUTORCH_BUILD_QNN} " \
46
48
-DQNN_SDK_ROOT=" ${QNN_SDK_ROOT} " \
47
49
-DCMAKE_BUILD_TYPE=Release \
@@ -57,10 +59,12 @@ build_android_native_library() {
57
59
cmake extension/android \
58
60
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK} /build/cmake/android.toolchain.cmake \
59
61
-DANDROID_ABI=" ${ANDROID_ABI} " \
60
- -DANDROID_PLATFORM=android-23 \
62
+ -DANDROID_PLATFORM=android-26 \
61
63
-DCMAKE_INSTALL_PREFIX=" ${CMAKE_OUT} " \
62
64
-DEXECUTORCH_ENABLE_LOGGING=ON \
63
65
-DEXECUTORCH_LOG_LEVEL=Info \
66
+ -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH \
67
+ -DNEURON_BUFFER_ALLOCATOR_LIB=" $NEURON_BUFFER_ALLOCATOR_LIB " \
64
68
-DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \
65
69
-DEXECUTORCH_BUILD_LLAMA_JNI=ON \
66
70
-DCMAKE_BUILD_TYPE=Release \
@@ -84,6 +88,13 @@ build_android_native_library() {
84
88
cp " ${QNN_SDK_ROOT} " /lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so " ${BUILD_AAR_DIR} /jni/${ANDROID_ABI} /"
85
89
cp " ${QNN_SDK_ROOT} " /lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so " ${BUILD_AAR_DIR} /jni/${ANDROID_ABI} /"
86
90
fi
91
+
92
+ # Copy MTK related so library
93
+ if [ -n " $NEURON_BUFFER_ALLOCATOR_LIB " ] && [ " $ANDROID_ABI " == " arm64-v8a" ]; then
94
+ cp " ${CMAKE_OUT} " /backends/mediatek/libneuron_backend.so ${BUILD_AAR_DIR} /jni/${ANDROID_ABI} /
95
+ cp " $NEURON_BUFFER_ALLOCATOR_LIB " /libneuron_buffer_allocator.so ${BUILD_AAR_DIR} /jni/${ANDROID_ABI} /
96
+ cp " $NEURON_BUFFER_ALLOCATOR_LIB " /libneuronusdk_adapter.mtk.so ${BUILD_AAR_DIR} /jni/${ANDROID_ABI} /
97
+ fi
87
98
}
88
99
89
100
build_aar () {
@@ -96,7 +107,7 @@ build_aar() {
96
107
# between Java and JNI
97
108
find jni -type f -name " libexecutorch_jni.so" -exec bash -c ' mv "$1" "${1/_jni/}"' bash {} \;
98
109
# Zip all necessary files into the AAR file
99
- zip -r executorch.aar libs jni/* /libexecutorch.so jni/* /libqnn* .so jni/* /libQnn* .so AndroidManifest.xml
110
+ 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
100
111
cp executorch.aar executorch-llama.aar
101
112
popd
102
113
}
0 commit comments