Skip to content

Commit

Permalink
package/ci: build for Android on Travis CI.
Browse files Browse the repository at this point in the history
  • Loading branch information
mosra committed Sep 4, 2016
1 parent b511317 commit 6179270
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 12 deletions.
31 changes: 31 additions & 0 deletions package/ci/travis-android-arm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash
set -ev

git submodule update --init

# Build native corrade-rc
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$HOME/deps-native \
-DCMAKE_INSTALL_RPATH=$HOME/deps-native/lib \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INTERCONNECT=OFF \
-DWITH_PLUGINMANAGER=OFF \
-DWITH_TESTSUITE=OFF
make -j install
cd ..

# Crosscompile
mkdir build-android-arm && cd build-android-arm
ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r10e cmake .. \
-DCMAKE_TOOLCHAIN_FILE=../toolchains/generic/Android-ARM.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DBUILD_TESTS=ON
make -j

# Start simulator and run tests
echo no | android create avd --force -n test -t android-19 --abi armeabi-v7a
emulator -avd test -no-audio -no-window &
android-wait-for-emulator
CORRADE_TEST_COLOR=ON ctest -V
36 changes: 24 additions & 12 deletions package/ci/travis.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
# kate: indent-width 2;

language: cpp

matrix:
include:
- os: linux
- language: cpp
os: linux
compiler: gcc
env: TARGET=desktop
- os: osx
- language: cpp
os: osx
compiler: clang
env: TARGET=desktop
- os: osx
- language: cpp
os: osx
env: TARGET=ios-simulator
- os: osx
- language: cpp
os: osx
env: TARGET=emscripten
- language: android
os: linux
env: TARGET=android
android:
components:
- build-tools-19.0.0
- android-19
- sys-img-armeabi-v7a-android-19

addons:
apt:
Expand All @@ -33,25 +43,27 @@ notifications:
on_start: never

install:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then pip install --user cpp-coveralls; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then pip install --user cpp-coveralls; fi

- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX=g++-4.7; fi
# so the directory tests pass (and then some workaround for crazy filesystem issues)
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then mkdir -p ~/.config/autostart; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then mkdir -p ~/.local; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXXFLAGS="-DTRAVIS_CI_HAS_CRAZY_FILESYSTEM_ON_LINUX --coverage"; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then mkdir -p ~/.config/autostart; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then mkdir -p ~/.local; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then export CXXFLAGS="-DTRAVIS_CI_HAS_CRAZY_FILESYSTEM_ON_LINUX --coverage"; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "android" ]; then wget -nc http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin && chmod +x android-*.bin && ./android-*.bin -y | grep -v Extracting; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then gem install xcpretty; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then brew update && brew upgrade cmake; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "emscripten" ]; then brew install emscripten && export LLVM=/usr/local/opt/emscripten/libexec/llvm/bin && emcc; fi

script:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./package/ci/travis-desktop.sh; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then ./package/ci/travis-desktop.sh; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "android" ]; then ./package/ci/travis-android-arm.sh; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then ./package/ci/travis-desktop.sh; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then ./package/ci/travis-ios-simulator.sh; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "emscripten" ]; then ./package/ci/travis-emscripten.sh; fi
# Travis somehow is not able to gather all output, try to force it using this
- sync

after_success:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then coveralls --gcov /usr/bin/gcov-4.7 -i src/ -E "(.*/(Test)/.*|.*/Utility/rc.cpp)" --gcov-options '\-lp'; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then coveralls --gcov /usr/bin/gcov-4.7 -i src/ -E "(.*/(Test)/.*|.*/Utility/rc.cpp)" --gcov-options '\-lp'; fi

0 comments on commit 6179270

Please sign in to comment.