blob: 74aed8fecebca0992c869168c3f9acc2b7779f6b [file] [log] [blame]
language: c
os:
- linux
- osx
compiler:
- gcc
- clang
before_install:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get -qq update && sudo apt-get install -y uuid-dev libjansson-dev libxml2-dev lcov libffi-dev; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install lcov libffi && 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 -
- git clone -b 2.7 --single-branch https://github.com/akheron/jansson.git jansson-build
- cd jansson-build
- cmake -DJANSSON_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr . && make
- sudo make install
- cd -
- mkdir build install
script:
# the following setup is broken:
# RSA_DFI is only working for gcc on linux
# 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 [ "$TRAVIS_OS_NAME" = "osx" ]; then export BUILD_OPTS="-DFFI_INCLUDE_DIR=/usr/local/lib/libffi-3.0.13/include -DFFI_LIBRARY=/usr/local/lib/libffi.dylib"; fi
- if [ "$CC" = "clang" ] || [ "$TRAVIS_OS_NAME" = "osx" ]; then export BUILD_OPTS="${BUILD_OPTS}"; else export BUILD_OPTS="${BUILD_OPTS} -DBUILD_RSA_REMOTE_SERVICE_ADMIN_DFI=ON"; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cmake -DBUILD_DEPLOYMENT_ADMIN=ON -DBUILD_EXAMPLES=ON -DBUILD_LOG_SERVICE=ON -DBUILD_LOG_WRITER=ON -DBUILD_REMOTE_SERVICE_ADMIN=ON -DBUILD_RSA_DISCOVERY_CONFIGURED=ON -DBUILD_DEPENDENCY_MANAGER=ON -DBUILD_RSA_DISCOVERY_ETCD=ON -DBUILD_RSA_DISCOVERY_SHM=ON -DBUILD_RSA_EXAMPLES=ON -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=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 -DBUILD_FRAMEWORK_TESTS=OFF -DENABLE_CODE_COVERAGE=ON -DENABLE_TESTING=ON ${BUILD_OPTS} -DCMAKE_INSTALL_PREFIX=../install ..; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then cmake -DBUILD_DEPLOYMENT_ADMIN=ON -DBUILD_EXAMPLES=ON -DBUILD_LOG_SERVICE=ON -DBUILD_LOG_WRITER=ON -DBUILD_REMOTE_SERVICE_ADMIN=ON -DBUILD_RSA_DISCOVERY_CONFIGURED=ON -DBUILD_DEPENDENCY_MANAGER=ON -DBUILD_RSA_DISCOVERY_ETCD=ON -DBUILD_RSA_DISCOVERY_SHM=OFF -DBUILD_RSA_EXAMPLES=ON -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=OFF -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 -DBUILD_FRAMEWORK_TESTS=OFF -DENABLE_CODE_COVERAGE=ON -DENABLE_TESTING=ON -DFFI_LIBRARY=/usr/local/opt/libffi/lib/libffi.dylib ${BUILD_OPTS} -DCMAKE_INSTALL_PREFIX=../install ..; fi
- make all && make deploy && make install-all
- export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH:`pwd`/utils:`pwd`/framework && make test ARGS="-V" && make coverage
after_success:
- cd ${TRAVIS_BUILD_DIR}/build
- gem install coveralls-lcov
- 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