summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 830c95683526edbe82a1df478301d47d0c6f0c5b (plain)
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
os:
  - linux
  - osx
sudo: false
dist: trusty
osx_image: xcode10.1

branches:
  except:
  - /.*appveyor.*/
  - /.*win.*/
  - /.*mingw.*/
  - /.*freebsd.*/
  - /.*bitrise.*/

git:
  quiet: true

env:
  matrix:
    - EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS="-DEVENT__COVERAGE=ON -DCMAKE_BUILD_TYPE=debug" COVERALLS=yes
    - EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS=""
    - EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
    - EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
    - EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
    - EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
    - EVENT_BUILD_METHOD=autotools EVENT_CONFIGURE_OPTIONS=""
    - EVENT_BUILD_METHOD=autotools EVENT_CONFIGURE_OPTIONS="--disable-openssl"
    - EVENT_BUILD_METHOD=autotools EVENT_CONFIGURE_OPTIONS="--disable-thread-support"
    - EVENT_BUILD_METHOD=autotools EVENT_CONFIGURE_OPTIONS="--disable-debug-mode"
    - EVENT_BUILD_METHOD=autotools EVENT_CONFIGURE_OPTIONS="--disable-malloc-replacement"

matrix:
  exclude:
    - os: osx
      env: EVENT_BUILD_METHOD=cmake EVENT_CMAKE_OPTIONS="-DEVENT__COVERAGE=ON -DCMAKE_BUILD_TYPE=debug" COVERALLS=yes
  allow_failures:
    - os: osx
  fast_finish: true

language: c
compiler:
  - gcc
  - clang

before_install:
  # do not run with clang, since it fails (SIGSEGV)
  - if [ "$CC" = "clang" ]; then
      unset COVERALLS;
    fi
  - if [ -n "$COVERALLS" ]; then
      pip install --user cpp-coveralls;
    fi
  - export JOBS=20
  - export TIMEOUT=50
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
      if [ "$CC" == "gcc" ]; then
        export CC=$(ls /usr/local/Cellar/gcc/*/bin/gcc-?);
      fi

      export OPENSSL_ROOT=$(echo /usr/local/Cellar/openssl/*);
      export
        CMAKE_INCLUDE_PATH=$OPENSSL_ROOT/include
        CMAKE_LIBRARY_PATH=$OPENSSL_ROOT/lib;
      export
        CFLAGS=-I$CMAKE_INCLUDE_PATH
        LDFLAGS=-L$CMAKE_LIBRARY_PATH;

      export JOBS=1;
    fi

addons:
  apt:
    sources:
    - xenial
    - sourceline: 'deb http://archive.ubuntu.com/ubuntu xenial main'
    packages:
    - zlib1g-dev
    - libssl-dev
    - build-essential
    - automake
    - autoconf
    - cmake
    - lcov
  homebrew:
    packages:
    - openssl
    - lcov
    - libtool
    - gcc


script:
  - if [ "$EVENT_BUILD_METHOD" = "autotools" ]; then
      ./autogen.sh &&
      ./configure $EVENT_CONFIGURE_OPTIONS &&
      make &&
      travis_wait $TIMEOUT make -j $JOBS verify;
    fi
  - if [ "$EVENT_BUILD_METHOD" = "cmake" ]; then
      export
        CTEST_PARALLEL_LEVEL=$JOBS
        CTEST_OUTPUT_ON_FAILURE=1;

      mkdir build &&
      cd build &&
      cmake .. $EVENT_CMAKE_OPTIONS &&
      travis_wait $TIMEOUT
      cmake --build . --target verify;
    fi

after_script:
  - if [ -n "$COVERALLS" ]; then
      coveralls
        --build-root .
        --root ..
        --exclude test
        --exclude sample
        --exclude cmake
        --exclude build/CMakeFiles/CheckTypeSize
        --exclude build/CMakeFiles/CompilerIdC
        --gcov-options '\-lp';
    fi