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:
74
74
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
75
75
SKIP_TESTS=1
76
76
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
+
77
95
# On OSX we want to target 10.7 so we ensure that the appropriate
78
96
# environment variable is set to tell the linker what we want.
79
97
- os : osx
@@ -101,16 +119,7 @@ install:
101
119
script :
102
120
- mkdir target
103
121
- 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";
114
123
else
115
124
PATH=$HOME/rust/bin:$PATH sh ci/run.sh;
116
125
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 2
2
3
3
set -ex
4
4
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
+
5
18
upper_target=$( echo $TARGET | tr ' [a-z]' ' [A-Z]' | tr ' -' ' _' )
6
19
export PATH=/travis-rust/bin:$PATH
7
20
export LD_LIBRARY_PATH=/travis-rust/lib:$LD_LIBRARY_PATH
@@ -34,6 +47,27 @@ case $TARGET in
34
47
OPENSSL_SETARCH=' setarch i386'
35
48
OPENSSL_CFLAGS=-m32
36
49
;;
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
+ ;;
37
71
arm-* -linux-gnueabi)
38
72
OPENSSL_OS=linux-armv4
39
73
OPENSSL_CC=arm-linux-gnueabi-gcc
You can’t perform that action at this time.
0 commit comments