build_android.sh 2.6 KB
Newer Older
1 2 3 4
#!/bin/bash

set -xe

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
COMPILER=gcc
USE_EIGEN=ON
if [ $COMPILER == clang ]; then
  SUFFIX=_clang
  C_COMPILER=clang
  CXX_COMPILER=clang++
else
  SUFFIX=_gcc
  C_COMPILER=gcc
  CXX_COMPILER=g++
fi
if [ $USE_EIGEN == ON ]; then
  SUFFIX=${SUFFIX}_eigen
else
  SUFFIX=${SUFFIX}_openblas
fi
21

22 23 24 25 26 27 28 29
BUILD_ROOT=/paddle/build_android$SUFFIX
DEST_ROOT=/paddle/install$SUFFIX

rm -rf $BUILD_ROOT 2>/dev/null || true
mkdir -p $BUILD_ROOT
cd $BUILD_ROOT

THIRD_PARTY_PATH=/paddle/third_party_android$SUFFIX/$ANDROID_ABI
30 31 32 33 34 35 36

if [ $ANDROID_ABI == "armeabi-v7a" ]; then
  cmake -DCMAKE_SYSTEM_NAME=Android \
        -DANDROID_STANDALONE_TOOLCHAIN=$ANDROID_ARM_STANDALONE_TOOLCHAIN \
        -DANDROID_ABI=$ANDROID_ABI \
        -DANDROID_ARM_NEON=ON \
        -DANDROID_ARM_MODE=ON \
37 38
        -DCMAKE_C_COMPILER=$ANDROID_ARM_STANDALONE_TOOLCHAIN/bin/arm-linux-androideabi-${C_COMPILER} \
        -DCMAKE_CXX_COMPILER=$ANDROID_ARM_STANDALONE_TOOLCHAIN/bin/arm-linux-androideabi-${CXX_COMPILER} \
39 40
        -DHOST_C_COMPILER=/usr/bin/gcc \
        -DHOST_CXX_COMPILER=/usr/bin/g++ \
41
        -DCMAKE_INSTALL_PREFIX=$DEST_ROOT \
42 43
        -DTHIRD_PARTY_PATH=$THIRD_PARTY_PATH \
        -DCMAKE_BUILD_TYPE=Release \
44
        -DUSE_EIGEN_FOR_BLAS=${USE_EIGEN} \
45 46
        -DWITH_C_API=ON \
        -DWITH_SWIG_PY=OFF \
47 48 49
        -DWITH_STYLE_CHECK=OFF \
        ..
elif [ $ANDROID_ABI == "arm64-v8a" ]; then
50 51 52 53
  cmake -DCMAKE_SYSTEM_NAME=Android \
        -DANDROID_STANDALONE_TOOLCHAIN=$ANDROID_ARM64_STANDALONE_TOOLCHAIN \
        -DANDROID_ABI=$ANDROID_ABI \
        -DANDROID_ARM_MODE=ON \
54 55
        -DCMAKE_C_COMPILER=$ANDROID_ARM64_STANDALONE_TOOLCHAIN/bin/aarch64-linux-android-${C_COMPILER} \
        -DCMAKE_CXX_COMPILER=$ANDROID_ARM64_STANDALONE_TOOLCHAIN/bin/aarch64-linux-android-${CXX_COMPILER} \
56 57
        -DHOST_C_COMPILER=/usr/bin/gcc \
        -DHOST_CXX_COMPILER=/usr/bin/g++ \
58
        -DCMAKE_INSTALL_PREFIX=$DEST_ROOT \
59 60
        -DTHIRD_PARTY_PATH=$THIRD_PARTY_PATH \
        -DCMAKE_BUILD_TYPE=Release \
61
        -DUSE_EIGEN_FOR_BLAS=${USE_EIGEN} \
62 63
        -DWITH_C_API=ON \
        -DWITH_SWIG_PY=OFF \
64
        ..
65 66 67 68 69 70 71 72 73 74 75 76
elif [ $ANDROID_ABI == "armeabi" ]; then
  cmake -DCMAKE_SYSTEM_NAME=Android \
        -DANDROID_STANDALONE_TOOLCHAIN=$ANDROID_ARM_STANDALONE_TOOLCHAIN \
        -DANDROID_ABI=$ANDROID_ABI \
        -DANDROID_ARM_MODE=ON \
        -DHOST_C_COMPILER=/usr/bin/gcc \
        -DHOST_CXX_COMPILER=/usr/bin/g++ \
        -DCMAKE_INSTALL_PREFIX=/paddle/install \
        -DTHIRD_PARTY_PATH=$THIRD_PARTY_PATH \
        -DCMAKE_BUILD_TYPE=Release \
        -DWITH_C_API=ON \
        -DWITH_SWIG_PY=OFF \
77
        ..
78 79 80 81
else
  echo "Invalid ANDROID_ABI: $ANDROID_ABI"
fi

82 83
make VERBOSE=1 -j2
make install -j2