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