diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..4957987f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,43 @@ +# Build matrix / environment variable are explained on: +# http://about.travis-ci.org/docs/user/build-configuration/ +# This file can be validated on: +# http://lint.travis-ci.org/ +# See also +# http://stackoverflow.com/questions/22111549/travis-ci-with-clang-3-4-and-c11/30925448#30925448 +# to allow C++11, though we are not yet building with -std=c++11 + +install: +# /usr/bin/gcc is 4.6 always, but gcc-X.Y is available. +- if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi +# /usr/bin/clang is our version already, and clang-X.Y does not exist. +#- if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi +- echo ${PATH} +- ls /usr/local +- ls /usr/local/bin +- export PATH=/usr/local/bin:/usr/bin:${PATH} +- echo ${CXX} +- ${CXX} --version +- which valgrind +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-4.9 + - g++-4.9 + - clang + - valgrind +os: + - linux +language: cpp +compiler: + - gcc + - clang +script: ./travis.sh +env: + matrix: + - SHARED_LIB=ON STATIC_LIB=ON CMAKE_PKG=ON BUILD_TYPE=release VERBOSE_MAKE=false + - SHARED_LIB=OFF STATIC_LIB=ON CMAKE_PKG=OFF BUILD_TYPE=debug VERBOSE_MAKE=true VERBOSE +notifications: + email: false +sudo: false diff --git a/travis.sh b/travis.sh new file mode 100755 index 00000000..b27794de --- /dev/null +++ b/travis.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env sh +# This is called by `.travis.yml` via Travis CI. +# Travis supplies $TRAVIS_OS_NAME. +# http://docs.travis-ci.com/user/multi-os/ +# Our .travis.yml also defines: +# - SHARED_LIB=ON/OFF +# - STATIC_LIB=ON/OFF +# - CMAKE_PKG=ON/OFF +# - BUILD_TYPE=release/debug +# - VERBOSE_MAKE=false/true +# - VERBOSE (set or not) + +# -e: fail on error +# -v: show commands +# -x: show expanded commands +set -vex + +env | sort + +cmake -DJSONCPP_WITH_CMAKE_PACKAGE=$CMAKE_PKG -DBUILD_SHARED_LIBS=$SHARED_LIB -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_VERBOSE_MAKEFILE=$VERBOSE_MAKE . +make + +# Python is not available in Travis for osx. +# https://github.com/travis-ci/travis-ci/issues/2320 +if [ "$TRAVIS_OS_NAME" != "osx" ] +then + make + # valgrind --error-exitcode=42 --leak-check=full ./src/test_lib_json/jsoncpp_test +fi