##############################################################################
# Travis version specific build environment specification
##############################################################################

# The "precise" build environment on Travis is in the process of being decommissioned
# see https://blog.travis-ci.com/2017-08-31-trusty-as-default-status
# The "precise=true"+"sudo=required" environment seems to lack IPv6 support.
# According to some tests, all "sudo=required" environments do not support IPv6, see 
# https://github.com/travis-ci/travis-ci/issues/8361#issuecomment-328263113
# The container environments for "sudo=false" support IPv6 localhost [::1] 
# connections for server/client test. Thus, all tests with ENABLE_IPV6=YES
#


##############################################################################
# Project specific settings
##############################################################################

language: c

cache:
  directories:
  - $HOME/third-party

osx_image: xcode8

addons:
  apt:
    packages:
      - cmake
      - openssl
      - libssl-dev
    sources:
      - kubuntu-backports


before_install:
  - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
      mkdir $HOME/usr;
      export PATH="$HOME/usr/bin:$PATH";
      wget https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.sh --no-check-certificate;
      chmod +x cmake-3.7.2-Linux-x86_64.sh;
      ./cmake-3.7.2-Linux-x86_64.sh --prefix=$HOME/usr --exclude-subdir --skip-license;
    fi
  - cmake --version


install:
  - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
      PATH=~/.local/bin:${PATH};
      pip install --user --upgrade pip;
      pip install --user cpp-coveralls;
    fi

before_script:
  # Check some settings of the build server (operating system, IPv6 availability, directory)
  - uname -a
  - ifconfig
  - pwd
  - ls -la
  - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
      apt-cache search gcc | grep "GNU C compiler";
      apt-cache search clang | grep compiler;
    fi
  - if [[ "${BUILD_TYPE}" == "OSX_OPENSSL_1_1" ]]; then brew install openssl@1.1 ;fi
  # Generate the build scripts with CMake
  - mkdir output
  - gcc test/cgi_test.c -o output/cgi_test.cgi
  - cd output
  - cmake --version
  - cmake
    -G "Unix Makefiles"
    -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
    -DBUILD_SHARED_LIBS=${BUILD_SHARED}
    "-DCIVETWEB_THIRD_PARTY_DIR=${HOME}/third-party"
    -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES
    -DCIVETWEB_ENABLE_SSL=${ENABLE_SSL}
    -DCIVETWEB_DISABLE_CGI=${NO_CGI}
    -DCIVETWEB_SERVE_NO_FILES=${NO_FILES}
    -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=${ENABLE_SSL_DYNAMIC_LOADING}
    -DCIVETWEB_SSL_OPENSSL_API_1_1=${OPENSSL_1_1}
    -DCIVETWEB_ENABLE_WEBSOCKETS=${ENABLE_WEBSOCKETS}
    -DCIVETWEB_ENABLE_CXX=${ENABLE_CXX}
    -DCIVETWEB_ENABLE_IPV6=${ENABLE_IPV6}
    -DCIVETWEB_ENABLE_SERVER_STATS=${ENABLE_SERVER_STATS}
    -DCIVETWEB_ENABLE_LUA=${ENABLE_LUA}
    -DCIVETWEB_ENABLE_LUA_SHARED=${ENABLE_LUA_SHARED}
    -DCIVETWEB_ENABLE_DUKTAPE=${ENABLE_DUKTAPE}
    -DCIVETWEB_DISABLE_CACHING=${NO_CACHING}
    -DCIVETWEB_C_STANDARD=${C_STANDARD}
    -DCIVETWEB_CXX_STANDARD=${CXX_STANDARD}
    -DCIVETWEB_ALLOW_WARNINGS=${ALLOW_WARNINGS}
    ${ADDITIONAL_CMAKE_ARGS}
    ..
  - ls -la

script:
  - if [ "${MACOSX_PACKAGE}" == "1" ]; then
      cd "${TRAVIS_BUILD_DIR}";
      make -f Makefile.osx package;
    else
      CTEST_OUTPUT_ON_FAILURE=1 make all test;
    fi

# Coveralls options: https://github.com/eddyxu/cpp-coveralls/blob/master/README.md
after_success:
  - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
      coveralls --include src --exclude src/main.c --exclude src/third_party --include include --gcov-options '\-lp' --root .. --build-root .;
      bash <(curl -s https://codecov.io/bash);
    fi


##############################################################################
# build matrix (auto generated)
##############################################################################


matrix:
  fast_finish: false
  include:

  - dist: trusty
    sudo: false
    os: linux
    compiler: clang
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
          - llvm-toolchain-precise-3.8
        packages:
          - clang-3.8
    env:
      idx=1
      N=Clang3.8-Linux-Minimal-Debug
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
      BUILD_TYPE=Debug
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=0
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_SERVER_STATS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  - dist: trusty
    sudo: false
    os: linux
    compiler: clang
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
          - llvm-toolchain-precise-3.8
        packages:
          - clang-3.8
    env:
      idx=2
      N=Clang3.8-Linux-Default-Release
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_SERVER_STATS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  - dist: trusty
    sudo: false
    os: linux
    compiler: clang
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
          - llvm-toolchain-precise-3.8
        packages:
          - clang-3.8
    env:
      idx=3
      N=Clang3.8-Linux-Default-Release
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_SERVER_STATS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  - dist: trusty
    sudo: false
    os: linux
    compiler: clang
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
          - llvm-toolchain-precise-3.8
        packages:
          - clang-3.8
    env:
      idx=4
      N=Clang3.8-Linux-Complete-NoLua-Release
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES
      ALLOW_WARNINGS=YES


  - dist: trusty
    sudo: false
    os: linux
    compiler: gcc
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
        packages:
          - g++-5
    env:
      idx=5
      N=GCC5-Linux-Complete-NoLua-Release
      MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES
      ALLOW_WARNINGS=YES
  
  - os: linux
    compiler: gcc
    env:
      idx=6
      N=GCCAnyVersion-Linux-Coverage
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  - os: osx
    compiler: clang
    env:
      idx=7
      N=Clang-OSX-Complete-NoLua-Release
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES
      ALLOW_WARNINGS=YES

  -
    os: osx
    compiler: clang
    env:
      idx=8
      N=Clang-OSX-Complete-NoLua-Release-OpenSSL_1_1_NoDynLoad
      BUILD_TYPE=OSX_OPENSSL_1_1
      ENABLE_SSL_DYNAMIC_LOADING=NO
      OPENSSL_1_1=YES
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES
      ALLOW_WARNINGS=YES
      OPENSSL_ROOT_DIR="/usr/local/opt/openssl@1.1"
      LDFLAGS="-L${OPENSSL_ROOT_DIR}/lib"
      CFLAGS="-I${OPENSSL_ROOT_DIR}/include"
      ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DCMAKE_C_FLAGS=${CFLAGS}"
      PATH="${OPENSSL_ROOT_DIR}/bin:$PATH"
      DYLD_LIBRARY_PATH="${OPENSSL_ROOT_DIR}/lib:${DYLD_LIBRARY_PATH}"

  - dist: trusty
    sudo: false
    os: linux
    compiler: clang
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
          - llvm-toolchain-trusty-5.0
        packages:
          - clang-5.0
    env:
      idx=9
      N=Clang50-Linux-Default-Shared
      BUILD_TYPE=Debug
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=YES
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_SERVER_STATS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"

  -
    os: linux
    dist: precise
    sudo: required
    compiler: clang
    env:
      idx=10
      N=Precise-Clang-Linux-Default
      BUILD_TYPE=Debug
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_SERVER_STATS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  -
    os: osx
    compiler: clang
    env:
      idx=11
      N=OSX-Package
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES
      MACOSX_PACKAGE=1

  - dist: trusty
    sudo: false
    os: linux
    compiler: clang
    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
          - llvm-toolchain-trusty-3.8
        packages:
          - clang-3.8
    env:
      idx=12
      N=Clang-Linux-32bit-Complete-NoLua-Release
      ARCH=x86
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_SERVER_STATS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES
      ALLOW_WARNINGS=YES
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"


### Test all build types:
# According to CMakeLists, options are:
# None Debug Release RelWithDebInfo MinSizeRel Coverage

  -
    os: linux
    compiler: clang
    env:
      idx=13
      N=NoSslDynamicLoading
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=NO
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=31
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES
      MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"

  -
    os: linux
    compiler: gcc
    env:
      idx=14
      N=GCCLinuxDefault_Debug
      BUILD_TYPE=Debug
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  -
    os: linux
    compiler: gcc
    env:
      idx=15
      N=GCCLinuxDefault_RelWithDebInfo
      BUILD_TYPE=RelWithDebInfo
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  -
    os: linux
    compiler: gcc
    env:
      idx=16
      N=GCCLinuxDefault_MinSizeRel
      BUILD_TYPE=MinSizeRel
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES

  -
    os: linux
    compiler: gcc
    env:
      idx=17
      N=GCCLinuxDefault_None
      BUILD_TYPE=None
      ENABLE_SSL_DYNAMIC_LOADING=YES
      OPENSSL_1_1=NO
      ENABLE_CXX=NO
      ENABLE_LUA_SHARED=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      FEATURES=7
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      ALLOW_WARNINGS=YES


#### Now all define combinations, but only for Linux clang
##### Generated with Lua:
#
#  function YN(i,b)
#    local bits = {}
#    while (i > 0.5) do
#      i = math.floor(i)
#      bits[#bits+1] = (math.mod(i, 2) == 1)
#      i = i/2
#    end
#    if (bits[b]) then
#      return "YES"
#    end
#    return "NO"
#  end
#  function INV(t)
#    if t=="YES" then
#      return "NO"
#    elseif t=="NO" then
#      return "YES"
#    else
#      assert("ERROR in INV!")
#    end
#  end
#  for i=0,511 do
#    if (YN(i, 6)=="NO") and (YN(i, 7)=="NO") then
#      print("  -")
#      print("    os: linux")
#      print("    compiler: clang")
#      print("    env:")
#      print("      N=C" .. tostring(i) .. "_")
#      print("      BUILD_TYPE=Release")
#      print("      ENABLE_SSL_DYNAMIC_LOADING=YES")
#      print("      OPENSSL_1_1=NO")
#      print("      ENABLE_CXX=NO")
#      print("      C_STANDARD=auto")
#      print("      CXX_STANDARD=auto")
#      print("      ENABLE_LUA_SHARED=NO")
#      print("      FEATURES=" .. tostring(i))
#      print("      BUILD_SHARED=NO")
#      print("      NO_FILES=" .. INV(YN(i, 1)))
#      print("      ENABLE_SSL=" .. YN(i, 2))
#      print("      NO_CGI=" .. INV(YN(i, 3)))
#      print("      ENABLE_IPV6=" .. YN(i, 4))
#      print("      ENABLE_WEBSOCKETS=" .. YN(i, 5))
#      print("      ENABLE_LUA=" .. YN(i, 6))
#      print("      ENABLE_DUKTAPE=" .. YN(i, 7))
#      print("      NO_CACHING=" .. INV(YN(i, 8)))
#      print("      ENABLE_SERVER_STATS=" .. YN(i, 9))
#      print("")
#    end
#  end
#

# TODO: Regenerate this matrix, once a stable Travis build is re-established


