/
.travis.yml
151 lines (123 loc) · 6.2 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
# Mostly based on Eric Niebler's range-v3 one:
# https://github.com/ericniebler/range-v3/blob/master/.travis.yml
language: cpp
env:
global:
- SIPLASPLAS_GITHUB_USER="Manu343726"
- SIPLASPLAS_STANDARDESE_BUILD_TARGETS_FIRST=FALSE
- secure: "wshOJnwLiAH7JcJeF1CHww1Szg0XOtKj60qSGmLaoDjI23nBi5Bnra8WZGGqp//8hAhxGsavCxF+2Zwu2PHRMC/KZLmGKRcmJ9RZVLDM3K6pChEyZ11Bpmrhz0bd3TihV6houPGldjdLSnWOsPevQ8LaQUPJe4c92CBqDQAl+REsM/QjMqcTTnawcX589Z63bPD5oaJt1sXt4qOW73XwcFTrsxHZFbMulNN6Wui2jhcEoWla4PS5nfMpmE80jbnXH2l2iStJWb74OZfkgVzKuhI6Ahf6BBpoy/leqj5FLgbRQex0zILQ8GJq+vrZqVQ6M+dlHt4gGor/gp/oXt1o25JmE2mKtT3IfgS/u4TWQNwJpXwW+kjn/zKQyrs5A8XQs4kfSP//1Tm004YQ17JC+5crQ8SRl9/xVhrIFtKD6r6OfnqYOrxRKig5j2ExyGn+W8xwSfvgdIRq76mbRCsLSC5ekE/Anf+LCU7aSQLO+MZiAtnXFpnAqHyTw/oK/AUPuTufIVdDodzOG4bEx2FNlBTisO7VrEE/SwLuJ4WV4H9u5qCFigA06rExzH3YRBxBnCzIN08n43ciZ54VxXg41r/bjtFZKIpTHKtI3VkCjBKPieX8T1y+Axi9JkYB1KCpAKDm7tyUYpTVUX4VPopU6XWP8WLB67egunI0ch3Igro="
matrix:
include:
# Build docs
- env: BUILD_TYPE=Release DEPLOY_DOCS=true CLANG_VERSION=3.7 SIPLASPLAS_BUILD_DOCS=ON SIPLASPLAS_DEPLOY_DOCS=ON
os: linux
addons: &clang37
apt:
packages:
- clang-3.7
- g++-5 # We need an updated stdlibc++ for clang too
- gcc-5
- libboost1.55-all-dev # For Standardese
- valgrind
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- boost-latest
- env: BUILD_TYPE=Release CLANG_VERSION=3.7 GCC_VERSION=5.2.1 SIPLASPLAS_LIBRARIES_STATIC=FALSE
os: linux
addons: *clang37
# Debug, shared libraries
- env: BUILD_TYPE=Debug CLANG_VERSION=3.7 SIPLASPLAS_LIBRARIES_STATIC=FALSE
os: linux
addons: *clang37
- env: BUILD_TYPE=Debug CLANG_VERSION=3.7 GCC_VERSION=5.2.1 SIPLASPLAS_LIBRARIES_STATIC=FALSE
os: linux
addons: *clang37
# Release, static libraries
- env: BUILD_TYPE=Debug CLANG_VERSION=3.7 SIPLASPLAS_LIBRARIES_STATIC=TRUE
os: linux
addons: *clang37
- env: BUILD_TYPE=Debug CLANG_VERSION=3.7 GCC_VERSION=5.2.1 SIPLASPLAS_LIBRARIES_STATIC=TRUE
os: linux
addons: *clang37
# Debug, static libraries
- env: BUILD_TYPE=Debug CLANG_VERSION=3.7 SIPLASPLAS_LIBRARIES_STATIC=TRUE
os: linux
addons: *clang37
- env: BUILD_TYPE=Debug CLANG_VERSION=3.7 GCC_VERSION=5.2.1 SIPLASPLAS_LIBRARIES_STATIC=TRUE
os: linux
addons: *clang37
before_install:
- if [ "$DEPLOY_DOCS" == "true" ]; then git config --global user.name "siplasplas travis build docs job bot"; fi
- git submodule update --init --recursive
- if [ -n "$GCC_VERSION" ]; then export CXX="g++-5" CC="gcc-5"; fi
- if [ -z "$GCC_VERSION" ]; then export CXX="clang++-${CLANG_VERSION}" CC="clang-${CLANG_VERSION}"; fi
- which $CXX
- which $CC
- $CXX --version
- $CC --version
- if [ -z "$GCC_VERSION" ]; then which clang++ || true; fi
- |
if [ "$DEPLOY_DOCS" == "true" ]; then
export SIPLASPLAS_BUILD_DOCS=ON SIPLASPLAS_DEPLOY_DOCS=ON
else
export SIPLASPLAS_BUILD_DOCS=OFF SIPLASPLAS_DEPLOY_DOCS=OFF
fi
install:
# From Louis Dionne's Boost.Hana .travis.yml
############################################################################
# All the dependencies are installed in ${TRAVIS_BUILD_DIR}/deps/
############################################################################
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- mkdir ${DEPS_DIR} && cd ${DEPS_DIR}
############################################################################
# Install a recent Doxygen
############################################################################
- |
if [ "$DEPLOY_DOCS" == "true" ]; then
DOXYGEN_URL="http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.11.linux.bin.tar.gz"
mkdir doxygen && travis_retry wget --quiet -O - ${DOXYGEN_URL} | tar --strip-components=1 -xz -C doxygen
export PATH=${DEPS_DIR}/doxygen/bin:${PATH}
fi
############################################################################
# Install a recent CMake
############################################################################
- CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz"
- mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
- export PATH=${DEPS_DIR}/cmake/bin:${PATH}
- cmake --version
############################################################################
# Install conan.io package manager
############################################################################
- pip install --user conan && export PATH=$PATH:$HOME/.local/bin
# Finished building deps
- cd ${TRAVIS_BUILD_DIR}
# Configure and build project:
- if [ ! -d build ]; then mkdir build; fi
- cd build
- cmake .. -DSIPLASPLAS_ENABLE_VALGRIND=ON
-DSIPLASPLAS_ENABLE_ASSERTS=ON
-DSIPLASPLAS_BUILD_TESTS=ON
-DSIPLASPLAS_BUILD_EXAMPLES=ON
-DSIPLASPLAS_CI_BUILD=ON
-DCMAKE_VERBOSE_MAKEFILE=OFF
-DSIPLASPLAS_DUMP_ERRORS=ON
-DBII_BOOST_VERBOSE=ON
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
-DSIPLASPLAS_CLANGXX="$(which clang++-${CLANG_VERSION})"
-DSIPLASPLAS_LIBCLANG_VERSION="${CLANG_VERSION}.0"
-DSIPLASPLAS_DOWNLOAD_LIBCLANG=TRUE
-DSIPLASPLAS_CHECK_LIBCLANG_HEADERS=ON
-DSIPLASPLAS_BUILD_DOCS="$SIPLASPLAS_BUILD_DOCS"
-DSIPLASPLAS_STANDARDESE_BUILD_TARGETS_FIRST="$SIPLASPLAS_STANDARDESE_BUILD_TARGETS_FIRST"
-DSIPLASPLAS_DEPLOY_DOCS="$SIPLASPLAS_DEPLOY_DOCS"
-DSIPLASPLAS_DEPLOY_STANDARDESE_DOCS=ON
-DSIPLASPLAS_LIBRARIES_STATIC="$SIPLASPLAS_LIBRARIES_STATIC"
-DSIPLASPLAS_GIT_BRANCH="$TRAVIS_BRANCH"
-DSIPLASPLAS_GITHUB_USER="$SIPLASPLAS_GITHUB_USER"
-DSIPLASPLAS_GITHUB_USER_TOKEN="$SIPLASPLAS_GITHUB_USER_TOKEN"
- if [ "$DEPLOY_DOCS" != "true" ]; then cmake --build .; fi
script:
- if [ "$DEPLOY_DOCS" != "true" ]; then make run-tests-all; fi
- if [ "$DEPLOY_DOCS" != "true" ]; then make run-examples-all; fi
- if [ "$DEPLOY_DOCS" == "true" -a "${TRAVIS_PULL_REQUEST}" == "false" ]; then cmake --build . --target deploy-docs; fi