Add android build step
This commit is contained in:
parent
92f7a527f0
commit
b4a50767c6
3 changed files with 85 additions and 0 deletions
29
.travis.yml
29
.travis.yml
|
@ -51,3 +51,32 @@ matrix:
|
|||
script:
|
||||
- ./scripts/cargo_test.sh
|
||||
cache: cargo
|
||||
- language: rust
|
||||
dist: trusty
|
||||
rust: stable
|
||||
jdk:
|
||||
- oraclejdk8
|
||||
env:
|
||||
# Get revision number from https://dl.google.com/android/repository/repository2-1.xml
|
||||
# Look for the string 'sdk-tools-linux-'.
|
||||
- ANDROID_SDK_VERSION=4333796
|
||||
|
||||
before_install:
|
||||
- >
|
||||
PKG_OS="$TRAVIS_OS_NAME";
|
||||
export ANDROID_HOME="${HOME}/android-sdk";
|
||||
export PATH=$PATH:"${ANDROID_HOME}/tools/bin";
|
||||
mkdir $ANDROID_HOME
|
||||
install:
|
||||
# SDK Tools.
|
||||
- >
|
||||
curl -o sdk.zip "https://dl.google.com/android/repository/sdk-tools-${PKG_OS}-${ANDROID_SDK_VERSION}.zip" &&
|
||||
unzip -q sdk.zip -d $ANDROID_HOME; > /dev/null
|
||||
# Android SDK and NDK
|
||||
# Unfortunately we need to get rid of all output, otherwise it can easily fill up the 4 MB log limit
|
||||
- yes | sdkmanager --licenses > /dev/null
|
||||
- sdkmanager 'platform-tools' 'build-tools;27.0.0' 'platforms;android-27' 'ndk-bundle' > /dev/null
|
||||
script:
|
||||
- cd sdks/android/Mentat
|
||||
- ./gradlew --no-daemon clean :library:assemble :library:test :library:lint
|
||||
- cd ../../..
|
||||
|
|
11
cargo-config.toml.template
Executable file
11
cargo-config.toml.template
Executable file
|
@ -0,0 +1,11 @@
|
|||
[target.aarch64-linux-android]
|
||||
ar = "$PWD/NDK/arm64/bin/aarch64-linux-android-ar"
|
||||
linker = "$PWD/NDK/arm64/bin/aarch64-linux-android-clang"
|
||||
|
||||
[target.armv7-linux-androideabi]
|
||||
ar = "$PWD/NDK/arm/bin/arm-linux-androideabi-ar"
|
||||
linker = "$PWD/NDK/arm/bin/arm-linux-androideabi-clang"
|
||||
|
||||
[target.i686-linux-android]
|
||||
ar = "$PWD/NDK/x86/bin/i686-linux-android-ar"
|
||||
linker = "$PWD/NDK/x86/bin/i686-linux-android-clang"
|
45
scripts/create_standalone_ndk.sh
Executable file
45
scripts/create_standalone_ndk.sh
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
if [ -d NDK ]; then
|
||||
printf '\033[33;1mStandalone NDK already exists... Delete the NDK folder to make a new one.\033[0m\n\n'
|
||||
printf ' $ rm -rf NDK\n'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d "${ANDROID_SDK_ROOT-}" ]; then
|
||||
ANDROID_SDK_ROOT=/usr/local/share/android-sdk
|
||||
fi
|
||||
if [ ! -d "${ANDROID_HOME-}" ]; then
|
||||
ANDROID_HOME="$ANDROID_SDK_ROOT"
|
||||
fi
|
||||
if [ ! -d "${ANDROID_NDK_HOME-}" ]; then
|
||||
ANDROID_NDK_HOME="$ANDROID_HOME/ndk-bundle"
|
||||
fi
|
||||
MAKER="${ANDROID_NDK_HOME}/build/tools/make_standalone_toolchain.py"
|
||||
|
||||
if [ -x "$MAKER" ]; then
|
||||
echo 'Creating standalone NDK...'
|
||||
else
|
||||
printf '\033[91;1mPlease install Android NDK!\033[0m\n\n'
|
||||
printf ' $ sdkmanager ndk-bundle\n\n'
|
||||
printf "\033[33;1mnote\033[0m: file \033[34;4m$MAKER\033[0m not found.\n"
|
||||
printf 'If you have installed the NDK in non-standard location, please define the \033[1m$ANDROID_NDK_HOME\033[0m variable.\n'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir NDK
|
||||
|
||||
create_ndk() {
|
||||
echo "($1)..."
|
||||
"$MAKER" --api "$2" --arch "$1" --install-dir "NDK/$1"
|
||||
}
|
||||
|
||||
create_ndk arm64 24
|
||||
create_ndk arm 24
|
||||
create_ndk x86 24
|
||||
|
||||
echo 'Updating cargo-config.toml...'
|
||||
|
||||
sed 's|$PWD|'"${PWD}"'|g' cargo-config.toml.template > cargo-config.toml
|
Loading…
Reference in a new issue