mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-18 15:00:26 +00:00
194 lines
5.3 KiB
YAML
194 lines
5.3 KiB
YAML
language: cpp
|
|
dist: bionic
|
|
services:
|
|
- docker
|
|
matrix:
|
|
include:
|
|
- os: linux # Linux GCC, make
|
|
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 # Linux GCC, make, no libpng
|
|
compiler: gcc
|
|
env: >-
|
|
TRAVIS_OS_NAME=linux
|
|
TRAVIS_COMPILER_NAME=gcc
|
|
TRAVIS_BUILD_SYSTEM=Makefile
|
|
HYPERROGUE_USE_GLEW=1
|
|
HYPERROGUE_USE_PNG=0
|
|
- os: linux # Linux GCC, make, Rogueviz
|
|
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 # Linux Clang, make
|
|
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 # Linux Clang, make, Rogueviz
|
|
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 # OSX, make
|
|
osx_image: xcode12u
|
|
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 # OSX, make, no libpng
|
|
osx_image: xcode11.6
|
|
compiler: clang
|
|
env: >-
|
|
TRAVIS_OS_NAME=osx
|
|
TRAVIS_COMPILER_NAME=clang
|
|
TRAVIS_BUILD_SYSTEM=Makefile
|
|
HYPERROGUE_USE_GLEW=1
|
|
HYPERROGUE_USE_PNG=0
|
|
- os: osx # OSX, make, Rogueviz
|
|
osx_image: xcode11.5
|
|
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 # Linux GCC, mymake
|
|
compiler: gcc
|
|
env: >-
|
|
TRAVIS_OS_NAME=linux
|
|
TRAVIS_COMPILER_NAME=gcc
|
|
TRAVIS_BUILD_SYSTEM=mymake
|
|
HYPERROGUE_USE_GLEW=1
|
|
HYPERROGUE_USE_PNG=1
|
|
- os: linux # Linux GCC, mymake, Rogueviz
|
|
compiler: gcc
|
|
env: >-
|
|
TRAVIS_OS_NAME=linux
|
|
TRAVIS_COMPILER_NAME=gcc
|
|
TRAVIS_BUILD_SYSTEM=mymake
|
|
HYPERROGUE_USE_GLEW=1
|
|
HYPERROGUE_USE_PNG=1
|
|
HYPERROGUE_USE_ROGUEVIZ=1
|
|
- os: osx # OSX, mymake
|
|
osx_image: xcode11.4
|
|
compiler: clang
|
|
env: >-
|
|
TRAVIS_OS_NAME=osx
|
|
TRAVIS_COMPILER_NAME=clang
|
|
TRAVIS_BUILD_SYSTEM=mymake
|
|
HYPERROGUE_USE_GLEW=1
|
|
HYPERROGUE_USE_PNG=1
|
|
- os: osx # OSX, mymake, Rogueviz
|
|
osx_image: xcode11.3
|
|
compiler: clang
|
|
env: >-
|
|
TRAVIS_OS_NAME=osx
|
|
TRAVIS_COMPILER_NAME=clang
|
|
TRAVIS_BUILD_SYSTEM=mymake
|
|
HYPERROGUE_USE_GLEW=1
|
|
HYPERROGUE_USE_PNG=1
|
|
HYPERROGUE_USE_ROGUEVIZ=1
|
|
- os: linux # Emscripten
|
|
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
|
|
|
|
script:
|
|
- |-
|
|
make clean
|
|
if [[ "$(git status --porcelain)" ]]; then
|
|
git status
|
|
exit 'A build artifact was committed; git rm it and try again'
|
|
fi
|
|
- |-
|
|
# Build hyperrogue.
|
|
export CXXFLAGS_EARLY=-Werror
|
|
if [[ "$TRAVIS_BUILD_SYSTEM" == "Makefile" ]]; then
|
|
make
|
|
elif [[ "$TRAVIS_BUILD_SYSTEM" == "mymake" ]]; then
|
|
make mymake
|
|
if [[ "$HYPERROGUE_USE_ROGUEVIZ" == "1" ]]; then
|
|
./mymake -rv
|
|
else
|
|
./mymake
|
|
fi
|
|
mv hyper hyperrogue
|
|
elif [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then
|
|
docker run --rm -v $(pwd):/src trzeci/emscripten make 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
|
|
- |-
|
|
make clean
|
|
if [[ "$(git status --porcelain)" ]]; then
|
|
git status
|
|
exit 'make clean did not return the repository to its pre-build state'
|
|
fi
|