1language: cpp
2
3matrix:
4  include:
5    - os: osx
6      osx_image: xcode8
7      env:
8        - SANITIZER=
9    - os: osx
10      osx_image: xcode8
11      env:
12        - SANITIZER=-fsanitize=thread
13    - os: osx
14      osx_image: xcode9
15      env:
16        - SANITIZER=
17    - os: osx
18      osx_image: xcode9
19      env:
20        - SANITIZER=-fsanitize=thread
21    - os: linux
22    - os: linux
23      addons:
24        apt:
25          sources:
26            - ubuntu-toolchain-r-test
27          packages:
28            - g++-4.9
29      env:
30         - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
31         - SANITIZER=
32    - os: linux
33      addons:
34        apt:
35          sources:
36            - ubuntu-toolchain-r-test
37          packages:
38            - g++-5
39      env:
40         - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
41         - SANITIZER=
42    - os: linux
43      addons:
44        apt:
45          sources:
46            - ubuntu-toolchain-r-test
47          packages:
48            - g++-6
49      env:
50        - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
51        - SANITIZER=
52    - os: linux
53      addons:
54        apt:
55          sources:
56            - ubuntu-toolchain-r-test
57          packages:
58            - g++-7
59      env:
60        - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
61        - SANITIZER=
62
63before_install:
64    - eval "${MATRIX_EVAL}"
65
66before_script:
67  - mkdir build
68  - cd build
69  - cmake .. -DCMAKE_BUILD_TYPE=Debug
70             -DCMAKE_CXX_FLAGS=$SANITIZER
71             -DCMAKE_EXE_LINKER_FLAGS=$SANITIZER
72
73script:
74  - make
75  - ctest --output-on-failure
76