|
7 | 7 |
|
8 | 8 | set -eu
|
9 | 9 |
|
10 |
| -CMAKE_OUT="${CMAKE_OUT:-cmake-out-android}" |
11 |
| -# Note: Set up ANDROID_NDK and ANDROID_ABI |
12 |
| -cmake . -DCMAKE_INSTALL_PREFIX="${CMAKE_OUT}" \ |
13 |
| - -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" \ |
14 |
| - -DANDROID_ABI="${ANDROID_ABI}" \ |
15 |
| - -DEXECUTORCH_BUILD_XNNPACK=ON \ |
16 |
| - -DEXECUTORCH_BUILD_EXTENSION_DATA_LOADER=ON \ |
17 |
| - -DEXECUTORCH_BUILD_EXTENSION_MODULE=ON \ |
18 |
| - -DEXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL=ON \ |
19 |
| - -DEXECUTORCH_BUILD_EXTENSION_TENSOR=ON \ |
20 |
| - -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON \ |
21 |
| - -DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON \ |
22 |
| - -DEXECUTORCH_BUILD_QNN=ON \ |
23 |
| - -DQNN_SDK_ROOT="${QNN_SDK_ROOT}" \ |
24 |
| - -DCMAKE_BUILD_TYPE=Release \ |
25 |
| - -B"${CMAKE_OUT}" |
26 |
| - |
27 |
| -if [ "$(uname)" == "Darwin" ]; then |
28 |
| - CMAKE_JOBS=$(( $(sysctl -n hw.ncpu) - 1 )) |
29 |
| -else |
30 |
| - CMAKE_JOBS=$(( $(nproc) - 1 )) |
| 10 | +if [ -z "$QNN_SDK_ROOT" ]; then |
| 11 | + echo "You must specify QNN_SDK_ROOT" |
| 12 | + exit 1 |
31 | 13 | fi
|
32 |
| -cmake --build "${CMAKE_OUT}" -j "${CMAKE_JOBS}" --target install --config Release |
33 |
| - |
34 |
| -cmake extension/android \ |
35 |
| - -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ |
36 |
| - -DANDROID_ABI="${ANDROID_ABI}" \ |
37 |
| - -DCMAKE_INSTALL_PREFIX="${CMAKE_OUT}" \ |
38 |
| - -DEXECUTORCH_BUILD_LLAMA_JNI=ON \ |
39 |
| - -DEXECUTORCH_BUILD_EXTENSION_TENSOR=ON \ |
40 |
| - -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ |
41 |
| - -DEXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL=ON \ |
42 |
| - -DCMAKE_BUILD_TYPE=Release \ |
43 |
| - -B"${CMAKE_OUT}"/extension/android |
44 | 14 |
|
45 |
| -cmake --build "${CMAKE_OUT}"/extension/android -j "${CMAKE_JOBS}" --config Release |
46 |
| - |
47 |
| -JNI_LIBS_PATH="examples/demo-apps/android/LlamaDemo/app/src/main/jniLibs" |
48 |
| -mkdir -p "${JNI_LIBS_PATH}/${ANDROID_ABI}" |
| 15 | +BASEDIR=$(dirname "$0") |
| 16 | +source "$BASEDIR"/../../../../build/build_android_llm_demo.sh |
49 | 17 |
|
50 | 18 | BUILD_AAR_DIR="$(mktemp -d)"
|
51 |
| -mkdir -p "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}" "${BUILD_AAR_DIR}/libs" |
52 |
| -JNI_LIBS_PATH="${BUILD_AAR_DIR}/jni" |
53 |
| -cp "${CMAKE_OUT}"/extension/android/libexecutorch_jni.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/libexecutorch.so" |
54 |
| -cp "${CMAKE_OUT}"/lib/libqnn_executorch_backend.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
55 |
| -cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtp.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
56 |
| -cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnSystem.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
57 |
| -cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV69Stub.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
58 |
| -cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV73Stub.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
59 |
| -cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV75Stub.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
60 |
| -cp "${QNN_SDK_ROOT}"/lib/hexagon-v69/unsigned/libQnnHtpV69Skel.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
61 |
| -cp "${QNN_SDK_ROOT}"/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
62 |
| -cp "${QNN_SDK_ROOT}"/lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so "${JNI_LIBS_PATH}/${ANDROID_ABI}/" |
63 |
| -cp extension/android/build/libs/executorch.jar "${BUILD_AAR_DIR}/libs" |
64 |
| -echo \<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" \ |
65 |
| - package=\"org.pytorch.executorch\"\> \ |
66 |
| - \<uses-sdk android:minSdkVersion=\"19\" /\> \ |
67 |
| - \</manifest\> > "${BUILD_AAR_DIR}/AndroidManifest.xml" |
68 |
| -pushd "${BUILD_AAR_DIR}" |
69 |
| -zip -r executorch-llama.aar libs jni/${ANDROID_ABI} AndroidManifest.xml |
70 |
| -popd |
71 |
| -mkdir -p examples/demo-apps/android/LlamaDemo/app/libs |
72 |
| -mv "${BUILD_AAR_DIR}/executorch-llama.aar" examples/demo-apps/android/LlamaDemo/app/libs |
| 19 | +export BUILD_AAR_DIR |
| 20 | + |
| 21 | +build_jar |
| 22 | +build_android_native_library "arm64-v8a" |
| 23 | +build_aar |
| 24 | +mkdir -p "$BASEDIR"/app/libs |
| 25 | +cp "$BUILD_AAR_DIR/executorch.aar" "$BASEDIR"/app/libs/executorch-llama.aar |
0 commit comments