diff options
Diffstat (limited to 'libs/raylib/.travis.yml')
-rw-r--r-- | libs/raylib/.travis.yml | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/libs/raylib/.travis.yml b/libs/raylib/.travis.yml new file mode 100644 index 0000000..ea31970 --- /dev/null +++ b/libs/raylib/.travis.yml @@ -0,0 +1,166 @@ +language: c +dist: trusty + +git: + depth: 3 + +# TODO we could use a 32 bit Docker container for running true 32-bit tests +services: + - docker + +matrix: + include: + - os: linux + env: ARCH=i386 + sudo: required + - os: linux + env: ARCH=amd64 INSTALL_GLFW=YES USE_EXTERNAL_GLFW=OFF + sudo: required + - os: linux + env: ARCH=amd64 INSTALL_GLFW=YES STATIC=OFF RELEASE=NO + sudo: required + - os: linux + env: WAYLAND=ON ARCH=amd64 RELEASE=NO + sudo: required + addons: + apt: + packages: + - libwayland-dev + - libxkbcommon-dev + - libegl1-mesa-dev + - os: osx + env: ARCH=universal + - os: osx + osx_image: xcode9.4 + env: ARCH=universal SHARED=OFF RELEASE=NO + - os: linux + env: ARCH=arm64-android RELEASE=NO + sudo: required + - os: linux + env: ARCH=arm32-android RELEASE=NO + sudo: required + - os: linux + env: ARCH=html5 RELEASE=NO + sudo: required + - os: windows + compiler: gcc + env: ARCH=i386 SHARED=OFF RELEASE=NO + +before_script: + +before_install: + - if [ -z "$USE_EXTERNAL_GLFW" ]; then export USE_EXTERNAL_GLFW=IF_POSSIBLE; fi + - if [ -z "$SHARED" ]; then export SHARED=ON ; fi + - if [ -z "$STATIC" ]; then export STATIC=ON ; fi + - if [[ "$INSTALL_GLFW" == "YES" && "$USE_EXTERNAL_GLFW" != "OFF" ]]; then + export DONT_TEST=1; + fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then + if [[ "$ARCH" == *-android ]]; then + export DONT_TEST=1; + export RAYLIB_PACKAGE_SUFFIX="-Android-arm64"; + wget https://dl.google.com/android/repository/android-ndk-r17-linux-x86_64.zip; + unzip -qq android-ndk*.zip; + if [[ "$ARCH" == arm64-* ]]; then + export RAYLIB_PACKAGE_SUFFIX="-Android-arm64"; + TOOLCHAIN_ARCH=arm64; + PREFIX=aarch64-linux-android-; + else + export RAYLIB_PACKAGE_SUFFIX="-Android-arm32"; + TOOLCHAIN_ARCH=arm; + PREFIX=arm-linux-androideabi-; + fi; + android-ndk*/build/tools/make_standalone_toolchain.py --arch $TOOLCHAIN_ARCH --api 21 --install-dir /tmp/android-toolchain; + export PATH=/tmp/android-toolchain/bin:$PATH; + export CC=${PREFIX}clang; + export CXX=${PREFIX}clang++; + export CMAKE_ARCH_ARGS='-DPLATFORM=Android'; + elif [ "$ARCH" == "html5" ]; then + export DONT_TEST=1; + export RAYLIB_PACKAGE_SUFFIX="-html5"; + docker run --privileged=true -dit --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash; + export CMAKE_ARCH_ARGS='-DPLATFORM=Web -DCMAKE_TOOLCHAIN_FILE=../cmake/emscripten.cmake'; + RUNNER='docker exec -it emscripten cmake -E chdir build'; + else + sudo apt-get install -y gcc-multilib + libasound2-dev:$ARCH + libxcursor-dev:$ARCH libxinerama-dev:$ARCH mesa-common-dev:$ARCH + libx11-dev:$ARCH libxrandr-dev:$ARCH libxrandr2:$ARCH libxi-dev:$ARCH + libgl1-mesa-dev:$ARCH libglu1-mesa-dev:$ARCH; + + if [ "$OPENAL" == "ON" ]; then sudo apt-get install -y libopenal-dev; fi; + if [ "$ARCH" == "i386" ]; then export CMAKE_ARCH_ARGS='-DCMAKE_C_FLAGS=-m32 -DCMAKE_SYSTEM_LIBRARY_PATH=/usr/lib/i386-linux-gnu -DSUPPORT_FILEFORMAT_FLAC=OFF'; fi; + + export RAYLIB_PACKAGE_SUFFIX="-Linux-$ARCH"; + if [ "$INSTALL_GLFW" == "YES" ]; then + pushd src/external/glfw; + cmake . -DGLFW_BUILD_DOCS=OFF + -DGLFW_BUILD_TESTS=OFF + -DGLFW_BUILD_EXAMPLES=OFF + -DGLFW_INSTALL=ON + -DBUILD_SHARED_LIBS=ON + -DGLFW_USE_WAYLAND=$WAYLAND; + make; + sudo make install; + popd; + fi; + fi; + fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then + export RAYLIB_PACKAGE_SUFFIX="-macOS"; + if [ "$INSTALL_GLFW" == "YES" ]; then brew update; brew install glfw; fi; + fi + - if [ "$TRAVIS_OS_NAME" == "windows" ]; then + export DONT_TEST=1; + export RAYLIB_PACKAGE_SUFFIX="-windows"; + export CMAKE_ARCH_ARGS='-DPLATFORM=Desktop'; + fi + - mkdir build + - $RUNNER $CC --version + +script: + - cd build + - if test -n "$WAYLAND"; then + wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/e/extra-cmake-modules/extra-cmake-modules_5.44.0-0ubuntu1_amd64.deb; + sudo apt-get clean; + sudo apt-get update; + sudo apt-get install dpkg; + sudo dpkg -i extra-cmake-modules_5.44.0-0ubuntu1_amd64.deb; + git clone git://anongit.freedesktop.org/wayland/wayland-protocols; + pushd wayland-protocols; + git checkout 1.15 && ./autogen.sh --prefix=/usr && make && sudo make install; + popd; + fi + - $RUNNER cmake $CMAKE_ARCH_ARGS + -DMACOS_FATLIB=ON + -DSTATIC=$STATIC -DSHARED=$SHARED + -DBUILD_EXAMPLES=ON -DBUILD_GAMES=ON + -DUSE_EXTERNAL_GLFW=$USE_EXTERNAL_GLFW + -DUSE_WAYLAND=$WAYLAND + -DINCLUDE_EVERYTHING=ON + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON + .. + - $RUNNER cmake --build . --target + - if [ "$RELEASE" != "NO" ]; then $RUNNER cmake --build . --target package; fi + - if [ -n "$RUNNER" ]; then + sudo $RUNNER cmake --build . --target install; + else + $(which sudo) $RUNNER "$(which cmake)" --build . --target install; + fi + - if [ ! "$DONT_TEST" ]; then + pkg-config --static --libs raylib; + nm -g release/libraylib.a | grep glfwGetProcAddress || (echo "libraylib.a doesn't contain GLFW symbols! Aborting..." && false); + ctest --output-on-failure; + fi + +deploy: + provider: releases + api_key: + secure: LvqUIAN/3dJul+Ra2iK3tSaNG5IwsNMmGIwVMy0DK5IBCxiQPBc9pWGiE30RTBPt6Z+N4BhMEE8DtUl+vnISlMoHWNIIhF2zwC66hs/F7zY7qEITMRSmfiLcqxQysknFOnJB06CATgXcFqlEo9j+t4abrG/f3qcb92J4O2uNz336Au2myTx93Q5MxbyA7KiUuEutFnb2dWiPCY4d+sGeXEfsiD2R7aj/8MaWOkoGdZVrTkI9juMgvpImkjQBArvqdjUMeT3MsRrwgOIq5v2GFV9dOl8k1WzPeT8B2JHh00ed/o1/wuFq/cLLOxtYo2+Pv3+xatOrlexoX0WkDm7C9/L1W5U4rLexU3CQ9mMBmHPnp6k/WXZ5QXEE4uUF0+LpN3XlIXzFpdZmZiVV8VLxg2WvyncMmivYiu7/MTkyfZxyKkzwl7sZZslzHA9kOGedGaN7b7/2B77OFHoQK8lKfdFml7jJnarh+89nenNZYMab0E8qkOJOyb2bYlDTa0/2nyxGiyymYgq6YHLNrDbhqB/1LzdgzjMliQ8ri5q9Ux2vjfcqOzhfAmcwFwnY/D6yXJWYi0DWpHZdpKl3du6dYDrypW91/yDWbwiJ/YhrE7ZunzrcB6GH/QkbuzWxdCth39rQAHih8DG01co/K3Gvi4yGjvIH5tFUpyEolMnpMiA= + file_glob: true + file: raylib-*.tar.gz + skip_cleanup: true + on: + repo: raysan5/raylib + branch: master + tags: true |