language: cpp os: - linux - osx dist: trusty sudo: required # OS X only supports one image. Use the latest. osx_image: xcode9.1 git: depth: 3 compiler: - clang - gcc env: global: - BUILD_JOBS=2 - ANDROID_HOME=$HOME/android/sdk - ANDROID_NDK=$HOME/android/sdk/ndk-bundle - ANDROID_SDK_ROOT=$ANDROID_HOME - ANDROID_NDK_ROOT=$ANDROID_NDK matrix: - BUILD_MODE="all" - BUILD_MODE="native" - BUILD_MODE="no-asm" - BUILD_MODE="debug" - BUILD_MODE="asan" - BUILD_MODE="ubsan" - BUILD_MODE="ios-arm" - BUILD_MODE="ios-arm64" - BUILD_MODE="ios-watch" - BUILD_MODE="ios-tv" matrix: exclude: # Skip GCC on OS X entirely - os: osx compiler: gcc # Skip UBsan due to GCC 4.8 - os: linux compiler: gcc env: BUILD_MODE="ubsan" # Skip UBsan due to Clang 3.4 - os: osx compiler: clang env: BUILD_MODE="ubsan" # No iOS builds on Linux - os: linux env: BUILD_MODE="ios-arm" - os: linux env: BUILD_MODE="ios-arm64" - os: linux env: BUILD_MODE="ios-watch" - os: linux env: BUILD_MODE="ios-tv" include: - os: linux env: - BUILD_MODE=android - PLATFORM=armeabi - os: linux env: - BUILD_MODE=android - PLATFORM=armeabi-v7a - os: linux env: - BUILD_MODE=android - PLATFORM=armv7a-neon - os: linux env: - BUILD_MODE=android - PLATFORM=aarch64 - os: linux env: - BUILD_MODE=android - PLATFORM=mipsel - os: linux env: - BUILD_MODE=android - PLATFORM=mipsel64 - os: linux env: - BUILD_MODE=android - PLATFORM=x86 - os: linux env: - BUILD_MODE=android - PLATFORM=x86_64 allow_failures: - os: osx env: BUILD_MODE="ios-watch" before_install: - | if [[ "$BUILD_MODE" == "android" ]]; then TestScripts/install-android.sh fi script: - | if [[ "$BUILD_MODE" == "ios-arm" ]]; then cp ./TestScripts/setenv-ios.sh . . ./setenv-ios.sh arm make -f GNUmakefile-cross -j "$BUILD_JOBS" elif [[ "$BUILD_MODE" == "ios-arm64" ]]; then cp ./TestScripts/setenv-ios.sh . . ./setenv-ios.sh arm64 -j "$BUILD_JOBS" make -f GNUmakefile-cross elif [[ "$BUILD_MODE" == "ios-watch" ]]; then cp ./TestScripts/setenv-ios.sh . . ./setenv-ios.sh watch make -f GNUmakefile-cross -j "$BUILD_JOBS" elif [[ "$BUILD_MODE" == "ios-tv" ]]; then cp ./TestScripts/setenv-ios.sh . . ./setenv-ios.sh tv make -f GNUmakefile-cross -j "$BUILD_JOBS" elif [[ "$BUILD_MODE" == "android" ]]; then cp ./TestScripts/setenv-android.sh . TestScripts/cryptest-android.sh elif [[ "$BUILD_MODE" == "debug" ]]; then CXXFLAGS="-DDEBUG -g2 -O1" make -j "$BUILD_JOBS" ./cryptest.exe v ./cryptest.exe tv all else make "$BUILD_MODE" -j "$BUILD_JOBS" ./cryptest.exe v ./cryptest.exe tv all fi # whitelist branches to avoid testing feature branches twice branches: only: - master addons: sonarcloud: true coverity_scan: project: name: "cryptopp" build_command: "make -j 2" notifications: email: recipients: - cryptopp-build@googlegroups.com on_success: always # default: change on_failure: always # default: always