cmake: Allow deprecation warnings
[quassel.git] / .travis.yml
1 sudo: required
2
3 services:
4   - docker
5
6 # Define build matrix for Linux
7 os: linux
8 dist: bionic
9 language: generic  # No host compilation
10
11 env:
12   - DIST=ubuntu-xenial  CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=OFF"
13   - DIST=ubuntu-xenial  CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=OFF"
14   - DIST=ubuntu-xenial  CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBKIT=ON"
15   - DIST=ubuntu-xenial  CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBKIT=ON"
16   - DIST=ubuntu-bionic  CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBKIT=ON"
17   - DIST=ubuntu-bionic  CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
18   - DIST=ubuntu-eoan    CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
19   - DIST=ubuntu-eoan    CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
20   - DIST=ubuntu-focal   CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
21   - DIST=ubuntu-focal   CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
22   - DIST=debian-stable  CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
23   - DIST=debian-stable  CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBENGINE=ON"
24   - DIST=debian-testing CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBENGINE=ON"
25   - DIST=debian-testing CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
26
27 # Set up cache
28 cache:
29   directories:
30     - $TRAVIS_BUILD_DIR/ccache
31
32 # Prepare
33 before_install:
34   - docker pull quassel/quassel-build-env:$DIST
35   - docker images
36   - mkdir build
37
38 # Build inside the docker image
39 # Source, build and ccache directories are bind-mounted into the container
40 script:
41   - |
42     docker run -t -w /build --rm \
43                -v "$(readlink -f .):/src" \
44                -v "$(readlink -f build):/build" \
45                -v "$(readlink -f ccache):/ccache" \
46                -e CCACHE_DIR=/ccache \
47                -e CCACHE_MAXSIZE=1G \
48                -e CXX=$CXX \
49                quassel/quassel-build-env:$DIST \
50                sh -c "cmake /src $CMAKE_OPTIONS \
51                             -GNinja \
52                             -DCMAKE_BUILD_TYPE=RelWithDebInfo \
53                             -DBUILD_TESTING=ON \
54                             -DFATAL_WARNINGS=ON \
55                       && ninja install \
56                       && ccache -s \
57                       && ctest -VV \
58                      "
59
60 # Define a separate job for OSX
61 jobs:
62   include:
63     - os: osx
64       language: cpp
65       compiler: clang
66       env:
67       cache:
68         directories:
69           - $HOME/.ccache
70           - $HOME/Library/Caches/Homebrew
71       before_install:
72         - brew update && brew install ccache ninja qca qt5
73       script:
74         - export CCACHE_MAXSIZE=1G
75         - mkdir build && cd build
76         - |
77           PATH=$PATH:/usr/local/opt/qt5/bin
78           DEPLOY=OFF
79           if [[ "$TRAVIS_TAG" != "" && "$GH_TOKEN" != "" ]]; then
80             DEPLOY=ON
81           fi
82           cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DDEPLOY=$DEPLOY
83           ninja install
84         - ccache -s
85         - ctest -VV
86       deploy:
87         provider: releases
88         api_key: "${GH_TOKEN}"
89         file_glob: true
90         file:
91           - "QuasselClient_MacOSX-x86_64_*.dmg"
92           - "QuasselCore_MacOSX-x86_64_*.dmg"
93           - "QuasselMono_MacOSX-x86_64_*.dmg"
94         skip_cleanup: true
95         on:
96           tags: true
97           condition: "$GH_TOKEN != ''"