diff --git a/.travis.yml b/.travis.yml index 830599fe4..b24d2a0db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,63 +1,176 @@ language: cpp -compiler: - - gcc -# - clang -# Make sure CMake is installed -install: - - sudo apt-add-repository -y ppa:ubuntu-toolchain-r/test - - sudo add-apt-repository -y ppa:boost-latest/ppa - - sudo apt-get update >/dev/null - - sudo apt-get -q install libbz2-dev libstxxl-dev libstxxl1 libxml2-dev libzip-dev lua5.1 liblua5.1-0-dev rubygems libtbb-dev - - sudo apt-get -q install g++-4.8 - - sudo apt-get install libboost1.54-all-dev - - sudo apt-get install libgdal-dev - # luabind - - curl https://gist.githubusercontent.com/DennisOSRM/f2eb7b948e6fe1ae319e/raw/install-luabind.sh | sudo bash - # osmosis - - curl -s https://gist.githubusercontent.com/DennisOSRM/803a64a9178ec375069f/raw/ | sudo bash - # cmake - - curl -s https://gist.githubusercontent.com/DennisOSRM/5fad9bee5c7f09fd7fc9/raw/ | sudo bash -before_script: - - rvm use 1.9.3 - - gem install bundler - - bundle install - - mkdir build - - cd build - - cmake .. $CMAKEOPTIONS -DBUILD_TOOLS=1 -script: - - make - - make tests - - make benchmarks - - ./algorithm-tests - - ./datastructure-tests - - cd .. - - cucumber -p verify -after_script: -# - cd .. -# - cucumber -p verify +sudo: required +dist: trusty + +notifications: + email: false + branches: only: - master - develop -cache: -- bundler -- apt -env: - - CMAKEOPTIONS="-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-4.8" OSRM_PORT=5000 OSRM_TIMEOUT=60 - - CMAKEOPTIONS="-DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=g++-4.8" OSRM_PORT=5010 OSRM_TIMEOUT=60 - - CMAKEOPTIONS="-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER=g++-4.8" OSRM_PORT=5020 OSRM_TIMEOUT=60 -notifications: - slack: mapbox:4A6euphDwfxAQnhLurXbu6A1 - irc: - channels: - - irc.oftc.net#osrm - on_success: change - on_failure: always - use_notice: true - skip_join: false - recipients: - - patrick@mapbox.com - email: - on_success: change - on_failure: always +matrix: + include: + + # 1/ Linux Clang Builds + - os: linux + compiler: clang + addons: &clang35 + apt: + sources: ['llvm-toolchain-precise-3.5', 'ubuntu-toolchain-r-test'] + packages: ['clang-3.5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + + env: COMPILER='clang++-3.5' BUILD_TYPE='Release' + + - os: linux + compiler: clang + addons: *clang35 + env: COMPILER='clang++-3.5' BUILD_TYPE='Debug' + + + - os: linux + compiler: clang + addons: &clang36 + apt: + sources: ['llvm-toolchain-precise-3.6', 'ubuntu-toolchain-r-test'] + packages: ['clang-3.6', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + env: COMPILER='clang++-3.6' BUILD_TYPE='Release' + + - os: linux + compiler: clang + addons: *clang36 + env: COMPILER='clang++-3.6' BUILD_TYPE='Debug' + + + - os: linux + compiler: clang + addons: &clang37 + apt: + sources: ['llvm-toolchain-precise-3.7', 'ubuntu-toolchain-r-test'] + packages: ['clang-3.7', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + env: COMPILER='clang++-3.7' BUILD_TYPE='Release' + + - os: linux + compiler: clang + addons: *clang37 + env: COMPILER='clang++-3.7' BUILD_TYPE='Debug' + + + - os: linux + compiler: clang + addons: &clang38 + apt: + sources: ['llvm-toolchain-precise', 'ubuntu-toolchain-r-test'] + packages: ['clang-3.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + env: COMPILER='clang++-3.8' BUILD_TYPE='Release' + + - os: linux + compiler: clang + addons: *clang38 + env: COMPILER='clang++-3.8' BUILD_TYPE='Debug' + + + # 2/ Linux GCC Builds + - os: linux + compiler: gcc + addons: &gcc48 + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['g++-4.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + env: COMPILER='g++-4.8' BUILD_TYPE='Release' + + - os: linux + compiler: gcc + addons: *gcc48 + env: COMPILER='g++-4.8' BUILD_TYPE='Debug' + + + - os: linux + compiler: gcc + addons: &gcc49 + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['g++-4.9', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + env: COMPILER='g++-4.9' BUILD_TYPE='Release' + + - os: linux + compiler: gcc + addons: *gcc49 + env: COMPILER='g++-4.9' BUILD_TYPE='Debug' + + + - os: linux + compiler: gcc + addons: &gcc5 + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'rubygems-integration', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] + env: COMPILER='g++-5' BUILD_TYPE='Release' + + - os: linux + compiler: gcc + addons: *gcc5 + env: COMPILER='g++-5' BUILD_TYPE='Debug' + + + # Disabled until tests all pass on OSX: + # + # 3/ OSX Clang Builds + #- os: osx + # osx_image: xcode6.4 + # compiler: clang + # env: COMPILER='clang++' BUILD_TYPE='Debug' + + #- os: osx + # osx_image: xcode6.4 + # compiler: clang + # env: COMPILER='clang++' BUILD_TYPE='Release' + + + #- os: osx + # osx_image: xcode7 + # compiler: clang + # env: COMPILER='clang++' BUILD_TYPE='Debug' + + #- os: osx + # osx_image: xcode7 + # compiler: clang + # env: COMPILER='clang++' BUILD_TYPE='Release' + + +install: + - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" + - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR} + - | + if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then + CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz" + mkdir cmake && travis_retry wget --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake + export PATH=${DEPS_DIR}/cmake/bin:${PATH} + + OSMOSIS_URL="http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.tgz" + mkdir osmosis && travis_retry wget --quiet -O - ${OSMOSIS_URL} | tar -xz -C osmosis + export PATH=${DEPS_DIR}/osmosis/bin:${PATH} + + elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then + brew install cmake boost libzip libstxxl libxml2 lua51 luabind tbb GDAL osmosis + fi + +before_script: + - cd ${TRAVIS_BUILD_DIR} + - rvm use 1.9.3 + - gem install bundler + - bundle install + - mkdir build && cd build + - export CXX=${COMPILER} + - export OSRM_PORT=5000 OSRM_TIMEOUT=60 + - cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DBUILD_TOOLS=1 + +script: + - make --jobs=2 + - make tests --jobs=2 + - make benchmarks + - ./algorithm-tests + - ./datastructure-tests + - cd .. + - cucumber -p verify diff --git a/CMakeLists.txt b/CMakeLists.txt index ddce357af..eea2cf002 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -248,8 +248,7 @@ if(UNIX AND NOT APPLE) endif() #Check Boost -set(BOOST_MIN_VERSION "1.49.0") -find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS ${BOOST_COMPONENTS} REQUIRED) +find_package(Boost 1.49.0 COMPONENTS ${BOOST_COMPONENTS} REQUIRED) if(NOT Boost_FOUND) message(FATAL_ERROR "Fatal error: Boost (version >= 1.49.0) required.\n") endif()