language: c

sudo: false

cache:
  directories:
  - $HOME/third-party



osx_image: xcode8

addons:
  apt:
    packages:
      - cmake
      - openssl
      - libssl-dev
    sources:
      - kubuntu-backports

before_install:
  - 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
  - uname -a
  - pwd
  # 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_ENABLE_WEBSOCKETS=${ENABLE_WEBSOCKETS}
    -DCIVETWEB_ENABLE_CXX=${ENABLE_CXX}
    -DCIVETWEB_ENABLE_IPV6=${ENABLE_IPV6}
    -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}
    ..
  - 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 .;
    fi


###################################

matrix:
  fast_finish: false
  include:

  -
    os: linux
    compiler: clang
    env:
      N=ClangLinuxMinimal
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxMinimal
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: osx
    compiler: clang
    env:
      N=ClangOSXMinimal
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=ClangLinuxMinNoCache
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES

  -
    os: linux
    compiler: clang
    env:
      N=ClangLinuxMax
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxMax
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES

  -
    os: osx
    compiler: clang
    env:
      N=ClangOSXMax
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=YES

  -
    os: linux
    compiler: clang
    env:
      N=ClangLinuxDefault
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefault
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: osx
    compiler: clang
    env:
      N=ClangOSXDefault
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: linux
    compiler: clang
    env:
      N=ClangLinuxDefaultShared
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefaultShared
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: osx
    compiler: clang
    env:
      N=ClangOSXDefaultShared
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: osx
    compiler: clang
    env:
      N=OSX_Package
      BUILD_TYPE=Coverage
      ENABLE_SSL_DYNAMIC_LOADING=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_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO
      MACOSX_PACKAGE=1


#### 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,31 do
#    if true then -- (i~=0) and (i~=7) and (i~=31) 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("      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=NO")
#      print("")
#    end
#  end
#

  -
    os: linux
    compiler: clang
    env:
      N=C0_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=0
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C1_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=1
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C2_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=2
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C3_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=3
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C4_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=4
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C5_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=5
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C6_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=6
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C7_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      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

  -
    os: linux
    compiler: clang
    env:
      N=C8_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=8
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C9_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=9
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C10_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=10
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C11_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=11
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C12_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=12
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C13_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=13
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C14_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=14
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C15_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=15
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=NO
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C16_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=16
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C17_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=17
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C18_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=18
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C19_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=19
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C20_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=20
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C21_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=21
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C22_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=22
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C23_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=23
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=NO
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C24_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=24
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C25_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=25
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C26_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=26
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C27_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=27
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=YES
      NO_CGI=YES
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C28_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=28
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C29_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=29
      BUILD_SHARED=NO
      NO_FILES=NO
      ENABLE_SSL=NO
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C30_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      ENABLE_CXX=NO
      C_STANDARD=auto
      CXX_STANDARD=auto
      ENABLE_LUA_SHARED=NO
      FEATURES=30
      BUILD_SHARED=NO
      NO_FILES=YES
      ENABLE_SSL=YES
      NO_CGI=NO
      ENABLE_IPV6=YES
      ENABLE_WEBSOCKETS=YES
      ENABLE_LUA=NO
      ENABLE_DUKTAPE=NO
      NO_CACHING=NO

  -
    os: linux
    compiler: clang
    env:
      N=C31_
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

### Test all build types:
# According to CMakeLists, options are:
# None Debug Release RelWithDebInfo MinSizeRel Coverage

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefault_Debug
      BUILD_TYPE=Debug
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefault_Release
      BUILD_TYPE=Release
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefault_RelWithDebInfo
      BUILD_TYPE=RelWithDebInfo
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefault_MinSizeRel
      BUILD_TYPE=MinSizeRel
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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

  -
    os: linux
    compiler: gcc
    env:
      N=GCCLinuxDefault_None
      BUILD_TYPE=None
      ENABLE_SSL_DYNAMIC_LOADING=YES
      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
