language: c sudo: false compiler: - gcc - clang os: - linux - osx env: global: - BUILD_TYPE=Coverage - ENABLE_SSL_DYNAMIC_LOADING=YES - ENABLE_CXX=NO - ENABLE_LUA=NO - ENABLE_LUA_SHARED=NO - C_STANDARD=auto - CXX_STANDARD=auto matrix: # Start with a minimal build - BUILD_SHARED=NO NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO - BUILD_SHARED=YES NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO # Run the default build (no "NO_*" options, no "USE_*"/"WITH_*" options) - BUILD_SHARED=NO NO_FILES=NO ENABLE_SSL=YES NO_CGI=NO ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO - BUILD_SHARED=YES NO_FILES=NO ENABLE_SSL=YES NO_CGI=NO ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO # Full featured build - BUILD_SHARED=NO NO_FILES=NO ENABLE_SSL=YES NO_CGI=NO ENABLE_IPV6=YES ENABLE_WEBSOCKETS=YES - BUILD_SHARED=YES NO_FILES=NO ENABLE_SSL=YES NO_CGI=NO ENABLE_IPV6=YES ENABLE_WEBSOCKETS=YES # One selected feature (files) - BUILD_SHARED=NO NO_FILES=NO ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO - BUILD_SHARED=YES NO_FILES=NO ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO # One selected feature (SSL) - BUILD_SHARED=NO NO_FILES=YES ENABLE_SSL=YES NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO - BUILD_SHARED=YES NO_FILES=YES ENABLE_SSL=YES NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO # One selected feature (CGI) - BUILD_SHARED=NO NO_FILES=YES ENABLE_SSL=NO NO_CGI=NO ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO - BUILD_SHARED=YES NO_FILES=YES ENABLE_SSL=NO NO_CGI=NO ENABLE_IPV6=NO ENABLE_WEBSOCKETS=NO # One selected feature (IPv6) - BUILD_SHARED=NO NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=YES ENABLE_WEBSOCKETS=NO - BUILD_SHARED=YES NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=YES ENABLE_WEBSOCKETS=NO # One selected feature (WebSockets) - BUILD_SHARED=NO NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=YES - BUILD_SHARED=YES NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=YES # Selecteded combination (SSL + websocket) - BUILD_SHARED=NO NO_FILES=YES ENABLE_SSL=YES NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=YES - BUILD_SHARED=YES NO_FILES=YES ENABLE_SSL=NO NO_CGI=YES ENABLE_IPV6=NO ENABLE_WEBSOCKETS=YES # Selecteded combination (SSL + CGI + files + websocket) - BUILD_SHARED=NO NO_FILES=NO ENABLE_SSL=YES NO_CGI=NO ENABLE_IPV6=NO ENABLE_WEBSOCKETS=YES - BUILD_SHARED=YES NO_FILES=NO ENABLE_SSL=NO NO_CGI=NO ENABLE_IPV6=NO ENABLE_WEBSOCKETS=YES 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 - ls -l - /sbin/ip addr show # Generate the build scripts with CMake - mkdir output - 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_C_STANDARD=${C_STANDARD} -DCIVETWEB_CXX_STANDARD=${CXX_STANDARD} .. cache: directories: - $HOME/third-party matrix: - fast_finish: true script: - CTEST_OUTPUT_ON_FAILURE=1 make all test after_success: - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then coveralls --include src --include include --gcov-options '\-lp' --root .. --build-root .; fi