# Possible test configurations for comprehensive feature coverage:
#
# Unix
# ----
# 1) -Dnetwork:BOOL=ON -Dnetwork-accessor=curl -Dmessage-loader=icu -Dtranscoder=iconv
# 2) -Dnetwork:BOOL=ON -Dnetwork-accessor=socket -Dmessage-loader=inmemory -Dtranscoder=icu
# 3) -Dnetwork:BOOL=ON -Dmessage-loader=iconv
# 4) -Dnetwork:BOOL=OFF
# 5) (none)

language: c

sudo: false
dist: bionic

cache:
  directories:
    - download

addons:
  apt_packages:
    - libicu-dev
    - libcurl4-openssl-dev
    - autoconf
    - automake
    - libtool
    - cmake
    - ninja-build
  homebrew:
    packages:
    - icu
    - curl
    - autoconf
    - automake
    - libtool
    - cmake
    - ninja

os:
  - linux
  - osx

env:
  matrix:
    - BUILD=autoconf TYPE=Release MUTEXMGR=posix NETWORK=ON NETACCESSOR=curl MSGLOADER=inmemory TRANSCODER=iconv XMLCH=char16_t
    - BUILD=cmake TOOL="Unix Makefiles" TYPE=Debug NETWORK=ON NETACCESSOR=curl MSGLOADER=icu TRANSCODER=iconv XMLCH=uint16_t
    - BUILD=cmake TOOL="Ninja" TYPE=Release MUTEXMGR=posix NETWORK=ON NETACCESSOR=socket MSGLOADER=inmemory TRANSCODER=icu XMLCH=char16_t
    - BUILD=autoconf TYPE=Debug NETWORK=ON MSGLOADER=iconv XMLCH=uint16_t
    - BUILD=cmake TOOL="Unix Makefiles" MUTEXMGR=standard TYPE=Release NETWORK=ON
    - BUILD=cmake TOOL="Ninja" TYPE=Debug MUTEXMGR=nothreads
    - BUILD=cmake TOOL="Ninja" TYPE=Debug NETACCESSOR=cfurl TRANSCODER=macosunicodeconverter XMLCH=uint16_t

matrix:
  fast_finish: true
  exclude:
    - os: linux
      env: BUILD=cmake TOOL="Ninja" TYPE=Debug NETACCESSOR=cfurl TRANSCODER=macosunicodeconverter XMLCH=uint16_t
    - os: osx
      env: BUILD=cmake TOOL="Unix Makefiles" TYPE=Debug NETWORK=ON NETACCESSOR=curl MSGLOADER=icu TRANSCODER=iconv XMLCH=uint16_t
    - os: osx
      env: BUILD=cmake TOOL="Ninja" TYPE=Release MUTEXMGR=posix NETWORK=ON NETACCESSOR=socket MSGLOADER=inmemory TRANSCODER=icu XMLCH=char16_t
    - os: osx
      env: BUILD=autoconf TYPE=Debug NETWORK=ON MSGLOADER=iconv XMLCH=uint16_t
    - os: osx
      env: BUILD=cmake TOOL="Unix Makefiles" MUTEXMGR=standard TYPE=Release NETWORK=ON
    - os: osx
      env: BUILD=cmake TOOL="Ninja" TYPE=Debug MUTEXMGR=nothreads

script:
  - ./scripts/ci-travis "$BUILD" "$TOOL" "$TYPE" "$MUTEXMGR" "$NETWORK" "$NETACCESSOR" "$MSGLOADER" "$TRANSCODER" "$XMLCH"
