Skip to content

Commit 6cfbf1b

Browse files
committed
Just build AAR in place
1 parent 7e8acb9 commit 6cfbf1b

File tree

2 files changed

+21
-26
lines changed

2 files changed

+21
-26
lines changed

extension/android/executorch_android/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ android {
2727
}
2828

2929
sourceSets {
30+
main {
31+
jniLibs.srcDirs = ['../../../cmake-out-android-so/']
32+
}
3033
androidTest {
3134
resources.srcDirs += [ 'src/androidTest/resources' ]
3235
}

scripts/build_android_library.sh

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then
1212
fi
1313
which "${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-
2015
build_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

120115
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 {} \;
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

Comments
 (0)