dist: bionic

language: cpp

sudo: false

cache:
  - apt
  - ccache

compiler:
  - gcc
  - clang

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
#     https://github.com/travis-ci/travis-ci/issues/3668
#     for alternatives in container builds
    packages:
      - check
      - cmake
      - debhelper
      - libasio-dev
      - libboost-dev
      - libboost-program-options-dev
      - libssl-dev

script:
  - if [ ${CC} != "clang" ]; then
      MEM=$(head -n 1 /proc/meminfo); RAM=(${MEM// / });
      MAX_JOBS=$(( ${RAM[1]} / 393216 )); echo Max jobs\:\ $MAX_JOBS;
      CORES=$(grep -c ^processor /proc/cpuinfo);
      [ $CORES -lt $MAX_JOBS ] && MAX_JOBS=$CORES; echo Real jobs\:\ $MAX_JOBS;
      ${CC} --version; ${CXX} --version;
      ./scripts/build.sh -j $MAX_JOBS;
      export CC=`which gcc-5`;
      export CXX=`which g++-5`;
      ${CC} --version; ${CXX} --version;
      ./scripts/build.sh -j $MAX_JOBS;
    else
      ${CC} --version ; ${CXX} --version;
      ./scripts/build.sh;
    fi