Commit8f469d97e2introduced SSSE3 fast paths that are gated by __SSE3__ macro checks and the <x86intrin.h> header, neither of which exists in Visual Studio. This commit adds logic for detecting SSSE3 compiler support that works for all compilers supported by the open source release. The commit also replaces the header with <tmmintrin.h>, which only defines intrinsics supported by SSSE3 and below. This should help flag any use of SIMD instructions that require more advanced SSE support, so the uses can be gated by checks that also work in the open source release. Last, this commit requires C++11 support for the open source build. This is needed by the alignas specifier, which was also introduced in commit8f469d97e2.
67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
# Build matrix / environment variables are explained on:
|
|
# http://about.travis-ci.org/docs/user/build-configuration/
|
|
# This file can be validated on: http://lint.travis-ci.org/
|
|
|
|
sudo: false
|
|
dist: trusty
|
|
language: cpp
|
|
|
|
compiler:
|
|
- gcc
|
|
- clang
|
|
os:
|
|
- linux
|
|
- osx
|
|
|
|
env:
|
|
- BUILD_TYPE=Debug
|
|
- BUILD_TYPE=RelWithDebInfo
|
|
|
|
matrix:
|
|
allow_failures:
|
|
- compiler: clang
|
|
env: BUILD_TYPE=RelWithDebInfo
|
|
|
|
addons:
|
|
apt:
|
|
# List of whitelisted in travis packages for ubuntu-trusty can be found here:
|
|
# https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-trusty
|
|
# List of whitelisted in travis apt-sources:
|
|
# https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-trusty-6.0
|
|
packages:
|
|
- cmake
|
|
- gcc-8
|
|
- g++-8
|
|
- clang-6.0
|
|
|
|
install:
|
|
# Travis doesn't have a DSL for installing homebrew packages yet. Status tracked
|
|
# in https://github.com/travis-ci/travis-ci/issues/5377
|
|
# The Travis VM image for Mac already has a link at /usr/local/include/c++,
|
|
# causing Homebrew's gcc@7 installation to error out. This was reported to
|
|
# Homebrew maintainers at https://github.com/Homebrew/brew/issues/1742 and
|
|
# removing the link emerged as a workaround.
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
brew update;
|
|
if [ -L /usr/local/include/c++ ]; then rm /usr/local/include/c++; fi;
|
|
brew install gcc@8;
|
|
fi
|
|
# /usr/bin/gcc is stuck to old versions on both Linux and OSX.
|
|
- if [ "$CXX" = "g++" ]; then export CXX="g++-8" CC="gcc-8"; fi
|
|
- echo ${CC}
|
|
- echo ${CXX}
|
|
- ${CXX} --version
|
|
- cmake --version
|
|
|
|
before_script:
|
|
- mkdir -p build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSNAPPY_REQUIRE_AVX=ON
|
|
- cmake --build .
|
|
- cd ..
|
|
|
|
script:
|
|
- build/snappy_unittest
|