Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
5ca41184
P
Paddle
项目概览
Crayon鑫
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5ca41184
编写于
8月 22, 2017
作者:
L
Liu Yiqun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update Dockerfile of android to support building for arm64-v8a and armeabi.
上级
5810d63f
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
61 addition
and
22 deletion
+61
-22
Dockerfile.android
Dockerfile.android
+12
-6
paddle/scripts/docker/build_android.sh
paddle/scripts/docker/build_android.sh
+49
-16
未找到文件。
Dockerfile.android
浏览文件 @
5ca41184
...
@@ -4,9 +4,15 @@ MAINTAINER PaddlePaddle Authors <paddle-dev@baidu.com>
...
@@ -4,9 +4,15 @@ MAINTAINER PaddlePaddle Authors <paddle-dev@baidu.com>
ARG UBUNTU_MIRROR
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'
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 variables
ARG ANDROID_ABI
ENV ANDROID_ABI=${ANDROID_ABI:-"armeabi-v7a"}
ENV HOME=/root \
ENV HOME=/root \
ANDROID_NDK_HOME=/opt/android-ndk-linux \
ANDROID_NDK_HOME=/opt/android-ndk-linux \
ANDROID_STANDALONE_TOOLCHAIN=/opt/android-toolchain-gcc
ANDROID_ARM_STANDALONE_TOOLCHAIN=/opt/arm-toolchain-gcc \
ANDROID_ARM64_STANDALONE_TOOLCHAIN=/opt/arm64-toolchain-gcc
RUN apt-get update && \
RUN apt-get update && \
apt-get install -y \
apt-get install -y \
...
@@ -15,12 +21,11 @@ RUN apt-get update && \
...
@@ -15,12 +21,11 @@ RUN apt-get update && \
apt-get clean -y
apt-get clean -y
# Install Go and glide
# Install Go and glide
RUN wget -
O go.tgz https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz &&
\
RUN wget -
qO- go.tgz https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz |
\
tar -
C /usr/local -xzf go.tgz
&& \
tar -
xz -C /usr/local
&& \
mkdir /root/gopath && \
mkdir /root/gopath && \
mkdir /root/gopath/bin && \
mkdir /root/gopath/bin && \
mkdir /root/gopath/src && \
mkdir /root/gopath/src
rm go.tgz
ENV GOROOT=/usr/local/go GOPATH=/root/gopath
ENV GOROOT=/usr/local/go GOPATH=/root/gopath
# should not be in the same line with GOROOT definition, otherwise docker build could not find GOROOT.
# should not be in the same line with GOROOT definition, otherwise docker build could not find GOROOT.
ENV PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin
ENV PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin
...
@@ -42,7 +47,8 @@ RUN mkdir /opt/android-ndk-tmp && \
...
@@ -42,7 +47,8 @@ RUN mkdir /opt/android-ndk-tmp && \
wget -q https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip && \
wget -q https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip && \
unzip -q android-ndk-r14b-linux-x86_64.zip && \
unzip -q android-ndk-r14b-linux-x86_64.zip && \
mv android-ndk-r14b ${ANDROID_NDK_HOME} && \
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} && \
${ANDROID_NDK_HOME}/build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=${ANDROID_ARM_STANDALONE_TOOLCHAIN} && \
${ANDROID_NDK_HOME}/build/tools/make-standalone-toolchain.sh --arch=arm64 --platform=android-21 --install-dir=${ANDROID_ARM64_STANDALONE_TOOLCHAIN} && \
rm -rf /opt/android-ndk-tmp && \
rm -rf /opt/android-ndk-tmp && \
rm -rf ${ANDROID_NDK_HOME}
rm -rf ${ANDROID_NDK_HOME}
...
...
paddle/scripts/docker/build_android.sh
浏览文件 @
5ca41184
...
@@ -2,22 +2,55 @@
...
@@ -2,22 +2,55 @@
set
-xe
set
-xe
mkdir
-p
/paddle/build_android
mkdir
-p
/paddle/build_android
/
$ANDROID_ABI
cd
/paddle/build_android
cd
/paddle/build_android
/
$ANDROID_ABI
rm
-rf
/paddle/install 2>/dev/null
||
true
rm
-rf
/paddle/install 2>/dev/null
||
true
cmake
-DCMAKE_SYSTEM_NAME
=
Android
\
-DANDROID_STANDALONE_TOOLCHAIN
=
$ANDROID_STANDALONE_TOOLCHAIN
\
THIRD_PARTY_PATH
=
/paddle/third_party_android/
$ANDROID_ABI
-DANDROID_ABI
=
armeabi-v7a
\
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_NEON
=
ON
\
-DANDROID_ARM_MODE
=
ON
\
-DANDROID_ARM_MODE
=
ON
\
-DHOST_C_COMPILER
=
/usr/bin/gcc
\
-DHOST_C_COMPILER
=
/usr/bin/gcc
\
-DHOST_CXX_COMPILER
=
/usr/bin/g++
\
-DHOST_CXX_COMPILER
=
/usr/bin/g++
\
-DCMAKE_INSTALL_PREFIX
=
/paddle/install
\
-DCMAKE_INSTALL_PREFIX
=
/paddle/install
\
-DCMAKE_BUILD_TYPE
=
RelWithDebInfo
\
-DTHIRD_PARTY_PATH
=
$THIRD_PARTY_PATH
\
-DCMAKE_C_FLAGS_RELWITHDEBINFO
=
"-O3"
\
-DCMAKE_BUILD_TYPE
=
Release
\
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO
=
"-O3"
\
-DWITH_C_API
=
ON
\
-DWITH_SWIG_PY
=
OFF
\
/paddle
elif
[
$ANDROID_ABI
==
"arm64-v7a"
]
;
then
cmake
-DCMAKE_SYSTEM_NAME
=
Android
\
-DANDROID_STANDALONE_TOOLCHAIN
=
$ANDROID_ARM64_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_C_API
=
ON
\
-DWITH_SWIG_PY
=
OFF
\
-DWITH_SWIG_PY
=
OFF
\
..
/paddle
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
\
/paddle
else
echo
"Invalid ANDROID_ABI:
$ANDROID_ABI
"
fi
make
-j
`
nproc
`
make
-j
`
nproc
`
make
install
-j
`
nproc
`
make
install
-j
`
nproc
`
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录