diff options
| author | Brent Cook <busterb@gmail.com> | 2019-01-08 10:25:57 -0600 |
|---|---|---|
| committer | Brent Cook <busterb@gmail.com> | 2019-01-08 10:25:57 -0600 |
| commit | 7f063e116a1d15a3522241788e766eaf48130dd6 (patch) | |
| tree | 63a106c78425a04ccfbd768c97c06b58027a7e88 | |
| parent | 4eb8da3e07717103fceadf7138a3f377ab1c5110 (diff) | |
| parent | c5fb18747e6dbd9d189c9962fbc3d214f2cce4e7 (diff) | |
| download | portable-7f063e116a1d15a3522241788e766eaf48130dd6.tar.gz portable-7f063e116a1d15a3522241788e766eaf48130dd6.tar.bz2 portable-7f063e116a1d15a3522241788e766eaf48130dd6.zip | |
Land #493, Add Android build for Travis-CI
| -rw-r--r-- | .travis.yml | 85 | ||||
| -rwxr-xr-x | scripts/travis | 61 |
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 | ||
| 41 | script: | 126 | script: |
| 42 | "./scripts/travis" | 127 | "./scripts/travis" |
diff --git a/scripts/travis b/scripts/travis index 3396479..3e794e7 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 | |||
| 99 | elif [ "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=$NAL .. | ||
| 152 | |||
| 153 | $NINJA -j 4 | ||
| 154 | |||
| 155 | echo "" | ||
| 156 | file apps/openssl/openssl | ||
| 157 | ) | ||
| 158 | done | ||
| 98 | fi | 159 | fi |
