diff options
author | John Wiegley <johnw@newartisans.com> | 2019-01-25 15:48:11 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-25 15:48:11 -0800 |
commit | 14dc0b912bb9e51f28fa10e03fba962dec22c870 (patch) | |
tree | ae286447fecf8e42a9cb6567cdfa02a3b63efefd | |
parent | d167ef36962614be5fcba22a18f8f1abc91e02fd (diff) | |
parent | 0645976caecc581923d87ca3cc8658a9f7c35f52 (diff) | |
download | fork-ledger-14dc0b912bb9e51f28fa10e03fba962dec22c870.tar.gz fork-ledger-14dc0b912bb9e51f28fa10e03fba962dec22c870.tar.bz2 fork-ledger-14dc0b912bb9e51f28fa10e03fba962dec22c870.zip |
Merge pull request #1742 from scfc/rephrase-boost-build-matrix
Rephrase Boost build matrix
-rw-r--r-- | .travis.yml | 87 | ||||
-rwxr-xr-x | tools/travis-before_install.sh | 16 | ||||
-rwxr-xr-x | tools/travis-install.sh | 22 |
3 files changed, 29 insertions, 96 deletions
diff --git a/.travis.yml b/.travis.yml index 59ec77b2..ae2ff727 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,51 +5,22 @@ 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 macOS 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<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)", referenced from: - # boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(char const*, char const*, boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, char const*) in main.cc.o - # boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(char const*, char const*, boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, char const*) in global.cc.o - # "boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()", referenced from: - # bool boost::regex_search<char const*, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(char const*, char const*, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags) in main.cc.o - # bool boost::regex_search<char const*, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(char const*, char const*, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags) in global.cc.o - - os: osx - compiler: clang - # On macOS 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 + matrix: + # Boost version to build against; an empty string means the + # distribution's default. + - BOOST_VERSION="1.61.0" addons: coverity_scan: @@ -60,33 +31,39 @@ addons: build_command: "make" branch_pattern: coverity apt: - sources: - #- boost-latest packages: - 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 + - libboost-dev + - libboost-test-dev + - libboost-regex-dev + - libboost-python-dev + - libboost-system-dev + - libboost-date-time-dev + - libboost-iostreams-dev + - libboost-filesystem-dev + - libboost-serialization-dev before_install: - # - if [ "${TRAVIS_BRANCH}" = "master" ]; then export BOOST_VERSION="${BOOST_VERSION_MIN}"; else export BOOST_VERSION="${BOOST_VERSION_MAX}"; fi - - export BOOST_VERSION="${BOOST_VERSION_MAX}" - - if [ -n "${BOOST_VERSION}" ]; then export BOOST_ROOT="${TRAVIS_BUILD_DIR}/../boost-trunk"; export CMAKE_MODULE_PATH="${BOOST_ROOT}"; 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 + - | + if [ -n "${BOOST_VERSION}" ]; then + BOOST_SOURCE="$(mktemp -d)" + BOOST_SOURCE_URL="https://sourceforge.net/projects/boost/files/boost/${BOOST_VERSION}/boost_${BOOST_VERSION//./_}.tar.bz2/download" + curl -Ls "$BOOST_SOURCE_URL" | + tar jx -C "${BOOST_SOURCE}" --strip-components 1 + fi install: - - tools/travis-install.sh + - | + if [ -n "${BOOST_VERSION}" ]; then + export BOOST_ROOT="${HOME}/boost" + pushd "${BOOST_SOURCE}" + ./bootstrap.sh --with-libraries="${BOOST_LIBS}" + ./b2 threading=multi -d0 --prefix="${BOOST_ROOT}" install + popd + rm -Rf "${BOOST_SOURCE}" + fi before_script: - cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON @@ -96,12 +73,6 @@ 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 diff --git a/tools/travis-before_install.sh b/tools/travis-before_install.sh deleted file mode 100755 index fe010945..00000000 --- a/tools/travis-before_install.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -#set -x -set -e -set -o pipefail - -if [ "${TRAVIS_OS_NAME}" = "osx" ]; then - brew update -fi - -if [ -n "${BOOST_VERSION}" ]; then - mkdir -p $BOOST_ROOT - wget --no-verbose --output-document=- \ - http://sourceforge.net/projects/boost/files/boost/${BOOST_VERSION}/boost_${BOOST_VERSION//./_}.tar.bz2/download \ - | tar jxf - --strip-components=1 -C "${BOOST_ROOT}" -fi diff --git a/tools/travis-install.sh b/tools/travis-install.sh deleted file mode 100755 index 4e8bdc48..00000000 --- a/tools/travis-install.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -#set -x -set -e -set -o pipefail - -if [ "${TRAVIS_OS_NAME}" = "osx" ]; then - for formula in $(echo "${BREWS//,/ }"); do - echo "Checking ${formula} formula" - brew outdated "${formula}" \ - || (brew unlink "${formula}" - brew install "${formula}" - ) - done -fi - -if [ -d "${BOOST_ROOT}" ]; then - (cd "${BOOST_ROOT}" - ./bootstrap.sh --with-libraries="${BOOST_LIBS}" - ./b2 threading=multi --prefix="${BOOST_ROOT}" -d0 install - ) -fi |