diff --git a/package/ci/travis-emscripten.sh b/package/ci/travis-emscripten.sh new file mode 100755 index 000000000..bb8d26002 --- /dev/null +++ b/package/ci/travis-emscripten.sh @@ -0,0 +1,61 @@ +#!/bin/bash +set -ev + +git submodule update --init + +git clone --depth 1 git://github.com/mosra/corrade.git +cd corrade + +# Build native corrade-rc +mkdir build && cd build || exit /b +cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$HOME/deps-native \ + -DCMAKE_INSTALL_RPATH=$HOME/deps-native/lib \ + -DWITH_INTERCONNECT=OFF \ + -DWITH_PLUGINMANAGER=OFF \ + -DWITH_TESTSUITE=OFF +make -j install +cd .. + +# Crosscompile Corrade +mkdir build-emscripten && cd build-emscripten +cmake .. \ + -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \ + -DCMAKE_TOOLCHAIN_FILE="../../toolchains/generic/Emscripten.cmake" \ + -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \ + -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \ + -DCMAKE_INSTALL_PREFIX=$HOME/deps \ + -DWITH_INTERCONNECT=OFF +make -j install +cd .. + +cd .. + +# Crosscompile +mkdir build-emscripten && cd build-emscripten +cmake .. \ + -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \ + -DCMAKE_TOOLCHAIN_FILE="../toolchains/generic/Emscripten.cmake" \ + -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \ + -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \ + -DCMAKE_INSTALL_PREFIX=$HOME/deps \ + -DCMAKE_FIND_ROOT_PATH=$HOME/deps \ + -DWITH_AUDIO=OFF \ + -DWITH_SDL2APPLICATION=ON \ + -DWITH_MAGNUMFONT=ON \ + -DWITH_MAGNUMFONTCONVERTER=ON \ + -DWITH_OBJIMPORTER=ON \ + -DWITH_TGAIMAGECONVERTER=ON \ + -DWITH_TGAIMPORTER=ON \ + -DWITH_WAVAUDIOIMPORTER=OFF \ + -DBUILD_TESTS=ON \ + -DTARGET_GLES2=$TARGET_GLES2 +make -j4 + +# Test +CORRADE_TEST_COLOR=ON ctest -V diff --git a/package/ci/travis.yml b/package/ci/travis.yml index be4179143..2aff509ea 100644 --- a/package/ci/travis.yml +++ b/package/ci/travis.yml @@ -21,6 +21,14 @@ matrix: env: - TARGET=ios-simulator - TARGET_GLES2=OFF + - os: osx + env: + - TARGET=emscripten + - TARGET_GLES2=ON + - os: osx + env: + - TARGET=emscripten + - TARGET_GLES2=OFF addons: apt: @@ -52,6 +60,7 @@ install: - if [ "$TRAVIS_OS_NAME" == "osx" ]; 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" == "ios-simulator" ]; then 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 - if [ "$TARGET" == "desktop" ]; then printf "[General]\ndrivers=null" > ~/.alsoftrc; fi # SDL (cached) @@ -67,5 +76,6 @@ script: - if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./package/ci/travis-desktop.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