diff --git a/.travis.yml b/.travis.yml deleted file mode 120000 index bcbff3669f..0000000000 --- a/.travis.yml +++ /dev/null @@ -1 +0,0 @@ -package/ci/travis.yml \ No newline at end of file diff --git a/README.md b/README.md index 4becdc84a3..a8d02a212d 100644 --- a/README.md +++ b/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) diff --git a/doc/building.dox b/doc/building.dox index 03746ccc13..8e3c07c160 100644 --- a/doc/building.dox +++ b/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 diff --git a/doc/developers.dox b/doc/developers.dox index 5f0af2f547..1ee8362882 100644 --- a/doc/developers.dox +++ b/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 diff --git a/doc/platforms-html5.dox b/doc/platforms-html5.dox index 814e5014e8..5a2a7af247 100644 --- a/doc/platforms-html5.dox +++ b/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 diff --git a/doc/platforms-ios.dox b/doc/platforms-ios.dox index 5cbcf558d9..48dac5f466 100644 --- a/doc/platforms-ios.dox +++ b/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 */ } diff --git a/package/archlinux/PKGBUILD-coverage b/package/archlinux/PKGBUILD-coverage index 6a1fba0c93..f3e7b289a1 100644 --- a/package/archlinux/PKGBUILD-coverage +++ b/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 diff --git a/package/ci/appveyor-lcov.sh b/package/ci/appveyor-lcov.sh index bdc1b5696f..f0bf24f36f 100644 --- a/package/ci/appveyor-lcov.sh +++ b/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 diff --git a/package/ci/circleci.yml b/package/ci/circleci.yml index 812e80e2ce..f928e169cd 100644 --- a/package/ci/circleci.yml +++ b/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 diff --git a/package/ci/travis-android-gles.sh b/package/ci/travis-android-gles.sh deleted file mode 100755 index 8c501bc723..0000000000 --- a/package/ci/travis-android-gles.sh +++ /dev/null @@ -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 diff --git a/package/ci/travis-android-vulkan.sh b/package/ci/travis-android-vulkan.sh deleted file mode 100755 index ee268df637..0000000000 --- a/package/ci/travis-android-vulkan.sh +++ /dev/null @@ -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 diff --git a/package/ci/travis-ios-simulator.sh b/package/ci/travis-ios-simulator.sh deleted file mode 100755 index 53b6440835..0000000000 --- a/package/ci/travis-ios-simulator.sh +++ /dev/null @@ -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 diff --git a/package/ci/travis.yml b/package/ci/travis.yml deleted file mode 100644 index 798e8b3d92..0000000000 --- a/package/ci/travis.yml +++ /dev/null @@ -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 diff --git a/package/msys/magnum/PKGBUILD b/package/msys/magnum/PKGBUILD index 1c659195e0..a32f45f583 100644 --- a/package/msys/magnum/PKGBUILD +++ b/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')