1# Build matrix / environment variables are explained on: 2# http://about.travis-ci.org/docs/user/build-configuration/ 3# This file can be validated on: http://lint.travis-ci.org/ 4 5language: cpp 6dist: bionic 7osx_image: xcode12.5 8 9compiler: 10- gcc 11- clang 12os: 13- linux 14- osx 15 16env: 17- GLOG=1 SHARED_LIB=0 BUILD_TYPE=Debug 18- GLOG=1 SHARED_LIB=0 BUILD_TYPE=RelWithDebInfo 19- GLOG=0 SHARED_LIB=0 BUILD_TYPE=Debug 20- GLOG=0 SHARED_LIB=0 BUILD_TYPE=RelWithDebInfo 21- GLOG=0 SHARED_LIB=1 BUILD_TYPE=Debug 22- GLOG=0 SHARED_LIB=1 BUILD_TYPE=RelWithDebInfo 23 24addons: 25 apt: 26 sources: 27 - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main' 28 key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key' 29 - sourceline: 'ppa:ubuntu-toolchain-r/test' 30 packages: 31 - clang-12 32 - cmake 33 - gcc-11 34 - g++-11 35 - ninja-build 36 homebrew: 37 packages: 38 - cmake 39 - gcc@11 40 - llvm@12 41 - ninja 42 update: true 43 44install: 45# The following Homebrew packages aren't linked by default, and need to be 46# prepended to the path explicitly. 47- if [ "$TRAVIS_OS_NAME" = "osx" ]; then 48 export PATH="$(brew --prefix llvm)/bin:$PATH"; 49 fi 50# /usr/bin/gcc points to an older compiler on both Linux and macOS. 51- if [ "$CXX" = "g++" ]; then export CXX="g++-11" CC="gcc-11"; fi 52# /usr/bin/clang points to an older compiler on both Linux and macOS. 53# 54# Homebrew's llvm package doesn't ship a versioned clang++ binary, so the values 55# below don't work on macOS. Fortunately, the path change above makes the 56# default values (clang and clang++) resolve to the correct compiler on macOS. 57- if [ "$TRAVIS_OS_NAME" = "linux" ]; then 58 if [ "$CXX" = "clang++" ]; then export CXX="clang++-12" CC="clang-12"; fi; 59 fi 60- echo ${CC} 61- echo ${CXX} 62- ${CXX} --version 63- cmake --version 64 65before_script: 66- mkdir -p build && cd build 67- cmake .. -G Ninja -DCRC32C_USE_GLOG=$GLOG -DCMAKE_BUILD_TYPE=$BUILD_TYPE 68 -DBUILD_SHARED_LIBS=$SHARED_LIB -DCMAKE_INSTALL_PREFIX=$HOME/.local 69- cmake --build . 70- cd .. 71 72script: 73- build/crc32c_tests 74- build/crc32c_capi_tests 75- build/crc32c_bench 76- cd build && cmake --build . --target install 77