11sudo : false
22
33language : c++
4-
54dist : bionic
65
6+ compiler :
7+ - gcc
8+ - clang
9+ os :
10+ - linux
11+
712env :
813 global :
914 - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps_"
1015 - INSTALL_DIR="${TRAVIS_BUILD_DIR}/install"
16+ jobs :
17+ - SHARED_LIB=OFF BUILD_TYPE=Debug
18+ - SHARED_LIB=OFF BUILD_TYPE=Release
19+ - SHARED_LIB=ON BUILD_TYPE=Debug
20+ - SHARED_LIB=ON BUILD_TYPE=Release
1121
12- matrix :
13- include :
14- - os : linux
15- compiler : gcc
16- addons : &gcc8
17- apt :
18- sources : ['ubuntu-toolchain-r-test']
19- packages : ['g++-8']
20- env : [COMPILER='g++-8', VCPKG_TRIPLET='x64-linux', BUILD_WITH_LLVM_LIBCXX='OFF']
21-
22- - os : linux
23- compiler : gcc
24- addons : &gcc9
25- apt :
26- sources : ['ubuntu-toolchain-r-test']
27- packages : ['g++-9']
28- env : [COMPILER='g++-9', VCPKG_TRIPLET='x64-linux', BUILD_WITH_LLVM_LIBCXX='OFF']
29-
30- - os : linux
31- compiler : clang
32- addons : &clang7
33- apt :
34- sources : ['llvm-toolchain-bionic-7']
35- packages : ['clang++-7', 'libc++-7-dev', 'libc++abi-7-dev']
36- env : [COMPILER='clang++-7', VCPKG_TRIPLET='x64-linux', BUILD_WITH_LLVM_LIBCXX='ON']
37-
38- - os : linux
39- compiler : clang
40- addons : &clang8
41- apt :
42- sources : ['llvm-toolchain-bionic-8']
43- packages : ['clang++-8', 'libc++-8-dev', 'libc++abi-8-dev']
44- env : [COMPILER='clang++-8', VCPKG_TRIPLET='x64-linux', BUILD_WITH_LLVM_LIBCXX='ON']
45-
46- - os : linux
47- compiler : clang
48- addons : &clang9
49- apt :
50- sources : ['llvm-toolchain-bionic-9']
51- packages : ['clang++-9', 'libc++-9-dev', 'libc++abi-9-dev']
52- env : [COMPILER='clang++-9', VCPKG_TRIPLET='x64-linux', BUILD_WITH_LLVM_LIBCXX='ON']
53-
54- # # 3/ OSX Clang Builds
55- # - os: osx
56- # osx_image: xcode10
57- # compiler: clang
58- # env: [COMPILER='clang', VCPKG_TRIPLET='x64-osx', BUILD_WITH_LLVM_LIBCXX='ON']
22+ addons :
23+ apt :
24+ sources :
25+ - sourceline : ' deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
26+ key_url : ' https://apt.llvm.org/llvm-snapshot.gpg.key'
27+ - sourceline : ' ppa:ubuntu-toolchain-r/test'
28+ packages :
29+ - clang-9
30+ - cmake
31+ - gcc-9
32+ - g++-9
33+ - ninja-build
34+ homebrew :
35+ packages :
36+ - cmake
37+ - gcc@9
38+ - llvm@9
39+ - ninja
40+ update : true
5941
6042before_install :
6143 - echo ${DEPS_DIR}
@@ -67,37 +49,44 @@ before_install:
6749 CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v3.14.0/cmake-3.14.0-Linux-x86_64.tar.gz"
6850 mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
6951 export PATH=${DEPS_DIR}/cmake/bin:${PATH}
70- elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
71- which cmake || brew install cmake
72- fi
73- - |
74- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
7552 which ninja || sudo apt-get install ninja-build
7653 elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
54+ which cmake || brew install cmake
7755 which ninja || brew install ninja
7856 fi
7957 - popd
8058 - echo ${INSTALL_DIR}
8159 - mkdir -p ${INSTALL_DIR}
82- - |
83- if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
84- brew install gcc
85- brew upgrade gcc
86- export CXX=`which g++`
87- else
88- export CXX=${COMPILER}
89- fi
9060 - echo ${CXX}
9161 - ${CXX} --version
9262
9363install :
64+ # The following Homebrew packages aren't linked by default, and need to be
65+ # prepended to the path explicitly.
66+ - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
67+ export PATH="$(brew --prefix llvm)/bin:$PATH";
68+ fi
69+ # /usr/bin/gcc points to an older compiler on both Linux and macOS.
70+ - if [ "$CXX" = "g++" ]; then export CXX="g++-9" CC="gcc-9"; fi
71+ # /usr/bin/clang points to an older compiler on both Linux and macOS.
72+ #
73+ # Homebrew's llvm package doesn't ship a versioned clang++ binary, so the values
74+ # below don't work on macOS. Fortunately, the path change above makes the
75+ # default values (clang and clang++) resolve to the correct compiler on macOS.
76+ - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
77+ if [ "$CXX" = "clang++" ]; then export CXX="clang++-9" CC="clang-9"; fi;
78+ fi
79+ - echo ${CC}
80+ - echo ${CXX}
81+ - ${CXX} --version
82+ - cmake --version
83+ # Update dependencies directory
9484 - mkdir -p ${DEPS_DIR}/vcpkg
9585 - pushd ${DEPS_DIR}/vcpkg
9686 - git init
9787 - git remote add origin https://github.com/Microsoft/vcpkg.git
9888 - git fetch origin master
9989 - git checkout -b master origin/master
100- - ${CXX} --version
10190 - export
10291 - ./bootstrap-vcpkg.sh
10392 - ./vcpkg install tl-expected catch2 nlohmann-json
@@ -108,24 +97,24 @@ cache:
10897 - ${DEPS_DIR}/vcpkg/installed
10998
11099before_script :
111- - export CXX=${COMPILER}
112100 - mkdir _build
113101 - cmake
114102 -B_build
115103 -GNinja
104+ -DSkyr_WARNINGS_AS_ERRORS=OFF
116105 -DSkyr_BUILD_TESTS=ON
117106 -DSkyr_BUILD_DOCS=OFF
118107 -DSkyr_BUILD_EXAMPLES=OFF
119- -DSkyr_BUILD_WITH_LLVM_LIBCXX=${BUILD_WITH_LLVM_LIBCXX}
108+ -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
109+ -DBUILD_SHARED_LIBS=${SHARED_LIB}
120110 -DCMAKE_TOOLCHAIN_FILE=${DEPS_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake
121111 -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
122112 .
123113
124114script :
125115 - pushd _build
126- - ninja
127- - ninja test
128- - ninja install
116+ - cmake --build . --target install -- -v
117+ - ctest
129118 - popd
130119
131120after_failure :
0 commit comments