-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
113 lines (100 loc) · 3.64 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
language: cpp
dist: trusty
env:
global:
#- MAKEFLAGS="-j 2"
cache:
directories:
- $HOME/.ccache
- $HOME/deps
addons:
apt:
update: true
sources: &default_sources
- ubuntu-toolchain-r-test
packages: &default_packages
- libhdf5-dev
matrix:
include:
- os: linux
compiler: gcc
env: CXX_NAME='g++-6'
addons: { apt: { packages: [*default_packages, g++-6, doxygen, graphviz], sources: [*default_sources]} }
- os: linux
compiler: gcc
env: CXX_NAME='g++-7'
addons: { apt: { packages: [*default_packages, g++-7], sources: [*default_sources]} }
- os: linux
compiler: gcc
env: CXX_NAME='g++-8'
addons: { apt: { packages: [*default_packages, g++-8], sources: [*default_sources]} }
- os: linux
compiler: clang
env: CXX_NAME='clang++-6.0'
addons: { apt: { packages: [*default_packages, clang-6.0], sources: [*default_sources, llvm-toolchain-trusty-6.0] } }
- os: osx
osx_image: xcode9.3
compiler: clang
env: CXX_NAME='clang++'
before_install:
# Check commit matches expected commit (because of Travis bug)
- if [[ "$TRAVIS_COMMIT" != "$(git rev-parse HEAD)" ]]; then echo "Commit $(git rev-parse HEAD) doesn't match expected commit $TRAVIS_COMMIT"; fi
- |
if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$CXX_NAME" == "clang++" ]]; then
brew install llvm
brew link --force --overwrite llvm
export CC=/usr/local/opt/llvm@6/bin/clang
export CXX=/usr/local/opt/llvm@6/bin/clang++
else
# This is required to override Travis's definitions of CC and CXX that lead to old Ubuntu-packaged compilers
export CXX="$CXX_NAME"
fi
install:
#--------- Linux
- |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
SWIGHOME=$HOME/deps/swig_3.0.12
if [[ -z "$(ls -A $SWIGHOME)" ]]; then
cd /tmp/;
curl -s -J -O -k -L 'https://sourceforge.net/projects/swig/files/swig/swig-3.0.12/swig-3.0.12.tar.gz/download'
tar xf swig-3.0.12.tar.gz > /dev/null 2>&1
cd swig-3.0.12 && ./configure --prefix $SWIGHOME
make && make install
cd $TRAVIS_BUILD_DIR
else
echo "Already have swig cache"
fi
export CMAKE_PREFIX_PATH=$SWIGHOME:$CMAKE_PREFIX_PATH
#--------- Linux - qt 5.10.1 from Stephan Beiner's ppa
sudo add-apt-repository ppa:beineri/opt-qt-5.10.1-trusty -y && sudo apt-get update -qq
sudo apt-get install -qq qt510base qt510charts-no-lgpl && source /opt/qt510/bin/qt510-env.sh
sudo ldconfig /opt/qt510/lib
export CMAKE_PREFIX_PATH=/opt/qt510/:$CMAKE_PREFIX_PATH
export LD_LIBRARY_PATH=/opt/qt510/lib/
fi
#--------- OSX
- |
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
brew upgrade python cmake
brew install ccache swig qt && brew link --force qt
sudo ln -s /usr/local/Cellar/qt/5.10.1/plugins /usr/local/plugins
sudo ln -s /usr/local/Cellar/qt/5.10.1/mkspecs/ /usr/local/mkspecs
export CMAKE_PREFIX_PATH=/usr/local/opt/qt5:$CMAKE_PREFIX_PATH
export LD_LIBRARY_PATH=/usr/local/opt/qt5/lib/
fi
#--------- All platforms
- |
sudo pip install cmake
export PATH=/usr/local/bin:$PATH # use version installed using pip
script:
# Output every 9m so the build doesn't get killed
- while sleep 9m; do echo "===== The build is still running ====="; done &
# Build stride and run tests
# CMAKE_BUILD_TYPE: enable assertions
# STRIDE_GENERATE_COVERAGE: enable coverage -- set in `matrix`
- |
if [ "$TRAVIS_BRANCH" = "master" -a "$COMMIT_DOCS" = "YES" ]; then
export STRIDE_INCLUDE_DOC=YES
fi
CMAKE_BUILD_TYPE=Debug make all
# - CMAKE_BUILD_TYPE=Debug make test