Browse Source

Bye, Travis! You won't be missed.

The only leftover is the platform-specific info, which might still be
useful to derive info from for the non-shit CI providers.
pull/240/merge
Vladimír Vondruš 4 years ago
parent
commit
89e3c52dfa
  1. 1
      .travis.yml
  2. 1
      README.md
  3. 17
      doc/building.dox
  4. 4
      doc/developers.dox
  5. 2
      doc/platforms-html5.dox
  6. 2
      doc/platforms-ios.dox
  7. 3
      package/archlinux/PKGBUILD-coverage
  8. 2
      package/ci/appveyor-lcov.sh
  9. 3
      package/ci/circleci.yml
  10. 89
      package/ci/travis-android-gles.sh
  11. 113
      package/ci/travis-android-vulkan.sh
  12. 76
      package/ci/travis-ios-simulator.sh
  13. 330
      package/ci/travis.yml
  14. 8
      package/msys/magnum/PKGBUILD

1
.travis.yml

@ -1 +0,0 @@
package/ci/travis.yml

1
README.md

@ -8,7 +8,6 @@ commercial purposes.
[![Join the chat at https://gitter.im/mosra/magnum](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mosra/magnum?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://circleci.com/gh/mosra/magnum.svg?style=shield)](https://circleci.com/gh/mosra/magnum)
[![Build Status](https://travis-ci.com/mosra/magnum.svg?branch=master)](https://travis-ci.com/mosra/magnum)
[![Build Status](https://ci.appveyor.com/api/projects/status/5b477m034cfaskse/branch/master?svg=true)](https://ci.appveyor.com/project/mosra/magnum/branch/master)
[![Coverage Status](https://codecov.io/gh/mosra/magnum/branch/master/graph/badge.svg)](https://codecov.io/gh/mosra/magnum)
[![Hunter Package](https://img.shields.io/badge/hunter-magnum-lightgrey.svg)](https://hunter.readthedocs.io/en/latest/packages/pkg/magnum.html)

17
doc/building.dox

@ -1140,21 +1140,16 @@ more information.
@subsection building-ci-circleci CircleCI
In `package/ci/` there is a `circle.yml` file with Linux GCC 4.8, macOS, Linux
desktop GLES2/GLES3, Emscripten WebGL1/WebGL2, AddressSanitizer and
ThreadSanitizer configuration. Online at https://circleci.com/gh/mosra/magnum.
@subsection building-ci-travis Travis
In `package/ci/` there is a `travis.yml` file with iOS GLES2/GLES3, Emscripten
WebGL1/WebGL2 and Android GLES2/GLES3 configuration. Online at
https://travis-ci.com/mosra/magnum.
In `package/ci/` there is a `circle.yml` file with Linux GCC 4.8, Linux ARM64,
macOS, Linux desktop GLES2/GLES3, Emscripten WebGL1/WebGL2, AddressSanitizer,
ThreadSanitizer, Android x86 GLES2/GLES3/Vulkan and iOS x86_64 GLES3
configuration. Online at https://circleci.com/gh/mosra/magnum.
@subsection building-ci-appveyor AppVeyor
In `package/ci/` there is an `appveyor.yml` file with Windows desktop MSVC,
MinGW, Windows desktop GLES2/GLES3 and Windows RT GLES2/GLES3 configuration.
Online at https://ci.appveyor.com/project/mosra/magnum.
clang-cl, MinGW, Windows desktop GLES2/GLES3 and Windows RT GLES3
configuration. Online at https://ci.appveyor.com/project/mosra/magnum.
@subsection building-ci-coverage Codecov.io

4
doc/developers.dox

@ -113,7 +113,7 @@ required to follow them to the point.
- the `package/gentoo/` `*.ebuild` file
- the `package/homebrew/` `*.rb` file (watch out, Ruby!)
- all `package/ci/appveyor-*.bat` files (`^` is a line continuation)
- all `package/ci/travis-*.sh` files (@c \\ is a line continuation)
- all `package/ci/``*.sh` files (@c \\ is a line continuation)
12. If the library has dependencies:
- make sure they are mentioned in the library documentation
- make sure they are mentioned in building and CMake docs
@ -911,7 +911,7 @@ pointers on a class that needs them:
used now
- update building docs to say what version is required now
- add an entry to the dependencies section in `doc/changelog.dox`
- update `package/ci/travis.yml` to download a newer version, possibly
- update `package/ci/``*.yml` to download a newer version, possibly
removing 32-bit compat libraries
3. In case of a compiler:
- remove everything related to `CORRADE_GCCXY_COMPATIBILITY` of the old

2
doc/platforms-html5.dox

@ -33,7 +33,7 @@ namespace Magnum {
@m_footernavigation
@m_keywords{HTML5 Emscripten}
@todoc testing, gl tests, coverage, travis setup
@todoc testing, gl tests, coverage, ci setup
@todoc static plugins
The following guide explains basic workflow of using

2
doc/platforms-ios.dox

@ -161,7 +161,7 @@ Official Apple documentation:
@todoc alternatives - including *.a files manually in your xcode project
@todoc move stuff from Sdl2App
@todoc static plugins
@todoc travis setup
@todoc ci setup
*/
}

3
package/archlinux/PKGBUILD-coverage

@ -92,8 +92,7 @@ check() {
rm -rf coverage
mkdir coverage
# Keep in sync with package/ci/appveyor-lcov.sh, circleci.yml travis.yml,
# please
# Keep in sync with package/ci/appveyor-lcov.sh and circleci.yml, please
lcov --directory . --capture --output-file coverage.info
lcov --extract coverage.info "*/src/Magnum*/*" --output-file coverage.info > /dev/null
lcov --remove coverage.info "*/src/MagnumExternal/*" --output-file coverage.info > /dev/null

2
package/ci/appveyor-lcov.sh

@ -23,7 +23,7 @@ set -ev
wget https://github.com/linux-test-project/lcov/archive/v1.15.tar.gz
tar -xzf v1.15.tar.gz
# Keep in sync with PKBUILD-coverage and travis.yml, please
# Keep in sync with PKBUILD-coverage and circleci.yml, please
lcov-1.15/bin/lcov --gcov-tool /c/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin/gcov --directory . --capture --output-file coverage.info > /dev/null
lcov-1.15/bin/lcov --gcov-tool /c/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin/gcov --extract coverage.info "*/src/Magnum*/*" --output-file coverage.info > /dev/null
lcov-1.15/bin/lcov --gcov-tool /c/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin/gcov --remove coverage.info "*/src/MagnumExternal/*" --output-file coverage.info > /dev/null

3
package/ci/circleci.yml

@ -247,8 +247,7 @@ commands:
steps:
- run:
name: Collect code coverage
# Keep in sync with PKBUILD-coverage, travis.yml and appveyor-lcov.sh,
# please
# Keep in sync with PKBUILD-coverage and appveyor-lcov.sh, please
command: |
lcov $LCOV_EXTRA_OPTS --directory . --capture --output-file coverage.info > /dev/null
lcov $LCOV_EXTRA_OPTS --extract coverage.info "*/src/Magnum*/*" --output-file coverage.info > /dev/null

89
package/ci/travis-android-gles.sh

@ -1,89 +0,0 @@
#!/bin/bash
set -ev
# Corrade
git clone --depth 1 https://github.com/mosra/corrade.git
cd corrade
# Build native corrade-rc
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$HOME/deps-native \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INTERCONNECT=OFF \
-DWITH_PLUGINMANAGER=OFF \
-DWITH_TESTSUITE=OFF \
-DWITH_UTILITY=OFF \
-G Ninja
ninja install
cd ..
# Crosscompile Corrade
mkdir build-android-arm && cd build-android-arm
cmake .. \
-DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r16b \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=22 \
-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DWITH_INTERCONNECT=OFF \
-G Ninja
ninja install
cd ..
cd ..
# Generate debug keystore for APK signing
keytool -genkeypair -keystore $HOME/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -validity 10000 -dname CN=,OU=,O=,L=,S=,C=
# Crosscompile
mkdir build-android-arm && cd build-android-arm
cmake .. \
-DANDROID_SDK=/usr/local/android-sdk \
-DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r16b \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=22 \
-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_PREFIX_PATH=$HOME/deps \
-DCMAKE_FIND_ROOT_PATH=$HOME/deps \
-DCMAKE_BUILD_TYPE=Release \
-DTARGET_GLES2=$TARGET_GLES2 \
-DWITH_AUDIO=OFF \
-DWITH_VK=OFF \
-DWITH_ANDROIDAPPLICATION=ON \
-DWITH_EGLCONTEXT=ON \
-DWITH_ANYAUDIOIMPORTER=OFF \
-DWITH_ANYIMAGECONVERTER=ON \
-DWITH_ANYIMAGEIMPORTER=ON \
-DWITH_ANYSCENECONVERTER=ON \
-DWITH_ANYSCENEIMPORTER=ON \
-DWITH_ANYSHADERCONVERTER=ON \
-DWITH_MAGNUMFONT=ON \
-DWITH_MAGNUMFONTCONVERTER=ON \
-DWITH_OBJIMPORTER=ON \
-DWITH_TGAIMAGECONVERTER=ON \
-DWITH_TGAIMPORTER=ON \
-DWITH_WAVAUDIOIMPORTER=OFF \
-DWITH_GL_INFO=ON \
-DBUILD_TESTS=ON \
-DBUILD_GL_TESTS=ON \
-G Ninja
# Otherwise the job gets killed (probably because using too much memory)
ninja -j4
# Start simulator and run tests
echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
emulator -avd test -no-audio -no-window &
android-wait-for-emulator
CORRADE_TEST_COLOR=ON ctest -V -E "GLTest|GLBenchmark"
# Test install, after running the tests as for them it shouldn't be needed
ninja install

113
package/ci/travis-android-vulkan.sh

@ -1,113 +0,0 @@
#!/bin/bash
set -ev
# Corrade
git clone --depth 1 https://github.com/mosra/corrade.git
cd corrade
# Build native corrade-rc
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$HOME/deps-native \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INTERCONNECT=OFF \
-DWITH_PLUGINMANAGER=OFF \
-DWITH_TESTSUITE=OFF \
-DWITH_UTILITY=OFF \
-G Ninja
ninja install
cd ..
# Crosscompile Corrade
mkdir build-android-arm && cd build-android-arm
cmake .. \
-DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r16b \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=22 \
-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DWITH_INTERCONNECT=OFF \
-G Ninja
ninja install
cd ..
cd ..
# Generate debug keystore for APK signing
keytool -genkeypair -keystore $HOME/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -validity 10000 -dname CN=,OU=,O=,L=,S=,C=
# *Native* Vulkan requires Android 24, build-tools-25.0.2, android-24 and
# sys-img-armeabi-v7a-android-24 in android.components in the YML, but the
# fucking emulator never starts, which means we can't test shit:
# https://github.com/googlemaps/android-maps-utils/issues/371
# So don't even bother there, use some ass-old version that works, and link to
# our own library, which is the fastest Vulkan implementation IN THE WORLD.
$TRAVIS_BUILD_DIR/android-ndk-r16b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi --gcc-toolchain=$TRAVIS_BUILD_DIR/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot=$TRAVIS_BUILD_DIR/android-ndk-r16b/platforms/android-22/arch-arm -march=armv7-a -mthumb -mfpu=vfpv3-d16 -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=22 -fexceptions -frtti -O3 -DNDEBUG -Wl,--fix-cortex-a8 -fPIE -pie -Wl,--gc-sections -Wl,-z,nocopyreloc package/ci/libvulkan.cpp -std=c++11 -c -o vulkan.o
$TRAVIS_BUILD_DIR/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/arm-linux-androideabi/bin/ar rcs $HOME/libvulkan.a vulkan.o
$TRAVIS_BUILD_DIR/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/arm-linux-androideabi/bin/ranlib $HOME/libvulkan.a
# Crosscompile
mkdir build-android-arm && cd build-android-arm
cmake .. \
-DANDROID_SDK=/usr/local/android-sdk \
-DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r16b \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=22 \
-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DVulkan_LIBRARY=$HOME/libvulkan.a \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_PREFIX_PATH=$HOME/deps \
-DCMAKE_FIND_ROOT_PATH=$HOME/deps \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_AUDIO=OFF \
-DWITH_DEBUGTOOLS=OFF \
-DWITH_GL=OFF \
-DWITH_MESHTOOLS=OFF \
-DWITH_PRIMITIVES=OFF \
-DWITH_SCENEGRAPH=OFF \
-DWITH_SCENETOOLS=OFF \
-DWITH_SHADERS=OFF \
-DWITH_TEXT=OFF \
-DWITH_TEXTURETOOLS=OFF \
-DWITH_TRADE=ON \
-DWITH_VK=ON \
-DWITH_AL_INFO=OFF \
-DWITH_VK_INFO=ON \
-DWITH_GL_INFO=OFF \
-DWITH_ANYAUDIOIMPORTER=OFF \
-DWITH_ANYIMAGECONVERTER=OFF \
-DWITH_ANYIMAGEIMPORTER=OFF \
-DWITH_ANYSCENECONVERTER=OFF \
-DWITH_ANYSCENEIMPORTER=OFF \
-DWITH_MAGNUMFONT=OFF \
-DWITH_MAGNUMFONTCONVERTER=OFF \
-DWITH_OBJIMPORTER=OFF \
-DWITH_TGAIMAGECONVERTER=OFF \
-DWITH_TGAIMPORTER=OFF \
-DWITH_WAVAUDIOIMPORTER=OFF \
-DWITH_DISTANCEFIELDCONVERTER=OFF \
-DWITH_FONTCONVERTER=OFF \
-DWITH_IMAGECONVERTER=OFF \
-DWITH_SCENECONVERTER=OFF \
-DWITH_ANDROIDAPPLICATION=ON \
-DBUILD_TESTS=ON \
-DBUILD_GL_TESTS=OFF \
-DBUILD_VK_TESTS=ON \
-G Ninja
ninja
# Start simulator and run tests
echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
emulator -avd test -no-audio -no-window &
android-wait-for-emulator
CORRADE_TEST_COLOR=ON ctest -V -E VkTest
# Test install, after running the tests as for them it shouldn't be needed
ninja install

76
package/ci/travis-ios-simulator.sh

@ -1,76 +0,0 @@
#!/bin/bash
set -ev
git submodule update --init
# Corrade
git clone --depth 1 https://github.com/mosra/corrade.git
cd corrade
# Build native corrade-rc
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/deps-native \
-DWITH_INTERCONNECT=OFF \
-DWITH_PLUGINMANAGER=OFF \
-DWITH_TESTSUITE=OFF \
-DWITH_UTILITY=OFF \
-G Ninja
ninja install
cd ..
# Crosscompile Corrade
mkdir build-ios && cd build-ios
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=../../toolchains/generic/iOS.cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk \
-DCMAKE_OSX_ARCHITECTURES="x86_64" \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DBUILD_STATIC=ON \
-DTESTSUITE_TARGET_XCTEST=ON \
-DWITH_INTERCONNECT=OFF \
-G Xcode
set -o pipefail && cmake --build . --config Release --target install | xcpretty
cd ../..
# Crosscompile Magnum
mkdir build-ios && cd build-ios
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=../toolchains/generic/iOS.cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk \
-DCMAKE_OSX_ARCHITECTURES="x86_64" \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_PREFIX_PATH="$HOME/deps;$TRAVIS_BUILD_DIR/sdl2" \
-DTARGET_GLES2=$TARGET_GLES2 \
-DWITH_AUDIO=ON \
-DWITH_VK=OFF \
-DWITH_SDL2APPLICATION=ON \
-DWITH_WINDOWLESSIOSAPPLICATION=ON \
-DWITH_EGLCONTEXT=ON \
-DWITH_OPENGLTESTER=ON \
-DWITH_ANYAUDIOIMPORTER=ON \
-DWITH_ANYIMAGECONVERTER=ON \
-DWITH_ANYIMAGEIMPORTER=ON \
-DWITH_ANYSCENECONVERTER=ON \
-DWITH_ANYSCENEIMPORTER=ON \
-DWITH_ANYSHADERCONVERTER=ON \
-DWITH_MAGNUMFONT=ON \
-DWITH_MAGNUMFONTCONVERTER=ON \
-DWITH_OBJIMPORTER=ON \
-DWITH_TGAIMAGECONVERTER=ON \
-DWITH_TGAIMPORTER=ON \
-DWITH_WAVAUDIOIMPORTER=ON \
-DBUILD_STATIC=ON \
-DBUILD_TESTS=ON \
-DBUILD_GL_TESTS=ON \
-G Xcode
set -o pipefail && cmake --build . --config Release | xcpretty
# TODO: find a better way to avoid
# Library not loaded: /System/Library/Frameworks/OpenGLES.framework/OpenGLES
# error
DYLD_FALLBACK_LIBRARY_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/OpenGLES.framework/ DYLD_FALLBACK_FRAMEWORK_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks CORRADE_TEST_COLOR=ON ctest -V -C Release -E "GLTest|GLBenchmark"
# Test install, after running the tests as for them it shouldn't be needed
set -o pipefail && cmake --build . --config Release --target install | xcpretty

330
package/ci/travis.yml

@ -1,330 +0,0 @@
addons:
apt:
packages:
- libgl1-mesa-dev
- g++-4.8
- ninja-build
- lcov
- libsdl2-dev
- libglfw3-dev
- libopenal-dev
- libvulkan-dev
matrix:
# The commented-out jobs are currently handled on Circle CI
include:
#- language: cpp
#os: linux
#dist: xenial
#compiler: gcc
#env:
#- JOBID=linux-gl
#- TARGET=desktop
#- CMAKE_CXX_FLAGS="--coverage"
#- LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.8"
#- CONFIGURATION=Debug
#- language: cpp
#os: linux
#dist: xenial
#compiler: gcc
#env:
#- JOBID=linux-nondeprecated
#- TARGET=desktop
#- BUILD_DEPRECATED=OFF
#- CMAKE_CXX_FLAGS="-DCORRADE_NO_ASSERT"
#- CONFIGURATION=Release
#- language: cpp
#os: linux
#dist: xenial
#compiler: clang
#env:
#- JOBID=linux-sanitizers
#- TARGET=desktop-sanitizers
#- CMAKE_CXX_FLAGS=-fsanitize=address
#- CONFIGURATION=Debug
#addons:
#apt:
#sources:
#- llvm-toolchain-xenial
#packages:
#- libgl1-mesa-dev
#- ninja-build
#- clang-3.8
#- libsdl2-dev
#- libglfw3-dev
#- libopenal-dev
#- libvulkan-dev
#- language: cpp
#os: linux
#dist: xenial
#compiler: clang
#env:
#- JOBID=linux-threadsanitizer
#- TARGET=desktop-sanitizers
#- CMAKE_CXX_FLAGS=-fsanitize=thread
#- CONFIGURATION=Debug
#addons:
#apt:
#sources:
#- llvm-toolchain-xenial
#packages:
#- libgl1-mesa-dev
#- ninja-build
#- clang-3.8
#- libsdl2-dev
#- libglfw3-dev
#- libopenal-dev
#- libvulkan-dev
#- language: cpp
#os: linux
#dist: bionic
#compiler: gcc
#env:
#- JOBID=linux-vulkan
#- TARGET=desktop-vulkan
#- CMAKE_CXX_FLAGS="--coverage"
#addons:
#apt:
#packages:
#- ninja-build
#- lcov
#- libsdl2-dev
#- libglfw3-dev
#- libvulkan-dev
#- language: cpp
#os: linux
#dist: xenial
#compiler: gcc
#env:
#- JOBID=linux-static
#- TARGET=desktop
#- CMAKE_CXX_FLAGS="--coverage"
#- LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.8"
#- BUILD_STATIC=ON
#- CONFIGURATION=Debug
#- language: cpp
#os: linux
#dist: xenial
#compiler: gcc
#env:
#- JOBID=linux-gles2
#- TARGET=desktop-gles
#- TARGET_GLES2=ON
#- CMAKE_CXX_FLAGS="--coverage"
#- LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.8"
#addons:
#apt:
#packages:
#- libgl1-mesa-dev
#- g++-4.8
#- ninja-build
#- lcov
#- libsdl2-dev
#- libglfw3-dev
#- libopenal-dev
## We don't need Vulkan here
#- language: cpp
#os: linux
#dist: xenial
#compiler: gcc
#env:
#- JOBID=linux-gles3
#- TARGET=desktop-gles
#- TARGET_GLES2=OFF
#- CMAKE_CXX_FLAGS="--coverage"
#- LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.8"
#- language: cpp
#os: osx
## This is currently (Sep 2020) the Travis default, 9.3 didn't have
## molten-vk in (non-updated) Homebrew.
#osx_image: xcode9.4
#compiler: clang
#env:
#- JOBID=macos-gl
#- TARGET=desktop
#- CMAKE_CXX_FLAGS="--coverage"
#- CONFIGURATION=Debug
#- language: cpp
#os: osx
## See above
#osx_image: xcode9.4
#compiler: clang
#env:
#- JOBID=macos-static
#- TARGET=desktop
#- CMAKE_CXX_FLAGS="--coverage"
#- BUILD_STATIC=ON
#- CONFIGURATION=Debug
#- language: cpp
#os: osx
## SwiftShader is built on 10.15 and can't be used on older versions due to
## dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin
#osx_image: xcode11.6
#compiler: clang
#env:
#- JOBID=macos-vulkan
#- TARGET=desktop-vulkan
#- CMAKE_CXX_FLAGS="--coverage"
#- CONFIGURATION=Debug
- language: cpp
os: osx
osx_image: xcode7.3
env:
- JOBID=ios-gles2
- TARGET=ios-simulator
- TARGET_GLES2=ON
- language: cpp
os: osx
osx_image: xcode7.3
env:
- JOBID=ios-gles3
- TARGET=ios-simulator
- TARGET_GLES2=OFF
# TODO: these should be redone on Linux + Docker, like with Corrade
#- language: cpp
#os: osx
## Since August 1st, 2019, tests that iterate over 65536 elements
## (MathHalfTest, MathPackingTest and MathColorTest) are segfaulting on the
## xcode9.3 image. Using whatever image is the default instead.
##osx_image: xcode9.3
#env:
#- JOBID=emscripten-webgl1
#- TARGET=emscripten
#- TARGET_GLES2=ON
#- language: cpp
#os: osx
## Since August 1st, 2019, tests that iterate over 65536 elements
## (MathHalfTest, MathPackingTest and MathColorTest) are segfaulting on the
## xcode9.3 image. Using whatever image is the default instead.
##osx_image: xcode9.3
#env:
#- JOBID=emscripten-webgl2
#- TARGET=emscripten
#- TARGET_GLES2=OFF
- language: android
os: linux
# Setting xenial here will cause it to use 12.04, with GCC 4.6 and other
# prehistoric nightmares. So staying with 14.04 for the time being.
dist: trusty
env:
- JOBID=android-gles2
- TARGET=android-gles
- TARGET_GLES2=ON
addons:
apt:
packages:
- ninja-build
android:
components:
- build-tools-22.0.1
- android-22
- sys-img-armeabi-v7a-android-22
- language: android
os: linux
# Setting xenial here will cause it to use 12.04, with GCC 4.6 and other
# prehistoric nightmares. So staying with 14.04 for the time being.
dist: trusty
env:
- JOBID=android-gles3
- TARGET=android-gles
- TARGET_GLES2=OFF
addons:
apt:
packages:
- ninja-build
android:
components:
- build-tools-22.0.1
- android-22
- sys-img-armeabi-v7a-android-22
- language: android
os: linux
# Setting xenial here will cause it to use 12.04, with GCC 4.6 and other
# prehistoric nightmares. So staying with 14.04 for the time being.
dist: trusty
env:
- JOBID=android-vulkan
- TARGET=android-vulkan
addons:
apt:
packages:
- ninja-build
android:
components:
# Android API level 24 is the first with Vulkan support, but the crap
# emulator doesn't even start, so it's useless. See
# travis-android-vulkan.sh for how it's done instead.
- build-tools-22.0.1
- android-22
- sys-img-armeabi-v7a-android-22
cache:
directories:
- $HOME/sdl2
install:
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! "$TARGET" == "desktop-sanitizers" ] && [ ! "$TARGET" == "android-gles" ] && [ ! "$TARGET" == "android-vulkan" ] && [ ! "$TARGET" == "desktop-vulkan" ]; then export CXX=g++-4.8; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-sanitizers" ]; then export CXX=clang++-3.8; fi
- if [ "$BUILD_DEPRECATED" != "OFF" ]; then export BUILD_DEPRECATED=ON; fi
- if [ "$BUILD_STATIC" != "ON" ]; then export BUILD_STATIC=OFF; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && ( [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-sanitizers" ] ); then export PLATFORM_GL_API=GLX; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-gles" ]; then export PLATFORM_GL_API=EGL; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && ( [ "$TARGET" == "android-gles" ] || [ "$TARGET" == "android-vulkan" ] ); then wget -nc https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip && unzip -q android-*.zip; fi
# Download CMake 3.4.3 to ensure we're still compatible with it (Travis has
# 3.9 since December 2017). Also, the PATH setting can't be cached, so it's
# separate (bit me two times already). Android needs CMake 3.7, but
# https://gitlab.kitware.com/cmake/cmake/issues/17253 is fixed in 3.9.2, so
# grab that. FindVulkan is since 3.7, in that case just use the system package.
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! "$TARGET" == "desktop-vulkan" ] && [ ! "$TARGET" == "android-gles" ] && [ ! "$TARGET" == "android-vulkan" ] && [ ! -e "$HOME/cmake/bin" ]; then cd $HOME ; wget -nc --no-check-certificate https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz && mkdir -p cmake && cd cmake && tar --strip-components=1 -xzf ../cmake-3.4.3-Linux-x86_64.tar.gz && cd $TRAVIS_BUILD_DIR ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && ( [ "$TARGET" == "android-gles" ] || [ "$TARGET" == "android-vulkan" ] ) && [ ! -e "$HOME/cmake/bin" ]; then cd $HOME ; wget -nc --no-check-certificate https://cmake.org/files/v3.9/cmake-3.9.2-Linux-x86_64.tar.gz && mkdir -p cmake && cd cmake && tar --strip-components=1 -xzf ../cmake-3.9.2-Linux-x86_64.tar.gz && cd $TRAVIS_BUILD_DIR ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! "$TARGET" == "desktop-vulkan" ]; then export PATH=$HOME/cmake/bin:$PATH && cmake --version; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install lcov; 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 [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-sanitizers" ] || [ "$TARGET" == "desktop-gles" ]; then printf "[General]\ndrivers=null" > ~/.alsoftrc; fi
# SDL on macOS and iOS (cached)
- if [ "$TRAVIS_OS_NAME" == "osx" ] && ( [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-vulkan" ] ); then HOMEBREW_NO_AUTO_UPDATE=1 brew install sdl2; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then curl -O https://www.libsdl.org/release/SDL2-2.0.4.tar.gz && tar -xzvf SDL2-2.0.4.tar.gz && cd SDL2-2.0.4/Xcode-iOS/SDL && xcodebuild -sdk iphonesimulator9.3 | xcpretty && mkdir -p ../../../sdl2/lib && cp build/Release-iphonesimulator/libSDL2.a ../../../sdl2/lib && mkdir -p ../../../sdl2/include/SDL2 && cp -R ../../include/* ../../../sdl2/include/SDL2 && cd ../../..; fi
# GLFW (cached)
- if [ "$TRAVIS_OS_NAME" == "osx" ] && ( [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-vulkan" ] ); then HOMEBREW_NO_AUTO_UPDATE=1 brew install glfw; fi
# SwiftShader on Linux GLES (16.04) and Vulkan (18.04) (cached). Zip from
# https://github.com/mosra/magnum-ci/tree/swiftshader and self-hosted because
# GH Actions would make it too simple for people if you could just download the
# artifacts directly, right? RIGHT?
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-gles" ] && [ ! -e "$HOME/swiftshader/lib/libGLESv2.so" ]; then cd $HOME ; wget https://ci.magnum.graphics/swiftshader-gles-r5464.a6940c8e6e-ubuntu-16.04.zip && mkdir -p swiftshader && cd swiftshader && unzip ../swiftshader-gles-r5464.a6940c8e6e-ubuntu-16.04.zip && cd $TRAVIS_BUILD_DIR ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-vulkan" ] && [ ! -e "$HOME/swiftshader/lib/libvk_swiftshader.so" ]; then cd $HOME ; wget https://ci.magnum.graphics/swiftshader-vulkan-r5464.a6940c8e6e-ubuntu-18.04.zip && mkdir -p swiftshader && cd swiftshader && unzip ../swiftshader-vulkan-r5464.a6940c8e6e-ubuntu-18.04.zip && cd $TRAVIS_BUILD_DIR ; fi
# MoltenVk on macOS for the general desktop build (we just need to link against
# something as the tests aren't run anyway, desktop-vulkan uses Vulkan-Loader
# so this is an opportunity to test both)
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install molten-vk; fi
# SwiftShader on Mac, also self-hosted from GH Actions. We also need Vulkan
# loader there.
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop-vulkan" ] && [ ! -e "$HOME/swiftshader/lib/libvk_swiftshader.dylib" ]; then cd $HOME ; wget https://ci.magnum.graphics/swiftshader-r5464.a6940c8e6e-macos-10.15.zip && mkdir -p swiftshader && cd swiftshader && unzip ../swiftshader-r5464.a6940c8e6e-macos-10.15.zip && cd $TRAVIS_BUILD_DIR ; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop-vulkan" ] && [ ! -e "$HOME/vulkan-loader/lib/libvulkan.dylib" ]; then cd $HOME ; wget https://ci.magnum.graphics/vulkan-loader-1.2.153-macos-10.15.zip && mkdir -p vulkan-loader && cd vulkan-loader && unzip ../vulkan-loader-1.2.153-macos-10.15.zip && cd $TRAVIS_BUILD_DIR ; fi
script:
- if [ "$TRAVIS_OS_NAME" == "linux" ] && ( [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-sanitizers" ] ); then ./package/ci/travis-desktop.sh; fi
- if [ "$TARGET" == "desktop-vulkan" ]; then ./package/ci/travis-desktop-vulkan.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-gles" ]; then ./package/ci/travis-android-gles.sh; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "android-vulkan" ]; then ./package/ci/travis-android-vulkan.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
after_success:
# Keep in sync with PKBUILD-coverage, appveyor-lcov.sh and circleci.yml, please
- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --directory . --capture --output-file coverage.info > /dev/null; fi
- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --extract coverage.info "*/src/Magnum*/*" --output-file coverage.info > /dev/null; fi
- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --remove coverage.info "*/MagnumExternal/*" --output-file coverage.info > /dev/null; fi
- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --remove coverage.info "*/Test/*" --output-file coverage.info > /dev/null; fi
- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --remove coverage.info "*/build/src/*" --output-file coverage.info > /dev/null; fi
- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.info; fi

8
package/msys/magnum/PKGBUILD

@ -19,10 +19,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-corrade>=$pkgver"
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" 'git')
optdepends=("${MINGW_PACKAGE_PREFIX}-magnum-plugins: import and export features"
"${MINGW_PACKAGE_PREFIX}-magnum-integration: integrations with third-party math and physics libraries")
# The .tar.gz / .zip download contains symlinks (.travis.yml), making tar and
# unzip on Windows grumpy because dangling symlinks are created. Could be fixed
# by manually extracting everything except symlinks, but that's hard to
# maintain. Downloading a Git tag works.
# The .tar.gz / .zip download contains symlinks, making tar and unzip on
# Windows grumpy because dangling symlinks are created. Could be fixed by
# manually extracting everything except symlinks, but that's hard to maintain.
# Downloading a Git tag works.
source=("${_realname}-${pkgver}"::"git+https://github.com/mosra/magnum.git#tag=v$pkgver")
sha1sums=('SKIP')

Loading…
Cancel
Save