dist: xenial
os:
  - linux
compiler:
  - clang
  - gcc
env:
  matrix:
    - CI_BUILD=cmake
    - CI_BUILD=autotools
matrix:
  include:
    - os: osx
      compiler: clang
      osx_image: xcode10.2
      env: CI_BUILD=autotools
language: cpp
sudo: required
addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    packages:
    - g++-8
    - autoconf
    - automake
    - autotools-dev
    - libtool
    - pkg-config
    - zlib1g-dev
    - libcunit1-dev
    - libssl-dev
    - libxml2-dev
    - libev-dev
    - libevent-dev
    - libjansson-dev
    - libjemalloc-dev
    - libc-ares-dev
    - cmake
    - cmake-data
  homebrew:
    packages:
      - libev
      - libevent
      - c-ares
      - cunit
      - libressl
before_install:
  - $CC --version
  - if [ "$CXX" = "g++" ]; then export CXX="g++-8" CC="gcc-8"; fi
  - $CC --version
  - go version
  - cmake --version
before_script:
  - |
    if [ "$TRAVIS_OS_NAME" = "linux" ]; then
      CPPFLAGS="-fsanitize=address" LDFLAGS="-fsanitize=address -fuse-ld=gold"
    fi
  - |
    if [ "$TRAVIS_OS_NAME" = "osx" ]; then
      PKG_CONFIG_PATH="/usr/local/opt/libressl/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig"
    fi
  # Now build nghttp2
  - git submodule update --init
  - |
    if [ "$CI_BUILD" = "autotools" ]; then
      autoreconf -i && ./configure --with-mruby PKG_CONFIG_PATH=$PKG_CONFIG_PATH
    fi
  - |
    if [ "$CI_BUILD" = "cmake" ]; then
      cmake -DENABLE_WERROR=1 -DWITH_MRUBY=1 -DWITH_NEVERBLEED=1
    fi
script:
  - |
    if [ "$CI_BUILD" = "autotools" ]; then
      make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-mruby --with-neverbleed --enable-werror CPPFLAGS=$CPPFLAGS LDFLAGS=\"$LDFLAGS\" PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
    fi
  - |
    if [ "$CI_BUILD" = "cmake" ]; then
      make && make check
    fi
  - |
    if [ "$CI_BUILD" = "cmake" ]; then
      # Integration tests for nghttpx; autotools build erases build
      # for packaging test.
      cd integration-tests
      export GO111MODULE=on
      make it
    fi
