|
1 | | -#!/bin/bash |
| 1 | + #!/usr/bin/env bash |
2 | 2 | set -x |
3 | 3 |
|
4 | | -readonly ANDROID_NDK_HOME=/opt/android-ndk-r17c |
| 4 | +PWD=$(pwd) |
5 | 5 |
|
6 | | -function prepare_env { |
| 6 | +export ANDROID_NDK=/opt/android-ndk-r17c |
| 7 | + |
| 8 | +echo "=========================== prepare_env ===============================" |
7 | 9 | # attr, wget, unzip |
8 | 10 | apt update |
9 | 11 | apt install -y --no-install-recommends attr wget unzip |
@@ -36,71 +38,57 @@ function prepare_env { |
36 | 38 | # setup env |
37 | 39 | export VULKAN_SDK=`pwd`/1.1.114.0/x86_64 |
38 | 40 |
|
39 | | - cd - |
40 | | -} |
| 41 | + cd $PWD |
41 | 42 |
|
42 | 43 | # download code repo from github |
43 | | -function download_repo { |
| 44 | +echo "========================= download_repo ============================" |
| 45 | + cd $PWD |
| 46 | + |
44 | 47 | # download repo |
45 | 48 | if [ ! -d "./ncnn" ]; then |
46 | 49 | git clone https://github.com/tencent/ncnn.git ncnn |
47 | 50 | else |
48 | 51 | echo "local ncnn repo exited" |
49 | 52 | fi |
50 | | -} |
| 53 | + |
51 | 54 |
|
52 | 55 | # compile tnn |
53 | | -function build { |
| 56 | +echo "========================= build =====================================" |
54 | 57 | # replace |
55 | 58 | cp benchncnn.cpp ./ncnn/benchmark/benchncnn.cpp |
56 | 59 | cd ncnn |
57 | 60 |
|
58 | | - # generate |
59 | | - cd schema && ./generate.sh |
60 | | - cd - |
61 | | - |
62 | 61 | # build |
63 | | - export ANDROID_NDK=${ANDROID_NDK_HOME} |
64 | | - cd ncnn |
65 | | - |
66 | 62 | ##### android armv7 |
67 | | - mkdir -p build-android-armv7 |
68 | | - pushd build-android-armv7 |
69 | | - cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-19 .. |
70 | | - make -j4 |
71 | | - make install |
72 | | - popd |
73 | | - |
74 | | - ##### android aarch64 |
75 | | - mkdir -p build-android-aarch64 |
76 | | - pushd build-android-aarch64 |
77 | | - cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 .. |
78 | | - make -j4 |
79 | | - make install |
80 | | - popd |
81 | | - |
82 | | - ##### android armv7 vulkan |
83 | | -# mkdir -p build-android-armv7-vulkan |
84 | | -# pushd build-android-armv7-vulkan |
85 | | -# cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON .. |
| 63 | +# mkdir -p build-android-armv7 |
| 64 | +# pushd build-android-armv7 |
| 65 | +# cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-19 .. |
86 | 66 | # make -j4 |
87 | 67 | # make install |
88 | 68 | # popd |
89 | 69 |
|
90 | | - ##### android aarch64 vulkan |
91 | | -# mkdir -p build-android-aarch64-vulkan |
92 | | -# pushd build-android-aarch64-vulkan |
93 | | -# cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON .. |
| 70 | + ##### android aarch64 |
| 71 | +# mkdir -p build-android-aarch64 |
| 72 | +# pushd build-android-aarch64 |
| 73 | +# cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 .. |
94 | 74 | # make -j4 |
95 | 75 | # make install |
96 | 76 | # popd |
97 | 77 |
|
98 | | -} |
| 78 | + ##### android armv7 vulkan |
| 79 | + mkdir -p build-android-armv7-vulkan |
| 80 | + pushd build-android-armv7-vulkan |
| 81 | + cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON .. |
| 82 | + make -j4 |
| 83 | + make install |
| 84 | + popd |
| 85 | + |
| 86 | + ##### android aarch64 vulkan |
| 87 | + mkdir -p build-android-aarch64-vulkan |
| 88 | + pushd build-android-aarch64-vulkan |
| 89 | + cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON .. |
| 90 | + make -j4 |
| 91 | + make install |
| 92 | + popd |
99 | 93 |
|
100 | | -function main { |
101 | | - prepare_env |
102 | | - download_repo |
103 | | - build |
104 | | -} |
105 | 94 |
|
106 | | -main ${@} |
0 commit comments