1# Use travis docker infrastructure
2sudo: false
3language: cpp
4
5env:
6    global:
7        - PREFIX=$HOME/prefix
8
9compiler:
10    - gcc
11    - clang
12
13# Install a recent gcc and gcov,
14# it will not be necessary once travis worker is based on ubuntu > 12.04.
15# Install SWIG for bindings generation
16# Install valgrind for memcheck tests
17addons:
18    apt:
19        sources:
20            - ubuntu-toolchain-r-test
21        packages:
22            - swig
23            - valgrind
24            - g++-4.8
25
26install:
27    - pip install --user cpp-coveralls; export PATH=$HOME/.local/bin:$PATH
28    - wget --directory-prefix $PREFIX/include
29              https://raw.github.com/philsquared/Catch/master/single_include/catch.hpp
30
31before_script:
32    - if [ "$CC" = "gcc" ]; then export CC=gcc-4.8 CXX=g++-4.8; fi
33
34# how to build
35script:
36  - ( mkdir build_debug && cd build_debug &&
37        cmake -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_BUILD_TYPE=Debug -DCOVERAGE=ON .. &&
38        make -j &&
39        CTEST_OUTPUT_ON_FAILURE=1 make ExperimentalTest ExperimentalMemCheck )
40  - ( mkdir build && cd build &&
41        cmake -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_INSTALL_PREFIX=../install .. &&
42        make -j &&
43        CTEST_OUTPUT_ON_FAILURE=1 make test &&
44        make install)
45  - ( cd skeleton-subsystem &&
46        cmake -DCMAKE_INSTALL_PREFIX=../install . &&
47        make &&
48        make install )
49
50after_success:
51    # Push coverage info on coveralls.io.
52    # Ignore generated files, samples and tests
53    - coveralls
54          --exclude "build_debug/bindings/python"
55          --exclude "build_debug/CMakeFiles"
56          --exclude "build"
57          --exclude "skeleton-subsystem"
58          --exclude "test/test-subsystem"
59          --exclude "bindings/c/Test.cpp"
60          --exclude "test/tokenizer"
61          --gcov /usr/bin/gcov-4.8
62          --gcov-options '\--long-file-names --preserve-paths'
63
64notifications:
65  irc:
66    - "chat.freenode.net#parameter-framework"
67