aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2019-01-05 16:22:24 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2019-01-05 18:10:59 +0900
commit983c7fbd0da0599fae405e3f6bd5657f1bd961a3 (patch)
treee302b35a6e91644ca66a92f47a431aa4d689e895
parent779ec4dedcc62204a4d2acecb528a24931313a3d (diff)
downloadportable-983c7fbd0da0599fae405e3f6bd5657f1bd961a3.tar.gz
portable-983c7fbd0da0599fae405e3f6bd5657f1bd961a3.tar.bz2
portable-983c7fbd0da0599fae405e3f6bd5657f1bd961a3.zip
Add Android build for Travis-CI
-rw-r--r--.travis.yml85
-rwxr-xr-xscripts/travis61
2 files changed, 146 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
index 72215d2..9b983bb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -37,6 +37,91 @@ matrix:
37 env: ARCH=arm64 37 env: ARCH=arm64
38 dist: trusty 38 dist: trusty
39 sudo: required 39 sudo: required
40 - language: android
41 name: "Android 4.x"
42 env: ARCH=android MIN_NAL=14 MAX_NAL=20
43 dist: trusty
44 sudo: required
45 android:
46 components:
47 - tools
48 - tools
49 - platform-tools
50 - build-tools-27.0.3
51 - android-27
52 - extra-google-m2repository
53 - extra-android-m2repository
54 licenses:
55 - 'android-sdk-preview-license-.+'
56 - 'android-sdk-license-.+'
57 - language: android
58 name: "Android 5.x"
59 env: ARCH=android MIN_NAL=21 MAX_NAL=22
60 dist: trusty
61 sudo: required
62 android:
63 components:
64 - tools
65 - tools
66 - platform-tools
67 - build-tools-27.0.3
68 - android-27
69 - extra-google-m2repository
70 - extra-android-m2repository
71 licenses:
72 - 'android-sdk-preview-license-.+'
73 - 'android-sdk-license-.+'
74 - language: android
75 name: "Android 6.x 7.x"
76 env: ARCH=android MIN_NAL=23 MAX_NAL=25
77 dist: trusty
78 sudo: required
79 android:
80 components:
81 - tools
82 - tools
83 - platform-tools
84 - build-tools-27.0.3
85 - android-27
86 - extra-google-m2repository
87 - extra-android-m2repository
88 licenses:
89 - 'android-sdk-preview-license-.+'
90 - 'android-sdk-license-.+'
91 - language: android
92 name: "Android 8.x"
93 env: ARCH=android MIN_NAL=26 MAX_NAL=27
94 dist: trusty
95 sudo: required
96 android:
97 components:
98 - tools
99 - tools
100 - platform-tools
101 - build-tools-27.0.3
102 - android-27
103 - extra-google-m2repository
104 - extra-android-m2repository
105 licenses:
106 - 'android-sdk-preview-license-.+'
107 - 'android-sdk-license-.+'
108 - language: android
109 name: "Android 9.x"
110 env: ARCH=android MIN_NAL=28 MAX_NAL=28
111 dist: trusty
112 sudo: required
113 android:
114 components:
115 - tools
116 - tools
117 - platform-tools
118 - build-tools-27.0.3
119 - android-27
120 - extra-google-m2repository
121 - extra-android-m2repository
122 licenses:
123 - 'android-sdk-preview-license-.+'
124 - 'android-sdk-license-.+'
40 125
41script: 126script:
42 "./scripts/travis" 127 "./scripts/travis"
diff --git a/scripts/travis b/scripts/travis
index 3396479..5553276 100755
--- a/scripts/travis
+++ b/scripts/travis
@@ -95,4 +95,65 @@ elif [ "x$ARCH" = "xarm32" -o "x$ARCH" = "xarm64" ]; then
95 95
96 make -j 4 check 96 make -j 4 check
97 file apps/openssl/.libs/openssl 97 file apps/openssl/.libs/openssl
98
99elif [ "x$ARCH" = "xandroid" ]; then
100 echo y | sdkmanager 'ndk-bundle'
101 echo y | sdkmanager 'cmake;3.6.4111459'
102 echo y | sdkmanager 'lldb;3.0'
103 echo y | sdkmanager --update
104 echo y | sdkmanager --licenses
105
106 export CMAKE=$ANDROID_HOME/cmake/3.6.4111459/bin/cmake
107 export NINJA=$ANDROID_HOME/cmake/3.6.4111459/bin/ninja
108 export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle
109 export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
110
111 # get available API level and architecture
112 pdir=$ANDROID_NDK_HOME/platforms
113 level_arch=""
114 level=$MIN_NAL
115 while [ $level -le $MAX_NAL ]
116 do
117 if [ -d $pdir/android-$level ] ; then
118 adir=$pdir/android-$level
119 if [ -d $adir/arch-arm ] ; then
120 level_arch="$level_arch $level;armeabi-v7a"
121 fi
122 if [ -d $adir/arch-arm64 ] ; then
123 level_arch="$level_arch $level;arm64-v8a"
124 fi
125 if [ -d $adir/arch-x86 ] ; then
126 level_arch="$level_arch $level;x86"
127 fi
128 if [ -d $adir/arch-x86_64 ] ; then
129 level_arch="$level_arch $level;x86_64"
130 fi
131 fi
132 level=`expr $level + 1`
133 done
134
135 # build each API level and architecture
136 for la in $level_arch
137 do
138 NAL=`echo $la | cut -d ';' -f 1`
139 ABI=`echo $la | cut -d ';' -f 2`
140 echo ""
141 echo "##### Date: `date`, Native API level: $NAL, ABI: $ABI"
142
143 (
144 build_dir=build_$NAL_$ABI
145 rm -fr $build_dir
146 mkdir $build_dir
147 cd $build_dir
148 $CMAKE -GNinja -DCMAKE_MAKE_PROGRAM=$NINJA \
149 -DANDROID_NDK=$ANDROID_NDK_HOME \
150 -DCMAKE_TOOLCHAIN_FILE=$TC_FILE \
151 -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAPI ..
152
153 $NINJA -j 4
154
155 echo ""
156 file apps/openssl/openssl
157 )
158 done
98fi 159fi