forked from cpp-netlib/url
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
140 lines (129 loc) · 3.7 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
sudo: false
language: c++
dist: bionic
compiler:
- gcc
- clang
os:
- linux
env:
global:
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps_"
- INSTALL_DIR="${TRAVIS_BUILD_DIR}/install"
jobs:
- SHARED_LIB=OFF BUILD_TYPE=Debug
- SHARED_LIB=OFF BUILD_TYPE=Release
addons:
apt:
sources:
- sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- clang-9
- cmake
- gcc-9
- g++-9
- ninja-build
homebrew:
packages:
- cmake
- gcc@9
- llvm@9
- ninja
update: true
matrix:
include:
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" SHARED_LIB=OFF BUILD_TYPE=Debug
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" SHARED_LIB=OFF BUILD_TYPE=Release
before_install:
- eval "${MATRIX_EVAL}"
- echo ${DEPS_DIR}
- mkdir -p ${DEPS_DIR}
- pushd ${DEPS_DIR}
- echo ${TRAVIS_OS_NAME}
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v3.14.0/cmake-3.14.0-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}
which ninja || sudo apt-get install ninja-build
elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
which cmake || brew install cmake
which ninja || brew install ninja
fi
- popd
- echo ${INSTALL_DIR}
- mkdir -p ${INSTALL_DIR}
- echo ${CXX}
- ${CXX} --version
install:
# The following Homebrew packages aren't linked by default, and need to be
# prepended to the path explicitly.
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
export PATH="$(brew --prefix llvm)/bin:$PATH";
fi
# /usr/bin/gcc points to an older compiler on both Linux and macOS.
- if [ "$CXX" = "g++" ]; then export CXX="g++-9" CC="gcc-9"; fi
# /usr/bin/clang points to an older compiler on both Linux and macOS.
#
# Homebrew's llvm package doesn't ship a versioned clang++ binary, so the values
# below don't work on macOS. Fortunately, the path change above makes the
# default values (clang and clang++) resolve to the correct compiler on macOS.
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
if [ "$CXX" = "clang++" ]; then export CXX="clang++-9" CC="clang-9"; fi;
fi
- echo ${CC}
- echo ${CXX}
- ${CXX} --version
- cmake --version
# Update dependencies directory
- mkdir -p ${DEPS_DIR}/vcpkg
- pushd ${DEPS_DIR}/vcpkg
- git init
- git remote add origin https://github.com/Microsoft/vcpkg.git
- git fetch origin master
- git checkout -b master origin/master
- export
- ./bootstrap-vcpkg.sh
- ./vcpkg install tl-expected range-v3 catch2 nlohmann-json fmt
- popd
cache:
directories:
- ${DEPS_DIR}/vcpkg/installed
before_script:
- mkdir _build
- cmake
-B_build
-GNinja
-Dskyr_WARNINGS_AS_ERRORS=OFF
-Dskyr_BUILD_TESTS=ON
-Dskyr_BUILD_DOCS=OFF
-Dskyr_BUILD_EXAMPLES=OFF
-DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DBUILD_SHARED_LIBS=${SHARED_LIB}
-DCMAKE_TOOLCHAIN_FILE=${DEPS_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
.
script:
- cmake --build _build
- cmake --build _build --target test
- cmake --build _build --target install
after_failure:
- cat _build/Testing/Temporary/LastTest.log