summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: a62e8c66ca48afd5ace446c13befa76a9432b83b (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
language: c
compiler:
  - gcc
  - clang

addons:
  apt:
    sources:
      - avsm
    packages:
      - check
      - libvpx-dev
      - opam

cache:
  directories:
    - $HOME/cache

before_script:
  - pushd ..
  - CACHE_DIR=$HOME/cache
  - export OPAMROOT=$CACHE_DIR/.opam
  - export PKG_CONFIG_PATH=$CACHE_DIR/lib/pkgconfig
  # Set up opam.
  - opam init -y
  - eval `opam config env`
  # Install required opam packages.
  - opam install -y ocamlfind ppx_deriving menhir
  # Build apidsl.
  - git clone --depth=1 https://github.com/iphydf/apidsl
  - make -C apidsl
  # Install cpp-coveralls to upload test coverage results.
  - pip install --user cpp-coveralls
  # Install astyle (version in ubuntu-precise too old).
  - ASTYLE=$CACHE_DIR/astyle/build/gcc/bin/astyle
  - >
      [ -f $ASTYLE ] || {
        wget -O astyle.tar.gz http://sourceforge.net/projects/astyle/files/astyle/astyle%202.05.1/astyle_2.05.1_linux.tar.gz/download
        tar -xf astyle.tar.gz -C $CACHE_DIR
        make -C $CACHE_DIR/astyle/build/gcc
      }
  # Install libsodium (not in ubuntu-precise).
  - >
      [ -f $CACHE_DIR/lib/libsodium.a ] || {
        git clone --depth=1 --branch=stable https://github.com/jedisct1/libsodium
        cd libsodium
        ./autogen.sh
        ./configure --prefix=$CACHE_DIR
        make install -j3
        cd ..
      }
  # Install libconfig (version in ubuntu-precise too old).
  - >
      [ -f $CACHE_DIR/lib/libconfig.a ] || {
        git clone --depth=1 --branch=REL1_6_STABLE https://github.com/hyperrealm/libconfig
        cd libconfig
        autoreconf -fi
        ./configure --prefix=$CACHE_DIR
        touch lib/scanner.l
        make install -j3
        cd ..
      }
  # Install libopus (not in ubuntu-precise).
  - >
      [ -f $CACHE_DIR/lib/libopus.a ] || {
        git clone --depth=1 --branch=1.1.2 https://github.com/xiph/opus
        cd opus
        ./autogen.sh
        ./configure --prefix=$CACHE_DIR
        make install -j3
        cd ..
      }
  - popd

script:
  # Check if toxcore.h and toxav.h match apidsl tox.in.h and toxav.in.h.
  - ../apidsl/_build/apigen.native ./other/apidsl/tox.in.h   | $ASTYLE --options=./other/astyle/astylerc > toxcore/tox.h
  - ../apidsl/_build/apigen.native ./other/apidsl/toxav.in.h | $ASTYLE --options=./other/astyle/astylerc > toxav/toxav.h
  - git diff --exit-code
  # Build toxcore and run tests.
  - ./autogen.sh
  - >
      ./configure \
        --with-libsodium-libs=$CACHE_DIR/lib \
        --with-libsodium-headers=$CACHE_DIR/include \
        --enable-daemon \
        --enable-logging \
        --enable-ntox \
        CFLAGS="-O0 -Wall -Wextra -fprofile-arcs -ftest-coverage -DTRAVIS_ENV"
  - make
  - make check
  - if [ -f build/test-suite.log ]; then cat build/test-suite.log; fi
  - make dist

after_script:
  - coveralls --exclude auto_tests --exclude other --exclude testing --gcov-options '\-lp'

notifications:
  irc: "chat.freenode.net#toktok-status"