commit
676250448b
@ -0,0 +1,38 @@
|
|||||||
|
FROM ubuntu:16.04
|
||||||
|
MAINTAINER PaddlePaddle Authors <paddle-dev@baidu.com>
|
||||||
|
|
||||||
|
ARG UBUNTU_MIRROR
|
||||||
|
RUN /bin/bash -c 'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i 's#http://archive.ubuntu.com/ubuntu#${UBUNTU_MIRROR}#g' /etc/apt/sources.list; fi'
|
||||||
|
|
||||||
|
ENV HOME=/root \
|
||||||
|
ANDROID_NDK_HOME=/opt/android-ndk-linux \
|
||||||
|
ANDROID_STANDALONE_TOOLCHAIN=/opt/android-toolchain-gcc
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y \
|
||||||
|
git python-dev python-pip python-numpy \
|
||||||
|
wget curl tar unzip gcc g++ locales clang-format-3.8 swig cmake && \
|
||||||
|
apt-get clean -y
|
||||||
|
|
||||||
|
# git credential to skip password typing
|
||||||
|
RUN git config --global credential.helper store
|
||||||
|
|
||||||
|
# Fix locales to en_US.UTF-8
|
||||||
|
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
|
||||||
|
|
||||||
|
RUN pip install --upgrade pip && \
|
||||||
|
pip install -U 'protobuf==3.1.0' && \
|
||||||
|
pip install -U wheel sphinx && \
|
||||||
|
pip install pre-commit
|
||||||
|
|
||||||
|
# Android NDK
|
||||||
|
RUN mkdir /opt/android-ndk-tmp && \
|
||||||
|
cd /opt/android-ndk-tmp && \
|
||||||
|
wget -q https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip && \
|
||||||
|
unzip -q android-ndk-r14b-linux-x86_64.zip && \
|
||||||
|
mv android-ndk-r14b ${ANDROID_NDK_HOME} && \
|
||||||
|
${ANDROID_NDK_HOME}/build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=${ANDROID_STANDALONE_TOOLCHAIN} && \
|
||||||
|
rm -rf /opt/android-ndk-tmp && \
|
||||||
|
rm -rf ${ANDROID_NDK_HOME}
|
||||||
|
|
||||||
|
CMD ["bash", "/paddle/paddle/scripts/docker/build_android.sh"]
|
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
mkdir -p /paddle/build
|
||||||
|
cd /paddle/build
|
||||||
|
rm -f /paddle/install 2>/dev/null || true
|
||||||
|
cmake -DCMAKE_SYSTEM_NAME=Android \
|
||||||
|
-DANDROID_STANDALONE_TOOLCHAIN=$ANDROID_STANDALONE_TOOLCHAIN \
|
||||||
|
-DANDROID_ABI=armeabi-v7a \
|
||||||
|
-DANDROID_ARM_NEON=ON \
|
||||||
|
-DANDROID_ARM_MODE=ON \
|
||||||
|
-DHOST_C_COMPILER=/usr/bin/gcc \
|
||||||
|
-DHOST_CXX_COMPILER=/usr/bin/g++ \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/paddle/install \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3" \
|
||||||
|
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3" \
|
||||||
|
-DWITH_C_API=ON \
|
||||||
|
-DWITH_SWIG_PY=OFF \
|
||||||
|
..
|
||||||
|
make -j `nproc`
|
||||||
|
make install
|
||||||
|
|
||||||
|
export PATH=/paddle/install/bin:/paddle/install/opt/paddle/bin:$PATH
|
||||||
|
paddle version
|
Loading…
Reference in new issue