X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=.travis.yml;h=32dce2b6d917707c1acfa34d431e621ec050d419;hb=5abd86b14bb26d1882ee1c07b03f809f85162a5d;hp=f0ac2d7cdba966e3aa7fc6f4ee54db1a8a217278;hpb=f66e1204523415e8936c237ce9cc759e2185708f;p=openjpeg.git diff --git a/.travis.yml b/.travis.yml index f0ac2d7c..32dce2b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,32 +1,80 @@ -language: c +language: cpp matrix: include: +# OSX - os: osx compiler: clang env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 + +# Test code style - os: linux - compiler: gcc - env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 + compiler: clang-3.8 + env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_CHECK_STYLE=1 OPJ_CI_SKIP_TESTS=1 + addons: + apt: + sources: + - llvm-toolchain-precise-3.8 + - ubuntu-toolchain-r-test + packages: + - clang-3.8 + - flip + +# Performance test with GCC + - os: linux + compiler: g++ + dist: precise + env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 OPJ_CI_PERF_TESTS=1 + +# Test compilation with AVX2 + - os: linux + # "sudo: yes" and "dist: trusty" give us a worker with the AVX2 instruction set + sudo: yes + dist: trusty + compiler: clang-3.8 + env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_INSTRUCTION_SETS="-mavx2" OPJ_CI_BUILD_CONFIGURATION=Release + addons: + apt: + sources: + - llvm-toolchain-precise-3.8 + - ubuntu-toolchain-r-test + packages: + - clang-3.8 + +# Test multi-threading - os: linux - compiler: gcc + compiler: g++ + dist: precise env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2 + +# Test 32-bit compilation - os: linux - compiler: gcc + compiler: g++ env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release addons: apt: packages: - gcc-multilib + - g++-multilib + +# Profile code (gcc -pg) - os: linux - compiler: gcc - env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug + compiler: g++ + env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1 + addons: + apt: + packages: + - valgrind + +# Test under ASAN - os: linux compiler: clang env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_ASAN=1 + +# Test with CLang 3.8 - os: linux compiler: clang-3.8 - env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release + env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_PERF_TESTS=1 OPJ_CI_BUILD_FUZZERS=1 addons: apt: sources: @@ -34,35 +82,47 @@ matrix: - ubuntu-toolchain-r-test packages: - clang-3.8 + +# Test with mingw 32 bit - os: linux - compiler: x86_64-w64-mingw32-gcc - env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release + compiler: x86_64-w64-mingw32-g++ + env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release addons: apt: packages: - gcc-mingw-w64-base - - binutils-mingw-w64-x86-64 - - gcc-mingw-w64-x86-64 - - gcc-mingw-w64 + - binutils-mingw-w64-i686 + - gcc-mingw-w64-i686 + - gcc-mingw-w64 + - g++-mingw-w64-i686 + - gcc-multilib + - g++-multilib + +# Test with mingw 64 bit - os: linux - compiler: x86_64-w64-mingw32-gcc - env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release + compiler: x86_64-w64-mingw32-g++ + env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release addons: apt: packages: - gcc-mingw-w64-base - - binutils-mingw-w64-i686 - - gcc-mingw-w64-i686 - - gcc-mingw-w64 + - binutils-mingw-w64-x86-64 + - gcc-mingw-w64-x86-64 + - gcc-mingw-w64 + - g++-mingw-w64-x86-64 + +# Test with gcc 4.8 - os: linux - compiler: gcc-4.8 - env: OPJ_CI_ABI_CHECK=1 + compiler: g++-4.8 + env: OPJ_CI_CC=gcc-4.8 OPJ_CI_CXX=g++-4.8 OPJ_CI_ABI_CHECK=1 + dist: precise addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.8 + - g++-4.8 - libelf-dev - elfutils - texinfo