
sudo: required
dist: trusty

language: c

os:
    - linux
    - osx

compiler:
    - gcc
    - clang

services:
    - docker


env:
    global:
        - COVERITY_SCAN_BUILD_COMMAND="make"
        - COVERITY_SCAN_PROJECT_NAME="Apache Celix"
        - COVERITY_SCAN_NOTIFICATION_EMAIL="bpetri@apache.org"
        - COVERITY_SCAN_BRANCH_PATTERN="develop"
        - COVERITY_SCAN_TOKEN="iomLSuaE8KOZLDog-KK7Ug"
        - COVERITY_SCAN_BUILD_URL="https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh"
        - COVERITY_SCAN_BUILD="curl -s $COVERITY_SCAN_BUILD_URL | sed 's/https:\/\/scan.coverity.com\/builds/https:\/\/scan.coverity.com\/builds?project=Apache+Celix/g' | bash"

matrix:
    include:
       - os: linux
         compiler: gcc
         env: SANITIZE=1
       - os: linux
         compiler: clang
         env: ANDROID=1


before_install:
  - if [ "$TRAVIS_OS_NAME" = "linux" ] &&  [ -z "$ANDROID" ]; then sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && sudo apt-get -qq update && sudo apt-get install -y uuid-dev libxml2-dev lcov libffi-dev gcc-4.8 g++-4.8; fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew uninstall cmake; fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install lcov libffi cmake && brew link --force libffi; fi

before_script:
    - wget https://github.com/cpputest/cpputest.github.io/blob/master/releases/cpputest-3.7.1.tar.gz?raw=true -O /tmp/cpputest.tar.gz
    - tar -xzvf /tmp/cpputest.tar.gz -C /tmp
    - if [ "$CC" = "clang" ]; then export CXX="clang++"; fi && cd /tmp/cpputest-3.7.1 && ./configure --prefix=/usr && make && sudo make install && cd -
    - cd /tmp/cpputest-3.7.1 && ./configure --prefix=/usr && make && sudo make install && cd -
    - git clone https://github.com/akheron/jansson.git jansson-build
    - cd jansson-build && git checkout 2.7
    - cmake -DJANSSON_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr . && make
    - sudo make install
    - cd -
    - mkdir build install
    - export BUILD_OPTIONS=" \
        -DBUILD_CONFIG_ADMIN=OFF \
        -DBUILD_RSA_REMOTE_SERVICE_ADMIN_DFI=ON \
        -DBUILD_DEPLOYMENT_ADMIN=ON \
        -DBUILD_DEPENDENCY_MANAGER=ON \
        -DBUILD_EXAMPLES=ON -DBUILD_LOG_SERVICE=ON \
        -DBUILD_LOG_WRITER=ON \
        -DBUILD_REMOTE_SERVICE_ADMIN=ON \
        -DBUILD_RSA_DISCOVERY_CONFIGURED=ON \
        -DBUILD_RSA_DISCOVERY_ETCD=ON \
        -DBUILD_RSA_EXAMPLES=ON \
        -DBUILD_RSA_REMOTE_SERVICE_ADMIN_HTTP=ON \
        -DBUILD_REMOTE_SHELL=ON \
        -DBUILD_SHELL=ON \
        -DBUILD_SHELL_TUI=ON -DBUILD_DEVICE_ACCESS=ON \
        -DBUILD_DEVICE_ACCESS_EXAMPLE=ON "
    - export BUILD_OPTIONS_LINUX=" \
        -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=ON \
        -DBUILD_RSA_DISCOVERY_SHM=ON "
    - export BUILD_OPTIONS_OSX=" \
        -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=OFF \
        -DBUILD_RSA_DISCOVERY_SHM=OFF "
    - export BUILD_OPTIONS_SANITIZE=" -DENABLE_ADDRESS_SANITIZER=ON"

script:
    #- if [ "$SANITIZE" == 1 ]; then export CC=/usr/bin/gcc-4.8 CXX=/usr/bin/g++-4.8 CFLAGS="-lasan -fsanitize=address"  CXXFLAGS="-lasan -fsanitize=address" ASAN_OPTIONS="symbolize=1" ASAN_SYMBOLIZER_PATH="/usr/local/clang-3.4/bin/llvm-symbolizer"; fi
    - if [ "$SANITIZE" == 1 ]; then export BUILD_OPTIONS="${BUILD_OPTIONS} ${BUILD_OPTIONS_SANITIZE}"; fi
     # the following setup is broken:
     # RSA_DISCOVERY_SHM is only working on linux, but both compilers (see CELIX-277)
     # RSA_SHM is only working on linux, but both compilers (see CELIX-277)
    - cd build
    - if [ "$CC" = "gcc" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export BUILD_OPTS="${BUILD_OPTS} -DENABLE_CODE_COVERAGE=ON"; fi
    - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ -z "$ANDROID" ]; then cmake ${BUILD_OPTIONS} ${BUILD_OPTIONS_LINUX} -DBUILD_FRAMEWORK_TESTS=ON -DBUILD_UTILS-TESTS=ON -DENABLE_TESTING=ON ${BUILD_OPTS} -DCMAKE_INSTALL_PREFIX=../install ..; fi
    - if [ "$TRAVIS_OS_NAME" = "osx" ]; then cmake ${BUILD_OPTIONS} ${BUILD_OPTIONS_OSX} -DBUILD_FRAMEWORK_TESTS=ON -DBUILD_UTILS-TESTS=ON -DENABLE_TESTING=ON -DFFI_LIBRARY=/usr/local/opt/libffi/lib/libffi.dylib ${BUILD_OPTS} -DCMAKE_INSTALL_PREFIX=../install ..; fi
    - if [ -z "$ANDROID" ]; then make all && make deploy && make install; else cd .. && docker build -t celixandroid - < Dockerfile.Android ; fi
    - if [ -z "$ANDROID" ]; then export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH:`pwd`/utils:`pwd`/framework:`pwd`/dfi && make test ARGS="-V"; else docker run celixandroid; fi 

after_success:
    - if [ "$CC" = "gcc" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then 
        cd ${TRAVIS_BUILD_DIR}/build;
        gem install coveralls-lcov &&
        make coverage &&
        lcx="lcov --output-file=coverage.info " && for i in `find . -name "*.info.cleaned"`; do lcx+=" --add-tracefile=$i"; done && $lcx && coveralls-lcov --repo-token=9dpeTAjiGoQU5hgXFe0ezk65iu40oc3WY coverage.info;
        if [ $(( $TRAVIS_BUILD_NUMBER  % 5 )) -eq 0 ]; then make clean & eval "$COVERITY_SCAN_BUILD"; fi
      fi;
