-
Notifications
You must be signed in to change notification settings - Fork 111
/
Copy path.travis.yml
143 lines (125 loc) · 3.91 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
dist: trusty
language: cpp
# sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json,
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-trusty
matrix:
include:
# Newest/oldest GCC
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-7' ]
env: BUILD_TYPE=MinSizeRel GXX=7 CXX_STD=17
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-7' ]
env: BUILD_TYPE=Release GXX=7 CXX_STD=17
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-4.8' ]
env: BUILD_TYPE=Release GXX=4.8
# Newest/oldest clang
- os: linux
compiler: clang
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-6.0' ]
packages: [ 'clang-6.0', 'libstdc++-7-dev', 'libstdc++6' ] # C++17 support in libstd++
env: BUILD_TYPE=MinSizeRel CLANGXX=6.0 CXX_STD=17
- os: linux
compiler: clang
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-6.0' ]
packages: [ 'clang-6.0', 'libstdc++-7-dev', 'libstdc++6' ] # C++17 support in libstd++
env: BUILD_TYPE=Release CLANGXX=6.0 CXX_STD=17
- os: linux
compiler: clang
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6' ]
packages: [ 'clang-3.6' ]
env: BUILD_TYPE=Release CLANGXX=3.6
# Other compiler versions
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-7' ]
env: BUILD_TYPE=Debug GXX=7
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-6' ]
env: BUILD_TYPE=MinSizeRel GXX=6 CXX_STD=14
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-5' ]
env: BUILD_TYPE=Release GXX=5
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-4.9' ]
env: BUILD_TYPE=MinSizeRel GXX=4.9
- os: linux
compiler: gcc
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-4.8' ]
env: BUILD_TYPE=Debug GXX=4.8
- os: linux
compiler: clang
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0' ]
packages: [ 'clang-5.0' ]
env: BUILD_TYPE=Release CLANGXX=5.0
- os: linux
compiler: clang
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-4.0' ]
packages: [ 'clang-4.0' ]
env: BUILD_TYPE=MinSizeRel CLANGXX=4.0
- os: linux
compiler: clang
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6' ]
packages: [ 'clang-3.6' ]
env: BUILD_TYPE=Debug CLANGXX=3.6 CXX_STD=14
# container-based builds
sudo: false
before_install:
- env
- export SRC_DIR="`pwd`"
- if [ "$CXX" = "g++" ]; then export CXX="g++-$GXX" CC="gcc-$GXX"; fi
- if [ "$CXX" = "clang++" ]; then export CXX="clang++-$CLANGXX" CC="clang-$CLANGXX"; fi
script:
- $CXX --version
- cmake --version
- mkdir "$TRAVIS_BUILD_DIR/build"
- cd "$TRAVIS_BUILD_DIR/build"
- pwd
- CXX_STD_ARG=""; if [ ! -z "${CXX_STD}" ]; then CXX_STD_ARG="-DCMAKE_CXX_STANDARD=${CXX_STD}"; fi
- cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${CXX_STD_ARG} "$SRC_DIR"
- make -j2 # cores according to https://docs.travis-ci.com/user/reference/overview/
- CTEST_OUTPUT_ON_FAILURE=1 make test
- test/benchmark_cppcodec