diff --git a/package/ci/travis-android-arm.sh b/package/ci/travis-android-arm.sh new file mode 100755 index 000000000..f3e696481 --- /dev/null +++ b/package/ci/travis-android-arm.sh @@ -0,0 +1,60 @@ +#!/bin/bash +set -ev + +git submodule update --init + +# Corrade +git clone --depth 1 git://github.com/mosra/corrade.git +cd corrade + +# 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 Corrade +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 \ + -DCMAKE_INSTALL_PREFIX=$HOME/deps \ + -DWITH_INTERCONNECT=OFF +make -j install +cd .. + +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 \ + -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \ + -DCMAKE_PREFIX_PATH=$HOME/deps \ + -DCMAKE_FIND_ROOT_PATH=$HOME/deps \ + -DCMAKE_BUILD_TYPE=Release \ + -DTARGET_GLES2=$TARGET_GLES2 \ + -DWITH_AUDIO=OFF \ + -DWITH_ANDROIDAPPLICATION=ON \ + -DWITH_EGLCONTEXT=ON \ + -DWITH_MAGNUMFONT=ON \ + -DWITH_MAGNUMFONTCONVERTER=ON \ + -DWITH_OBJIMPORTER=ON \ + -DWITH_TGAIMAGECONVERTER=ON \ + -DWITH_TGAIMPORTER=ON \ + -DWITH_WAVAUDIOIMPORTER=OFF \ + -DBUILD_TESTS=ON +make -j${JOBS_LIMIT} + +# 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 diff --git a/package/ci/travis.yml b/package/ci/travis.yml index 0d6a612d1..300f28778 100644 --- a/package/ci/travis.yml +++ b/package/ci/travis.yml @@ -1,16 +1,16 @@ # kate: indent-width 2; -language: cpp - matrix: include: - - os: linux + - language: cpp + os: linux compiler: gcc env: - TARGET=desktop # Otherwise the job gets killed (probably because using too much memory) - JOBS_LIMIT=4 - - os: linux + - language: cpp + os: linux compiler: gcc env: - TARGET=desktop-gles @@ -18,35 +18,65 @@ matrix: - JOBS_LIMIT=4 # Disabled because the Ubuntu 12.04 drivers are missing some ES3 entrypoints # Should be enabled after moving to 14.04 - #- os: linux + #- language: cpp + #os: linux #compiler: gcc #env: #- TARGET=desktop-gles #- TARGET_GLES2=OFF #- JOBS_LIMIT=4 - - os: osx + - language: cpp + os: osx compiler: clang env: TARGET=desktop - - os: osx + - language: cpp + os: osx osx_image: xcode7.3 env: - TARGET=ios-simulator - TARGET_GLES2=ON - - os: osx + - language: cpp + os: osx osx_image: xcode7.3 env: - TARGET=ios-simulator - TARGET_GLES2=OFF - - os: osx + - language: cpp + os: osx osx_image: xcode7.3 env: - TARGET=emscripten - TARGET_GLES2=ON - - os: osx + - language: cpp + os: osx osx_image: xcode7.3 env: - TARGET=emscripten - TARGET_GLES2=OFF + - language: android + os: linux + env: + - TARGET=android + - TARGET_GLES2=ON + # Otherwise the job gets killed (probably because using too much memory) + - JOBS_LIMIT=4 + android: + components: + - build-tools-19.0.0 + - android-19 + - sys-img-armeabi-v7a-android-19 + - language: android + os: linux + env: + - TARGET=android + - TARGET_GLES2=OFF + # Otherwise the job gets killed (probably because using too much memory) + - JOBS_LIMIT=4 + android: + components: + - build-tools-19.0.0 + - android-19 + - sys-img-armeabi-v7a-android-19 addons: apt: @@ -76,6 +106,7 @@ install: - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX=g++-4.7; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PLATFORM_GL_API=GLX; 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" ] && [ "$TARGET" == "desktop" ]; then export PLATFORM_GL_API=CGL; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then gem install xcpretty; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "emscripten" ]; then brew install emscripten && export LLVM=/usr/local/opt/emscripten/libexec/llvm/bin && emcc; fi @@ -93,6 +124,7 @@ install: script: - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then ./package/ci/travis-desktop.sh; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-gles" ]; then ./package/ci/travis-desktop-gles.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