Add Android build for Travis-CI

This commit is contained in:
kinichiro 2019-01-05 16:22:24 +09:00
parent 779ec4dedc
commit 983c7fbd0d
2 changed files with 146 additions and 0 deletions

View File

@ -37,6 +37,91 @@ matrix:
env: ARCH=arm64 env: ARCH=arm64
dist: trusty dist: trusty
sudo: required sudo: required
- language: android
name: "Android 4.x"
env: ARCH=android MIN_NAL=14 MAX_NAL=20
dist: trusty
sudo: required
android:
components:
- tools
- tools
- platform-tools
- build-tools-27.0.3
- android-27
- extra-google-m2repository
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-.+'
- 'android-sdk-license-.+'
- language: android
name: "Android 5.x"
env: ARCH=android MIN_NAL=21 MAX_NAL=22
dist: trusty
sudo: required
android:
components:
- tools
- tools
- platform-tools
- build-tools-27.0.3
- android-27
- extra-google-m2repository
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-.+'
- 'android-sdk-license-.+'
- language: android
name: "Android 6.x 7.x"
env: ARCH=android MIN_NAL=23 MAX_NAL=25
dist: trusty
sudo: required
android:
components:
- tools
- tools
- platform-tools
- build-tools-27.0.3
- android-27
- extra-google-m2repository
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-.+'
- 'android-sdk-license-.+'
- language: android
name: "Android 8.x"
env: ARCH=android MIN_NAL=26 MAX_NAL=27
dist: trusty
sudo: required
android:
components:
- tools
- tools
- platform-tools
- build-tools-27.0.3
- android-27
- extra-google-m2repository
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-.+'
- 'android-sdk-license-.+'
- language: android
name: "Android 9.x"
env: ARCH=android MIN_NAL=28 MAX_NAL=28
dist: trusty
sudo: required
android:
components:
- tools
- tools
- platform-tools
- build-tools-27.0.3
- android-27
- extra-google-m2repository
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-.+'
- 'android-sdk-license-.+'
script: script:
"./scripts/travis" "./scripts/travis"

View File

@ -95,4 +95,65 @@ elif [ "x$ARCH" = "xarm32" -o "x$ARCH" = "xarm64" ]; then
make -j 4 check make -j 4 check
file apps/openssl/.libs/openssl file apps/openssl/.libs/openssl
elif [ "x$ARCH" = "xandroid" ]; then
echo y | sdkmanager 'ndk-bundle'
echo y | sdkmanager 'cmake;3.6.4111459'
echo y | sdkmanager 'lldb;3.0'
echo y | sdkmanager --update
echo y | sdkmanager --licenses
export CMAKE=$ANDROID_HOME/cmake/3.6.4111459/bin/cmake
export NINJA=$ANDROID_HOME/cmake/3.6.4111459/bin/ninja
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle
export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
# get available API level and architecture
pdir=$ANDROID_NDK_HOME/platforms
level_arch=""
level=$MIN_NAL
while [ $level -le $MAX_NAL ]
do
if [ -d $pdir/android-$level ] ; then
adir=$pdir/android-$level
if [ -d $adir/arch-arm ] ; then
level_arch="$level_arch $level;armeabi-v7a"
fi
if [ -d $adir/arch-arm64 ] ; then
level_arch="$level_arch $level;arm64-v8a"
fi
if [ -d $adir/arch-x86 ] ; then
level_arch="$level_arch $level;x86"
fi
if [ -d $adir/arch-x86_64 ] ; then
level_arch="$level_arch $level;x86_64"
fi
fi
level=`expr $level + 1`
done
# build each API level and architecture
for la in $level_arch
do
NAL=`echo $la | cut -d ';' -f 1`
ABI=`echo $la | cut -d ';' -f 2`
echo ""
echo "##### Date: `date`, Native API level: $NAL, ABI: $ABI"
(
build_dir=build_$NAL_$ABI
rm -fr $build_dir
mkdir $build_dir
cd $build_dir
$CMAKE -GNinja -DCMAKE_MAKE_PROGRAM=$NINJA \
-DANDROID_NDK=$ANDROID_NDK_HOME \
-DCMAKE_TOOLCHAIN_FILE=$TC_FILE \
-DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAPI ..
$NINJA -j 4
echo ""
file apps/openssl/openssl
)
done
fi fi