File tree Expand file tree Collapse file tree 4 files changed +112
-10
lines changed
Expand file tree Collapse file tree 4 files changed +112
-10
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,24 @@ matrix:
7474 DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
7575 SKIP_TESTS=1
7676
77+ # Android use a local docker image
78+ - os : linux
79+ env : TARGET=arm-linux-androideabi
80+ DOCKER=android
81+ SKIP_TESTS=1
82+ - os : linux
83+ env : TARGET=armv7-linux-androideabi
84+ DOCKER=android
85+ SKIP_TESTS=1
86+ - os : linux
87+ env : TARGET=aarch64-linux-android
88+ DOCKER=android
89+ SKIP_TESTS=1
90+ - os : linux
91+ env : TARGET=i686-linux-android
92+ DOCKER=android
93+ SKIP_TESTS=1
94+
7795 # On OSX we want to target 10.7 so we ensure that the appropriate
7896 # environment variable is set to tell the linker what we want.
7997 - os : osx
@@ -101,16 +119,7 @@ install:
101119script :
102120 - mkdir target
103121 - if [ ! -z "$DOCKER" ]; then
104- docker run
105- --entrypoint bash
106- -u `id -u`:`id -g`
107- -v $HOME/rust:/travis-rust:ro
108- -v `pwd`:/buildslave:ro
109- -v `pwd`/target:/buildslave/target
110- -e TARGET=$TARGET
111- -e SKIP_TESTS=$SKIP_TESTS
112- -it $DOCKER
113- ci/run-docker.sh;
122+ sh ci/build-run-docker.sh "$DOCKER" "$TARGET" "$SKIP_TESTS";
114123 else
115124 PATH=$HOME/rust/bin:$PATH sh ci/run.sh;
116125 fi
Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+
3+ set -ex
4+
5+ mkdir -p target
6+
7+ DOCKER=" $1 "
8+ TARGET=" $2 "
9+ SKIP_TESTS=" $3 "
10+
11+ if [ -f " ci/docker/$DOCKER /Dockerfile" ]; then
12+ docker build -t " $DOCKER " " ci/docker/$DOCKER /"
13+ fi
14+
15+ docker run \
16+ --entrypoint bash \
17+ -u ` id -u` :` id -g` \
18+ -v $HOME /rust:/travis-rust:ro \
19+ -v ` pwd` :/buildslave:ro \
20+ -v ` pwd` /target:/buildslave/target \
21+ -e TARGET=$TARGET \
22+ -e SKIP_TESTS=$SKIP_TESTS \
23+ -it $DOCKER \
24+ ci/run-docker.sh
Original file line number Diff line number Diff line change 1+ FROM ubuntu:16.04
2+
3+ RUN apt-get update && \
4+ apt-get install -y --no-install-recommends \
5+ ca-certificates \
6+ cmake \
7+ curl \
8+ gcc \
9+ libc6-dev \
10+ make \
11+ pkg-config
12+
13+ RUN apt-get install -y --no-install-recommends \
14+ unzip \
15+ python && \
16+ curl -O https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip && \
17+ unzip -q android-ndk-r13b-linux-x86_64.zip && \
18+ ./android-ndk-r13b/build/tools/make_standalone_toolchain.py \
19+ --install-dir /android-ndk/arm \
20+ --arch arm \
21+ --api 21 && \
22+ ./android-ndk-r13b/build/tools/make_standalone_toolchain.py \
23+ --install-dir /android-ndk/arm64 \
24+ --arch arm64 \
25+ --api 21 && \
26+ ./android-ndk-r13b/build/tools/make_standalone_toolchain.py \
27+ --install-dir /android-ndk/x86 \
28+ --arch x86 \
29+ --api 21 && \
30+ rm -rf ./android-ndk-r13b-linux-x86_64.zip ./android-ndk-r13b && \
31+ apt-get purge --auto-remove -y unzip python
32+
33+ ENV PATH=$PATH:/android-ndk/arm/bin:/android-ndk/arm64/bin:/android-ndk/x86/bin
34+
35+ WORKDIR /buildslave
Original file line number Diff line number Diff line change 22
33set -ex
44
5+ # For some unknown reason libz is not found in the android docker image, so we
6+ # use this workaround
7+ case $TARGET in
8+ arm-linux-androideabi | armv7-linux-androideabi )
9+ export DEP_Z_ROOT=/android-ndk/arm/sysroot/usr/;;
10+
11+ aarch64-linux-android )
12+ export DEP_Z_ROOT=/android-ndk/arm64/sysroot/usr/;;
13+
14+ i686-linux-android )
15+ export DEP_Z_ROOT=/android-ndk/x86/sysroot/usr/;;
16+ esac
17+
518upper_target=$( echo $TARGET | tr ' [a-z]' ' [A-Z]' | tr ' -' ' _' )
619export PATH=/travis-rust/bin:$PATH
720export LD_LIBRARY_PATH=/travis-rust/lib:$LD_LIBRARY_PATH
@@ -34,6 +47,27 @@ case $TARGET in
3447 OPENSSL_SETARCH=' setarch i386'
3548 OPENSSL_CFLAGS=-m32
3649 ;;
50+ arm-linux-androideabi)
51+ OPENSSL_OS=android
52+ OPENSSL_CC=arm-linux-androideabi-gcc
53+ OPENSSL_AR=arm-linux-androideabi-ar
54+ ;;
55+ armv7-linux-androideabi)
56+ OPENSSL_OS=android-armv7
57+ OPENSSL_CC=arm-linux-androideabi-gcc
58+ OPENSSL_AR=arm-linux-androideabi-ar
59+ ;;
60+ aarch64-linux-android)
61+ OPENSSL_OS=linux-generic64
62+ OPENSSL_CC=aarch64-linux-android-gcc
63+ OPENSSL_AR=aarch64-linux-android-ar
64+ OPENSSL_CFLAGS=" -mandroid -fomit-frame-pointer"
65+ ;;
66+ i686-linux-android)
67+ OPENSSL_OS=android-x86
68+ OPENSSL_CC=i686-linux-android-gcc
69+ OPENSSL_AR=i686-linux-android-ar
70+ ;;
3771 arm-* -linux-gnueabi)
3872 OPENSSL_OS=linux-armv4
3973 OPENSSL_CC=arm-linux-gnueabi-gcc
You can’t perform that action at this time.
0 commit comments