diff --git a/.appveyor.yml b/.appveyor.yml index 0f9c388..f225bad 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -7,34 +7,17 @@ platform: - x64 configuration: - - Debug - Release for: -- - matrix: - only: - - platform: x86 - configuration: Debug - build_script: - - scripts\build_debug_x86.bat - -- - matrix: - only: - - platform: x64 - configuration: Debug - build_script: - - scripts\build_debug_x64.bat - - matrix: only: - platform: x86 configuration: Release build_script: - - scripts\build_release_x86.bat + - .ci\build_windows_x86.bat - matrix: @@ -42,4 +25,4 @@ for: - platform: x64 configuration: Release build_script: - - scripts\build_release_x64.bat + - .ci\build_windows_x64.bat diff --git a/.ci/build_coverage.sh b/.ci/build_coverage.sh new file mode 100755 index 0000000..7c8a1aa --- /dev/null +++ b/.ci/build_coverage.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -e +DIR="$( cd "$( dirname "${BASH_SOURCE}" )" && pwd )" + +ROOT_DIR="${DIR}/.." +BUILD_DIR="${ROOT_DIR}/build/coverage" + +mkdir -p "${BUILD_DIR}" +(cd "${BUILD_DIR}" && cmake "${ROOT_DIR}" -DCMAKE_BUILD_TYPE=Debug -DBUILD_WITH_COVERAGE=ON) +(cd "${BUILD_DIR}" && cmake --build .) + +(cd "${BUILD_DIR}" && lcov -d . -z) +(cd "${BUILD_DIR}" && ctest --verbose) + +(cd "${BUILD_DIR}" && lcov -d . -c -o "coverage.info") +(cd "${BUILD_DIR}" && lcov -r "coverage.info" "*/usr/*" "*/untests/*" -o "coverage.info") +(cd "${BUILD_DIR}" && lcov -l "coverage.info") + +bash <(curl -s https://codecov.io/bash) -f "${BUILD_DIR}/coverage.info" || echo "Codecov did not collect coverage reports" diff --git a/.ci/build_darwin.sh b/.ci/build_darwin.sh new file mode 100755 index 0000000..658e0c1 --- /dev/null +++ b/.ci/build_darwin.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e +DIR="$( cd "$( dirname "${BASH_SOURCE}" )" && pwd )" + +ROOT_DIR="${DIR}/.." +BUILD_DIR="${ROOT_DIR}/build/darwin_release" + +mkdir -p "${BUILD_DIR}" +(cd "${BUILD_DIR}" && cmake "${ROOT_DIR}" -DCMAKE_BUILD_TYPE=Release) +(cd "${BUILD_DIR}" && cmake --build .) +(cd "${BUILD_DIR}" && ctest --verbose) diff --git a/.ci/build_linux.sh b/.ci/build_linux.sh new file mode 100755 index 0000000..c622bc4 --- /dev/null +++ b/.ci/build_linux.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e +DIR="$( cd "$( dirname "${BASH_SOURCE}" )" && pwd )" + +ROOT_DIR="${DIR}/.." +BUILD_DIR="${ROOT_DIR}/build/linux_release" + +mkdir -p "${BUILD_DIR}" +(cd "${BUILD_DIR}" && cmake "${ROOT_DIR}" -DCMAKE_BUILD_TYPE=Release) +(cd "${BUILD_DIR}" && cmake --build .) +(cd "${BUILD_DIR}" && ctest --verbose) diff --git a/.ci/build_windows_x64.bat b/.ci/build_windows_x64.bat new file mode 100644 index 0000000..0fff1e8 --- /dev/null +++ b/.ci/build_windows_x64.bat @@ -0,0 +1,19 @@ +@echo off +set DIR=%~dp0 + +set ROOT_DIR=%DIR%..\ +set BUILD_DIR=%ROOT_DIR%build\windows_release_x64\ + +if not exist %BUILD_DIR% mkdir %BUILD_DIR% || goto :error + +pushd %BUILD_DIR% || goto :error +cmake %ROOT_DIR% -A x64 || goto :error +cmake --build . --config Release || goto :error +ctest --verbose || goto :error +popd || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/.ci/build_windows_x86.bat b/.ci/build_windows_x86.bat new file mode 100644 index 0000000..58f0a9f --- /dev/null +++ b/.ci/build_windows_x86.bat @@ -0,0 +1,19 @@ +@echo off +set DIR=%~dp0 + +set ROOT_DIR=%DIR%..\ +set BUILD_DIR=%ROOT_DIR%build\windows_release_x86\ + +if not exist %BUILD_DIR% mkdir %BUILD_DIR% || goto :error + +pushd %BUILD_DIR% || goto :error +cmake %ROOT_DIR% -A Win32 || goto :error +cmake --build . --config Release || goto :error +ctest --verbose || goto :error +popd || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index 69ebbfa..0000000 --- a/.codecov.yml +++ /dev/null @@ -1,4 +0,0 @@ -ignore: - - "catch.hpp" - - "catch_main.hpp" - - "*_tests.cpp" diff --git a/.travis.yml b/.travis.yml index 23ef776..8fe6c8c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,159 +1,75 @@ +git: + depth: false + quiet: true + language: cpp -matrix: +jobs: include: # - # windows (MSVC 2017) - # - - - os: windows - stage: windows - name: debug, MSVC 2017, x86 - script: ./scripts/build_debug_x86.bat - - - os: windows - stage: windows - name: release, MSVC 2017, x86 - script: ./scripts/build_release_x86.bat - - - os: windows - stage: windows - name: debug, MSVC 2017, x64 - script: ./scripts/build_debug_x64.bat - - - os: windows - stage: windows - name: release, MSVC 2017, x64 - script: ./scripts/build_release_x64.bat - - # - # linux (g++-4.9) + # linux (g++) # - os: linux dist: xenial stage: linux - name: debug, g++-4.9 + name: g++-4.9 addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-4.9"] } } env: CC=gcc-4.9 CXX=g++-4.9 - script: ./scripts/build_debug.sh + script: .ci/build_linux.sh - os: linux dist: xenial stage: linux - name: release, g++-4.9 - addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-4.9"] } } - env: CC=gcc-4.9 CXX=g++-4.9 - script: ./scripts/build_release.sh - - # - # linux (g++-5) - # - - - os: linux - dist: xenial - stage: linux - name: debug, g++-5 + name: g++-5 addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-5"] } } env: CC=gcc-5 CXX=g++-5 - script: ./scripts/build_debug.sh - - - os: linux - dist: xenial - stage: linux - name: release, g++-5 - addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-5"] } } - env: CC=gcc-5 CXX=g++-5 - script: ./scripts/build_release.sh + script: .ci/build_linux.sh # - # linux (clang++-3.8) + # linux (clang++) # - os: linux dist: xenial stage: linux - name: debug, clang++-3.8 - addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-3.8"], packages: ["g++-4.9", "clang-3.8"] } } + name: clang++-3.8 + addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["clang-3.8"] } } env: CC=clang-3.8 CXX=clang++-3.8 - script: ./scripts/build_debug.sh + script: .ci/build_linux.sh - os: linux dist: xenial stage: linux - name: release, clang++-3.8 - addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-3.8"], packages: ["g++-4.9", "clang-3.8"] } } - env: CC=clang-3.8 CXX=clang++-3.8 - script: ./scripts/build_release.sh - - # - # linux (clang++-4.0) - # - - - os: linux - dist: xenial - stage: linux - name: debug, clang++-4.0 - addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-4.0"], packages: ["g++-4.9", "clang-4.0"] } } + name: clang++-4.0 + addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["clang-4.0"] } } env: CC=clang-4.0 CXX=clang++-4.0 - script: ./scripts/build_debug.sh - - - os: linux - dist: xenial - stage: linux - name: release, clang++-4.0 - addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-4.0"], packages: ["g++-4.9", "clang-4.0"] } } - env: CC=clang-4.0 CXX=clang++-4.0 - script: ./scripts/build_release.sh + script: .ci/build_linux.sh # - # macosx (xcode10) + # darwin # - os: osx osx_image: xcode10 - stage: macosx - name: debug, xcode10 - script: ./scripts/build_debug.sh - - - os: osx - osx_image: xcode10 - stage: macosx - name: release, xcode10 - script: ./scripts/build_release.sh - - # - # macosx (xcode11) - # + stage: darwin + name: xcode10 + script: .ci/build_darwin.sh - os: osx osx_image: xcode11 - stage: macosx - name: debug, xcode11 - script: ./scripts/build_debug.sh - - - os: osx - osx_image: xcode11 - stage: macosx - name: release, xcode11 - script: ./scripts/build_release.sh + stage: darwin + name: xcode11 + script: .ci/build_darwin.sh # # coverage # - os: osx - osx_image: xcode11 + osx_image: xcode10 stage: coverage - name: coverage, xcode11 - addons: { homebrew: { packages: ["lcov"] } } - script: ./scripts/upload_coverage.sh - -before_install: - - if [ "$TRAVIS_OS_NAME" == 'linux' ]; then - mkdir $HOME/cmake; - export PATH="$HOME/cmake/bin:$PATH"; - travis_retry wget -q https://cmake.org/files/v3.11/cmake-3.11.4-Linux-x86_64.sh; - sh cmake-3.11.4-Linux-x86_64.sh --prefix=$HOME/cmake --exclude-subdir --skip-license; - fi + name: coverage + addons: { homebrew: { packages: ["lcov"], update: true } } + script: .ci/build_coverage.sh diff --git a/scripts/build_all.bat b/scripts/build_all.bat deleted file mode 100644 index 9e778dc..0000000 --- a/scripts/build_all.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -set SCRIPT_DIR=%~dp0% -call %SCRIPT_DIR%\build_debug_x86.bat || goto :error -call %SCRIPT_DIR%\build_debug_x64.bat || goto :error -call %SCRIPT_DIR%\build_release_x86.bat || goto :error -call %SCRIPT_DIR%\build_release_x64.bat || goto :error - -goto :EOF - -:error -echo Failed with error #%errorlevel%. -exit /b %errorlevel% diff --git a/scripts/build_all.sh b/scripts/build_all.sh deleted file mode 100755 index d9cd585..0000000 --- a/scripts/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -e -SCRIPT_DIR=`dirname "$BASH_SOURCE"` -$SCRIPT_DIR/build_debug.sh -$SCRIPT_DIR/build_release.sh diff --git a/scripts/build_clear.bat b/scripts/build_clear.bat deleted file mode 100644 index 44375fb..0000000 --- a/scripts/build_clear.bat +++ /dev/null @@ -1,9 +0,0 @@ -@echo off -set BUILD_DIR=%~dp0%\..\build -rmdir /s /q %BUILD_DIR% || goto :error - -goto :EOF - -:error -echo Failed with error #%errorlevel%. -exit /b %errorlevel% diff --git a/scripts/build_clear.sh b/scripts/build_clear.sh deleted file mode 100755 index ef8a2e3..0000000 --- a/scripts/build_clear.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -e -BUILD_DIR=`dirname "$BASH_SOURCE"`/../build -rm -rf $BUILD_DIR diff --git a/scripts/build_debug.sh b/scripts/build_debug.sh deleted file mode 100755 index a069095..0000000 --- a/scripts/build_debug.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -e -BUILD_DIR=`dirname "$BASH_SOURCE"`/../build -mkdir -p $BUILD_DIR/Debug -pushd $BUILD_DIR/Debug -cmake -DCMAKE_BUILD_TYPE=Debug ../.. -cmake --build . -ctest --verbose -popd diff --git a/scripts/build_debug_x64.bat b/scripts/build_debug_x64.bat deleted file mode 100644 index f80c2f3..0000000 --- a/scripts/build_debug_x64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -set BUILD_DIR=%~dp0%\..\build -mkdir %BUILD_DIR%\Debug\x64 || goto :error -pushd %BUILD_DIR%\Debug\x64 || goto :error -cmake ..\..\.. -A x64 || goto :error -cmake --build . --config Debug || goto :error -ctest --verbose || goto :error -popd || goto :error - -goto :EOF - -:error -echo Failed with error #%errorlevel%. -exit /b %errorlevel% diff --git a/scripts/build_debug_x86.bat b/scripts/build_debug_x86.bat deleted file mode 100644 index ee05129..0000000 --- a/scripts/build_debug_x86.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -set BUILD_DIR=%~dp0%\..\build -mkdir %BUILD_DIR%\Debug\x86 || goto :error -pushd %BUILD_DIR%\Debug\x86 || goto :error -cmake ..\..\.. -A Win32 || goto :error -cmake --build . --config Debug || goto :error -ctest --verbose || goto :error -popd || goto :error - -goto :EOF - -:error -echo Failed with error #%errorlevel%. -exit /b %errorlevel% diff --git a/scripts/build_release.sh b/scripts/build_release.sh deleted file mode 100755 index 1377504..0000000 --- a/scripts/build_release.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -e -BUILD_DIR=`dirname "$BASH_SOURCE"`/../build -mkdir -p $BUILD_DIR/Release -pushd $BUILD_DIR/Release -cmake -DCMAKE_BUILD_TYPE=Release ../.. -cmake --build . -ctest --verbose -popd diff --git a/scripts/build_release_x64.bat b/scripts/build_release_x64.bat deleted file mode 100644 index 65e251e..0000000 --- a/scripts/build_release_x64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -set BUILD_DIR=%~dp0%\..\build -mkdir %BUILD_DIR%\Release\x64 || goto :error -pushd %BUILD_DIR%\Release\x64 || goto :error -cmake ..\..\.. -A x64 || goto :error -cmake --build . --config Release || goto :error -ctest --verbose || goto :error -popd || goto :error - -goto :EOF - -:error -echo Failed with error #%errorlevel%. -exit /b %errorlevel% diff --git a/scripts/build_release_x86.bat b/scripts/build_release_x86.bat deleted file mode 100644 index 1be857b..0000000 --- a/scripts/build_release_x86.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -set BUILD_DIR=%~dp0%\..\build -mkdir %BUILD_DIR%\Release\x86 || goto :error -pushd %BUILD_DIR%\Release\x86 || goto :error -cmake ..\..\.. -A Win32 || goto :error -cmake --build . --config Release || goto :error -ctest --verbose || goto :error -popd || goto :error - -goto :EOF - -:error -echo Failed with error #%errorlevel%. -exit /b %errorlevel% diff --git a/scripts/upload_coverage.sh b/scripts/upload_coverage.sh deleted file mode 100755 index b36265d..0000000 --- a/scripts/upload_coverage.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e - -BUILD_DIR=`dirname "$BASH_SOURCE"`/../build -mkdir -p $BUILD_DIR/coverage -cd $BUILD_DIR/coverage -cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_WITH_COVERAGE=ON ../.. -cmake --build . - -lcov -d . -z -ctest --verbose - -lcov -d . -c -o "coverage.info" -lcov -r "coverage.info" "*/usr/*" "*/catch.hpp" "*/catch_main.cpp" "*_tests.cpp" "*_examples.cpp" -o "coverage.info" -lcov -l "coverage.info" - -bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"