language: cpp services: - docker matrix: include: - os: linux compiler: gcc env: >- TRAVIS_OS_NAME=linux TRAVIS_COMPILER_NAME=gcc TRAVIS_BUILD_SYSTEM=autotools HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 - os: osx compiler: clang env: >- TRAVIS_OS_NAME=osx TRAVIS_COMPILER_NAME=clang TRAVIS_BUILD_SYSTEM=autotools HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 - os: linux compiler: gcc env: >- TRAVIS_OS_NAME=linux TRAVIS_COMPILER_NAME=gcc TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 - os: linux compiler: clang env: >- TRAVIS_OS_NAME=linux TRAVIS_COMPILER_NAME=clang TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 - os: linux dist: bionic compiler: gcc env: >- TRAVIS_OS_NAME=linux TRAVIS_COMPILER_NAME=gcc TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 HYPERROGUE_USE_ROGUEVIZ=1 - os: linux compiler: clang env: >- TRAVIS_OS_NAME=linux TRAVIS_COMPILER_NAME=clang TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 HYPERROGUE_USE_ROGUEVIZ=1 - os: osx compiler: clang env: >- TRAVIS_OS_NAME=osx TRAVIS_COMPILER_NAME=clang TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 - os: osx compiler: gcc env: >- TRAVIS_OS_NAME=osx TRAVIS_COMPILER_NAME=gcc TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 HYPERROGUE_USE_ROGUEVIZ=1 - os: osx compiler: clang env: >- TRAVIS_OS_NAME=osx TRAVIS_COMPILER_NAME=clang TRAVIS_BUILD_SYSTEM=Makefile HYPERROGUE_USE_GLEW=1 HYPERROGUE_USE_PNG=1 HYPERROGUE_USE_ROGUEVIZ=1 - os: linux env: >- TRAVIS_OS_NAME=linux TRAVIS_COMPILER_NAME=emscripten TRAVIS_BUILD_SYSTEM=emscripten before_install: - |- # Install SDL if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -qq sudo apt-get install -qq libsdl1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update brew install sdl sdl_gfx sdl_mixer sdl_ttf # work around https://stackoverflow.com/questions/51034399/ for now (cd /usr/local/include && ln -sf SDL/SDL.h) else exit 'Unsupported OS' fi - |- # Install GLEW if asked for if [[ "$HYPERROGUE_USE_GLEW" == "1" ]]; then if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq libglew-dev elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install glew else exit 'Unsupported OS' fi fi - |- # Install libpng if asked for if [[ "$HYPERROGUE_USE_PNG" == "1" ]]; then if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo 'libpng is installed by default' elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install libpng else exit 'Unsupported OS' fi fi - |- # Install autotools if asked for if [[ "$TRAVIS_USE_AUTOTOOLS" == "1" ]]; then if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo 'autotools is installed by default' elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install automake else exit 'Unsupported OS' fi fi script: - |- # Build hyperrogue. if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then autoreconf -vi ./configure CXXFLAGS="-W -Wall -Wextra -Werror -Wno-unused-parameter -Wno-maybe-uninitialized -Wno-unknown-warning-option" make elif [[ "$TRAVIS_BUILD_SYSTEM" == "Makefile" ]]; then make -f Makefile.simple elif [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then docker run --rm -v $(pwd):/src trzeci/emscripten make -f Makefile.simple emscripten else exit 'Unsupported build system' fi - |- # Test hyperrogue. if [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then ls -lAF hyper.html hyper.js hyper.wasm else ./hyperrogue --help fi - |- # Test "make dist". ("make distcheck" is expected to fail.) if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then make dist; fi - |- # Test "sudo make install". if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then sudo make install; fi