# cpp takes longer language: minimal sudo: false dist: trusty git: depth: false notifications: email: false # set up build matrix matrix: include: # ============= GCC ================== # gcc-5, c++11, release build, dynamic linking - os: linux compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-5 env: - CXX_COMPILER=g++-5 - C_COMPILER=gcc-5 - CXX_VER=11 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=OFF - SAMPLES=OFF - BENCHMARKS=OFF - RELEASE=OFF # ============= GCC ================== # gcc-6, c++11, release build, dynamic linking - os: linux compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-6 env: - CXX_COMPILER=g++-6 - C_COMPILER=gcc-6 - CXX_VER=11 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=OFF - SAMPLES=OFF - BENCHMARKS=OFF - RELEASE=OFF # gcc-7, c++14, release build, static linking - os: linux compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-7 env: - CXX_COMPILER=g++-7 - C_COMPILER=gcc-7 - CXX_VER=14 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=ON - SAMPLES=OFF - BENCHMARKS=OFF - RELEASE=OFF # gcc-8, c++17, release build, static linking, samples + benchmarks compiled and run - os: linux compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-8 env: - CXX_COMPILER=g++-8 - C_COMPILER=gcc-8 - CXX_VER=17 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=ON - SAMPLES=ON - BENCHMARKS=ON - RELEASE=ON # =========== CLANG ============= # clang 4, c++11, release build, dynamic linking - os: linux compiler: clang addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-trusty-4.0 packages: - clang-4.0 env: - CXX_COMPILER=clang++-4.0 - C_COMPILER=clang-4.0 - CXX_VER=11 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=OFF - SAMPLES=OFF - BENCHMARKS=OFF - RELEASE=OFF # clang 5, c++14, release build, dynamic linking - os: linux compiler: clang addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-trusty-5.0 packages: - clang-5.0 env: - CXX_COMPILER=clang++-5.0 - C_COMPILER=clang-5.0 - CXX_VER=14 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=ON - SAMPLES=OFF - BENCHMARKS=OFF - RELEASE=OFF # clang 6, c++17, release build, static linking, samples + benchmarks compiled and run - os: linux compiler: clang addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-trusty-6.0 packages: - clang-6.0 env: - CXX_COMPILER=clang++-6.0 - C_COMPILER=clang-6.0 - CXX_VER=17 - BUILD_TYPE=Release - COVERAGE=OFF - STATIC=ON - SAMPLES=ON - BENCHMARKS=ON - RELEASE=ON # ============= CODE COVERAGE =============== # gcc-6, c++11, debug build, static linking, code coverage enabled - os: linux compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-6 - lcov env: - CXX_COMPILER=g++-6 - C_COMPILER=gcc-6 - CXX_VER=11 - BUILD_TYPE=Debug - COVERAGE=ON - STATIC=ON - SAMPLES=OFF before_install: - export CC=${C_COMPILER} - export CXX=${CXX_COMPILER} install: - | if [[ "${COVERAGE}" == "ON" ]]; then gem install coveralls-lcov; fi - ${CXX} --version - cmake --version script: - mkdir build - cd build - cmake .. -DXLNT_CXX_LANG=${CXX_VER} -DSTATIC=$STATIC -DBENCHMARKS=$BENCHMARKS -DSAMPLES=$SAMPLES -DCOVERAGE=$COVERAGE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DRELEASE=$RELEASE - cmake --build . -- -j2 - ./tests/xlnt.test - echo "samples" && echo 'travis_fold:start:samples' - if [[ "${SAMPLES}" == "ON" ]]; then ./samples/sample-decrypt; fi - if [[ "${SAMPLES}" == "ON" ]]; then ./samples/sample-img2xlsx "../samples/data/cafe.jpg" "img.xlsx"; fi - if [[ "${SAMPLES}" == "ON" ]]; then ./samples/sample-documentation; fi - echo 'travis_fold:end:samples' - echo "benchmarks" && echo 'travis_fold:start:benchmarks' - if [[ "${BENCHMARKS}" == "ON" ]]; then ./benchmarks/benchmark-styles; fi - if [[ "${BENCHMARKS}" == "ON" ]]; then ./benchmarks/benchmark-writer; fi - echo 'travis_fold:end:benchmarks' after_success: - | if [[ "${COVERAGE}" == "ON" ]]; then lcov --directory source/CMakeFiles/xlnt.dir --capture --output-file coverage.info --base-directory ../source --no-external --gcov-tool /usr/bin/gcov-6 lcov --output-file coverage.info --remove coverage.info source/detail/serialization/miniz.cpp i=$(dirname $(pwd)) sed -i "s|$i/||" coverage.info cd .. coveralls-lcov build/coverage.info fi deploy: provider: releases api_key: secure: "EJKEQkbmNFyXAJYOro7/wSlxSns4O4RAmht5PCBYuOgEqIbB1+QbQjNZd18KyCkqaHQEvww4hVGMdcFsTFnsznjGo6NnDtiYTdhiREtdUd6ohUD0eHTZ15ZL7mW1XR8HWqvv33piDX40UI/dFn1XYLnWunaLZvF5WPa9bzTsloaYHbjxoRw5S4fd0VyqZ2w2zuezCCRUezDcNGOxbVTbB3moSh+hpjrNkw7YxoPNm48CwGRVeRj28XuhDjobfRtPSZMb6Y+EDUnrIZI1mKvB1bkL8QR2ndBtqlG0BWvmEcdDuiQnraJk3iRIAU5T/ycyRqR2UKcW2Fv0iVp5SL9VuqhcvIUxTsYXzuNOZ3hKiWRTj6ndG+gDBsD1K5YwScZksAImwvj/VGEla9Q044W3PbYV2GUE++8mtiZUaxbkaP+uDFUBR5eXqAkte9mainwJ3eaMJ7Tx1KCqkzKO011nUasWfmBWxRUA8vm44SfzwzVfjXToLQZGe4KYzF2cHaXo2YIC48vE/DYs3VnVvnrCjNDO8Cr3m+lfdulhjIZlg+WymQcxuJs7LVzCW7mBPNnrUNOOrGCGP4f/hFxBLk8/eJDznIAzbW27Z1zAHn+MlbADRBzC0Y7cmme4Zu2W7Wy9NTvzNsKabOH/Fe1TfGetEEf6mZ5g7Q3+oZPJ2raLFD8=" file_glob: true file: build/*.tar.gz skip_cleanup: true overwite: true on: repo: tfussell/xlnt tags: true