forked from Ableton/link
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
164 lines (145 loc) · 5.28 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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# Copyright (c) 2016 Ableton. All Rights Reserved.
language: cpp
sudo: required
dist: trusty
branches:
only:
- master
matrix:
include:
###########################################################################
# Build with the main configuration on all the supported compilers
###########################################################################
# Mac OS X / XCode 7.3, 64-bit Debug
- os: osx
env: WORDSIZE=64 CONFIGURATION=Debug
osx_image: xcode7.3
compiler: clang
# Mac OS X / XCode 7.3, 64-bit Release
- os: osx
env: WORDSIZE=64 CONFIGURATION=Release
osx_image: xcode7.3
compiler: clang
# Mac OS X / XCode 7.3, 32-bit Release
- os: osx
env: WORDSIZE=32 CONFIGURATION=Release
osx_image: xcode7.3
compiler: clang
# Mac OS X / XCode 9.0, 64-bit Debug
- os: osx
env: WORDSIZE=64 CONFIGURATION=Debug
osx_image: xcode9
compiler: clang
# Linux with Clang 3.6, 64-bit Debug, Alsa
- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['clang-3.6', 'g++-5', 'valgrind', 'portaudio19-dev']
env: COMPILER=clang++-3.6 WORDSIZE=64 CONFIGURATION=Debug AUDIO=Alsa
# Linux with Clang 3.6, 64-bit Release, Jack
- os: linux
compiler: clang
addons:
apt:
sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test']
packages: ['clang-3.8', 'g++-5', 'valgrind', 'portaudio19-dev']
env: COMPILER=clang++-3.8 WORDSIZE=64 CONFIGURATION=Release AUDIO=Jack
# Linux with Clang 5.0, 64-bit Debug, Alsa
- os: linux
compiler: clang
addons:
apt:
sources: ['llvm-toolchain-trusty-5.0', 'ubuntu-toolchain-r-test']
packages: ['clang-5.0', 'g++-5', 'valgrind', 'portaudio19-dev']
env: COMPILER=clang++-5.0 WORDSIZE=64 CONFIGURATION=Debug AUDIO=Alsa
# Linux with GCC 5.x, 32-bit Release
# - os: linux
# compiler: gcc
# addons:
# apt:
# sources: ['ubuntu-toolchain-r-test']
# packages: ['g++-5', 'g++-5-multilib', 'linux-libc-dev:i386', 'valgrind:i386',
# 'libxext-dev:i386', 'libglapi-mesa:i386',
# 'libgl1-mesa-glx:i386', 'libgl1-mesa-dev:i386',
# 'portaudio19-dev:i386', 'libglib2.0-0:i386']
# env: COMPILER=g++-5 WORDSIZE=32 CONFIGURATION=Release
# Linux with GCC 5.x, 64-bit Release, Alsa
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-5', 'valgrind', 'portaudio19-dev']
env: COMPILER=g++-5 WORDSIZE=64 CONFIGURATION=Release AUDIO=Alsa
# Linux with GCC 6.x, 64-bit Release, Alsa
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-6', 'valgrind', 'portaudio19-dev']
env: COMPILER=g++-6 WORDSIZE=64 CONFIGURATION=Release AUDIO=Alsa
# Code formatting verification
- os: linux
compiler: clang
env: CONFIGURATION=Formatting LLVM_VERSION=6.0
services:
- docker
before_install:
# Do indentation check
- |
if [ "$CONFIGURATION" = "Formatting" ]; then
docker pull dalg24/clang-format:18.04.0
docker run -v $TRAVIS_BUILD_DIR:/ws dalg24/clang-format python /ws/ci/check-formatting.py -c /usr/bin/clang-format-6.0
exit $?
fi
# Override Travis' CXX Flag
- CXX=$COMPILER
# Install homebrew packages for Mac OS X
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install ninja qt5; fi
# Install QT for Linux
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty
sudo apt-get -qy update
sudo apt-get -qy install qtdeclarative5-dev
fi
install:
- git submodule update --init --recursive
script:
- |
set -e
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
PATH=`brew --prefix qt5`/bin:${PATH}
if [ "$WORDSIZE" -eq 64 ]; then
python ci/configure.py --configuration $CONFIGURATION --generator Ninja --with-qt
else
python ci/configure.py --configuration $CONFIGURATION --generator Ninja --flags "\-DCMAKE_OSX_ARCHITECTURES=i386"
fi
python ci/build.py --configuration $CONFIGURATION --arguments "all -v"
else
if [ "$WORDSIZE" -eq 64 ]; then
PATH=$PWD/5.5/gcc_64:${PATH}
python ci/configure.py --configuration $CONFIGURATION --with-qt -a $AUDIO
else
PATH=$PWD/5.5/gcc:${PATH}
python ci/configure.py --configuration $CONFIGURATION -a $AUDIO --flags "\-DCMAKE_CXX_FLAGS=\"\-m32\""
fi
python ci/build.py --configuration $CONFIGURATION --arguments "VERBOSE=1 -j8"
fi
set +e
# Build Tests and run with Valgrind (Linux 64-bit only). Mac OSX supports
# valgrind via homebrew, but there is no bottle formula, so it must be
# compiled by brew and this takes way too much time on the build server.
- |
set -e
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
python ci/run-tests.py --target LinkCoreTest --valgrind
python ci/run-tests.py --target LinkDiscoveryTest --valgrind
else
python ci/run-tests.py --target LinkCoreTest
python ci/run-tests.py --target LinkDiscoveryTest
fi
set +e