# Since the Travis CI environment http://docs.travis-ci.com/user/ci-environment/ # provides GNU GCC 4.6, which does not support -std=c++11 GNU GCC 4.8 is installed # NOTE: Please validate this file after editing it using # Travis WebLint https://lint.travis-ci.org/ # or travis-lint https://github.com/travis-ci/travis-lint language: cpp compiler: - gcc - clang os: - linux - osx sudo: false cache: apt: true env: global: # Boost version to use: # _MIN is used when building the master branch # _MAX is used when building any other branch - BOOST_VERSION_MIN="1.49.0" - BOOST_VERSION_MAX="1.61.0" # List of required boost libraries to build - BOOST_LIBS="date_time,filesystem,iostreams,python,regex,system,test" # List of required Homebrew formulae to install - BREWS="gmp,mpfr" # Encrypted COVERITY_SCAN_TOKEN - secure: "mYNxD1B8WNSvUeKzInehZ7syi2g1jH2ymeSQxoeKKD2duq3pvNWPdZdc4o9MlWQcAqcz58rhFZRIpuEWCnP0LbbJaG+MyuemMn9uAmg9Y4gFpMsBPHuTdf8pO3rDex+tkrr9puEJFgL+QV/TehxO6NDDpx7UdYvJb+4aZD/auYI=" matrix: exclude: - os: linux compiler: clang # Compiling ledger on Linux with clang # either crashes clang or results in a ledger binary that crashes with SIGSEGV. - os: osx compiler: gcc # On Mac OS X building ledger with GNU GCC 4.8 fails due to # undefined symbols, maybe because boost was not being built with g++-4.8. # Undefined symbols for architecture x86_64: # "boost::re_detail::perl_matcher >, boost::regex_traits > >::construct_init(boost::basic_regex > > const&, boost::regex_constants::_match_flags)", referenced from: # boost::re_detail::perl_matcher >, boost::regex_traits > >::perl_matcher(char const*, char const*, boost::match_results > >&, boost::basic_regex > > const&, boost::regex_constants::_match_flags, char const*) in main.cc.o # boost::re_detail::perl_matcher >, boost::regex_traits > >::perl_matcher(char const*, char const*, boost::match_results > >&, boost::basic_regex > > const&, boost::regex_constants::_match_flags, char const*) in global.cc.o # "boost::re_detail::perl_matcher >, boost::regex_traits > >::find()", referenced from: # bool boost::regex_search > >(char const*, char const*, boost::basic_regex > > const&, boost::regex_constants::_match_flags) in main.cc.o # bool boost::regex_search > >(char const*, char const*, boost::basic_regex > > const&, boost::regex_constants::_match_flags) in global.cc.o - os: osx compiler: clang # On Mac OS X building ledger with clang fails due to # dyld: Library not loaded: libboost_python.dylib # Referenced from: /Users/travis/build/ledger/ledger/ledger # Reason: image not found addons: coverity_scan: project: name: "ledger/ledger" description: "Build submitted via Travis CI" build_command_prepend: "cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON -DCLANG_GCOV=ON" build_command: "make" branch_pattern: coverity apt: sources: - ubuntu-toolchain-r-test #- boost-latest packages: - gcc-4.8 - g++-4.8 - libgmp-dev - libmpfr-dev - libedit-dev #- libboost1.55-dev #- libboost-test1.55-dev #- libboost-regex1.55-dev #- libboost-python1.55-dev #- libboost-system1.55-dev #- libboost-date-time1.55-dev #- libboost-iostreams1.55-dev #- libboost-filesystem1.55-dev #- libboost-serialization1.55-dev before_install: - if [ "${TRAVIS_BRANCH}" = "master" ]; then export BOOST_VERSION="${BOOST_VERSION_MIN}"; else export BOOST_VERSION="${BOOST_VERSION_MAX}"; fi - if [ -n "${BOOST_VERSION}" ]; then export BOOST_ROOT="${TRAVIS_BUILD_DIR}/../boost-trunk"; export CMAKE_MODULE_PATH="${BOOST_ROOT}"; fi - if [ "${CXX}" = "g++" ]; then export CXX="$(which g++-4.8)"; export CC="$(which gcc-4.8)"; fi - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export DYLD_LIBRARY_PATH="${BOOST_ROOT}/lib"; fi # c++ is a symlink to clang++, but the compiler behaves differently when invoked as c++ - if [ "${TRAVIS_OS_NAME}" = "osx" -a "${CXX}" = "clang++" ]; then export CXX="$(which c++)"; export CC="$(which cc)"; fi - tools/travis-before_install.sh install: - tools/travis-install.sh before_script: - cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON - make script: - ctest --output-on-failure - PYTHONPATH=. python python/demo.py after_script: # These scripts are run for informational purposes and # should be reintegrated into CTest once they reliably verify the documentation. - python test/CheckTexinfo.py -l ledger -s . - python test/CheckManpage.py -l ledger -s . notifications: email: on_success: change on_failure: change irc: channels: [ "chat.freenode.net#ledger" ] on_success: change on_failure: change webhooks: urls: - https://webhooks.gitter.im/e/0050d91909a8cde39e35 on_success: change # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always on_start: never # options: [always|never|change] default: always