diff --git a/.appveyor.yml b/.appveyor.yml index 29164b675..5541cbbb4 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,54 +1,107 @@ -# clone directory -clone_folder: C:\boost.compute - -# do not build on tags -skip_tags: true - -# clone only the top level commit -shallow_clone: true - -# branches to build -branches: - # blacklist - except: - - gh-pages - # environment variables environment: global: BOOST_COMPUTE_DEFAULT_PLATFORM: Intel(R) OpenCL - # OpenCL version used in tests (2.0) - OPENCL_VERSION: 200 - CXXFLAGS: -DBOOST_COMPUTE_MAX_CL_VERSION=%OPENCL_VERSION% + CMAKE_OPTIONS: -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DBOOST_COMPUTE_BUILD_BENCHMARKS=ON -DBOOST_COMPUTE_USE_OFFLINE_CACHE=ON -DBOOST_COMPUTE_HAVE_OPENCV=ON -DBOOST_COMPUTE_THREAD_SAFE=ON + CXXFLAGS: -DBOOST_COMPUTE_MAX_CL_VERSION=201 matrix: + - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 + CMAKE_GENERATOR: Unix Makefiles + OPENCL_LIB: POCL + CXXFLAGS: -DBOOST_COMPUTE_MAX_CL_VERSION=102 -Wno-deprecated-declarations + - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 + CMAKE_GENERATOR: Unix Makefiles + OPENCL_LIB: INTEL + CXXFLAGS: -DBOOST_COMPUTE_MAX_CL_VERSION=201 -Wno-deprecated-declarations + - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1604 + CMAKE_GENERATOR: Unix Makefiles + OPENCL_LIB: INTEL - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 CMAKE_GENERATOR: Visual Studio 15 2017 Win64 BOOST_ROOT: C:\Libraries\boost_1_67_0 + OPENCV_DIR: C:\tools\opencv\build\x64\vc15\lib\ + OPENCV_BINDIR: C:\tools\opencv\build\x64\vc15\bin\ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 CMAKE_GENERATOR: Visual Studio 14 2015 Win64 BOOST_ROOT: C:\Libraries\boost_1_63_0 + OPENCV_DIR: C:\tools\opencv\build\x64\vc14\lib\ + OPENCV_BINDIR: C:\tools\opencv\build\x64\vc14\bin\ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 CMAKE_GENERATOR: Visual Studio 12 2013 Win64 BOOST_ROOT: C:\Libraries\boost_1_58_0 + CMAKE_OPTIONS: -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DBOOST_COMPUTE_BUILD_BENCHMARKS=ON -DBOOST_COMPUTE_USE_OFFLINE_CACHE=ON -DBOOST_COMPUTE_HAVE_OPENCV=OFF -DBOOST_COMPUTE_THREAD_SAFE=ON -before_build: +install: + # Install OpenCV + - choco install opencv --version 3.4.4 + - set PATH=%OPENCV_BINDIR%;%PATH% # Install OpenCL headers and libraries - set NUGETDIR=C:\NUGET - nuget install opencl-nug -Version 0.777.77 -OutputDirectory %NUGETDIR% - - dir %NUGETDIR%\opencl-nug.0.777.77\build\native\ - - set OCL_ROOT=%NUGETDIR%\opencl-nug.0.777.77\build\native + - set OCL_ROOT=%NUGETDIR%\opencl-nug.0.777.77\build\native\ + - dir %OCL_ROOT% # Install OpenCL Runtime - choco install opencl-intel-cpu-runtime - # Check if it's working + # Download clinfo executable - ps: appveyor DownloadFile "https://ci.appveyor.com/api/projects/oblomov/clinfo/artifacts/clinfo.exe?job=platform:+x64" -FileName clinfo.exe - - .\clinfo.exe build_script: + - sh: clinfo + - sh: echo ${CMAKE_OPTIONS} + - sh: echo ${CXXFLAGS} + - sh: echo ${CMAKE_GENERATOR} + - sh: echo ${CC} + - sh: echo ${CXX} + - cmd: .\clinfo.exe + - cmd: echo %CMAKE_OPTIONS% + - cmd: echo %CXXFLAGS% + - cmd: echo %CMAKE_GENERATOR% + - cmd: echo %CC% + - cmd: echo %CXX% - mkdir build && cd build - - cmake -G"%CMAKE_GENERATOR%" -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON .. - - cmake --build . --config Debug + - cmd: cmake -G"%CMAKE_GENERATOR%" %CMAKE_OPTIONS% .. + - sh: cmake -G"${CMAKE_GENERATOR}" ${CMAKE_OPTIONS} .. + - cmake --build . --config Debug -j 2 test_script: - - .\example\Debug\list_devices.exe - - .\example\Debug\hello_world.exe + - cmd: .\example\Debug\list_devices.exe + - cmd: .\example\Debug\hello_world.exe + - sh: ./example/list_devices + - sh: ./example/hello_world - ctest --output-on-failure --repeat-until-fail 2 + +for: +- + matrix: + only: + - CMAKE_GENERATOR: Unix Makefiles + OPENCL_LIB: INTEL + + install: &install_linux + - sudo apt-get update + - sudo apt-get install libboost-all-dev libopencv-dev -y + - sudo apt-get install ocl-icd-opencl-dev opencl-headers clinfo -y + - sudo apt-get install g++-5 -y + - export CC=gcc-5 + - export CXX=g++-5 + + before_build: + # https://software.intel.com/en-us/articles/opencl-drivers#cpu-section + - PACKAGE_URL=http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/13793/l_opencl_p_18.1.0.013.tgz + - PACKAGE_NAME=l_opencl_p_18.1.0.013 + - wget -q ${PACKAGE_URL} -O /tmp/opencl_runtime.tgz + - tar -xzf /tmp/opencl_runtime.tgz -C /tmp + - sed 's/decline/accept/g' -i /tmp/${PACKAGE_NAME}/silent.cfg + - sudo /tmp/${PACKAGE_NAME}/install.sh -s /tmp/${PACKAGE_NAME}/silent.cfg + +- + matrix: + only: + - CMAKE_GENERATOR: Unix Makefiles + OPENCL_LIB: POCL + + install: *install_linux + + before_build: + - sudo apt-get install libpocl-dev -y + - poclcc -l diff --git a/.travis.yml b/.travis.yml index 3ee0fdc17..075e0f9a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,11 @@ language: cpp +dist: xenial env: global: - DEPS_DIR=${TRAVIS_BUILD_DIR}/deps # CMake - - CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2-Linux-x86_64.tar.gz + - CMAKE_URL=https://cmake.org/files/v3.13/cmake-3.13.2-Linux-x86_64.tar.gz # OpenCL - OPENCL_LIB=default # Khronos OpenCL ICD @@ -20,12 +21,12 @@ env: - POCL_C_COMPILER=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/clang - POCL_OPENCL_LIB=${POCL_ROOT}/lib/libOpenCL.so # Global build options and C++ flags - - GCC_VERSION=5 - CMAKE_OPTIONS="-DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DBOOST_COMPUTE_BUILD_BENCHMARKS=ON -DBOOST_COMPUTE_USE_OFFLINE_CACHE=ON -DBOOST_COMPUTE_HAVE_OPENCV=ON -DBOOST_COMPUTE_THREAD_SAFE=ON" - CXX_FLAGS="-Wall -pedantic -Werror -Wno-variadic-macros -Wno-long-long -Wno-shadow -DCI_BUILD" # Boost - BOOST_VERSION=default # Misc + - GENERATOR="Unix Makefiles" - RUN_TESTS=true - COVERAGE=false @@ -38,12 +39,10 @@ matrix: # Xenial, OpenCL 1.0 # CLANG - os: linux - dist: xenial compiler: clang addons: apt: - packages: &xenial_pocl_packages - - g++-5 + packages: &xenial_packages # POCL - libltdl-dev - libhwloc-dev @@ -62,20 +61,17 @@ matrix: - python-yaml - lcov - libopencv-dev - sources: &xenial_pocl_sources - - ubuntu-toolchain-r-test + - clinfo env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=100" - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" # GCC - os: linux - dist: xenial compiler: gcc addons: apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources + packages: *xenial_packages env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=100" @@ -83,24 +79,20 @@ matrix: # Xenial, OpenCL 1.1 # CLANG - os: linux - dist: xenial compiler: clang addons: apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources + packages: *xenial_packages env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=101" - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" # GCC - os: linux - dist: xenial compiler: gcc addons: apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources + packages: *xenial_packages env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=101" @@ -108,102 +100,74 @@ matrix: # Xenial, OpenCL 1.2 # CLANG - os: linux - dist: xenial compiler: clang addons: apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources + packages: *xenial_packages env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" # GCC - os: linux - dist: xenial compiler: gcc addons: apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources + packages: *xenial_packages env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" - - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON" + - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" ############################################################################ # Intel OpenCL Runtime builds (1.2, 2.0, 2.1) ############################################################################ - # Linux, Intel OpenCL 1.2 + # Xenial, Intel OpenCL 1.2 # CLANG - os: linux - dist: xenial compiler: clang addons: apt: - packages: &xenial_intel_packages - - g++-5 - # Boost - - libboost-chrono1.58-dev - - libboost-date-time1.58-dev - - libboost-test1.58-dev - - libboost-system1.58-dev - - libboost-filesystem1.58-dev - - libboost-timer1.58-dev - - libboost-program-options1.58-dev - - libboost-thread1.58-dev - # Misc - - python-yaml - - lcov - - libopencv-dev - sources: &xenial_intel_sources - - ubuntu-toolchain-r-test + packages: *xenial_packages env: - OPENCL_LIB=intel - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" # GCC - os: linux - dist: xenial compiler: gcc addons: apt: - packages: *xenial_intel_packages - sources: *xenial_intel_sources + packages: *xenial_packages env: - OPENCL_LIB=intel - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" - # Linux, Intel OpenCL 2.0 + # Xenial, Intel OpenCL 2.0 # CLANG - os: linux - dist: xenial compiler: clang addons: apt: - packages: *xenial_intel_packages - sources: *xenial_intel_sources + packages: *xenial_packages env: - OPENCL_LIB=intel - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" # GCC - os: linux - dist: xenial compiler: gcc addons: apt: - packages: *xenial_intel_packages - sources: *xenial_intel_sources + packages: *xenial_packages env: - OPENCL_LIB=intel - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" - # Linux, Intel OpenCL 2.1, New Boost Libs, C++11, Coverage + # Xenial, Intel OpenCL 2.1, New Boost Libs, C++11, Coverage # CLANG - os: linux - dist: xenial compiler: clang cache: ccache: true @@ -212,21 +176,18 @@ matrix: addons: apt: packages: &xenial_intel_latest_boost_packages - - g++-5 - # Misc - - python-yaml - - lcov - - libopencv-dev - sources: &xenial_intel_latest_boost_sources - - ubuntu-toolchain-r-test + # Misc + - python-yaml + - lcov + - libopencv-dev + - clinfo env: - OPENCL_LIB=intel - - BOOST_VERSION="1_67_0" - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=201" + - BOOST_VERSION="1_67_0" # Boost 1.67.0 + - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=201" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" # GCC - os: linux - dist: xenial compiler: gcc cache: ccache: true @@ -235,12 +196,10 @@ matrix: addons: apt: packages: *xenial_intel_latest_boost_packages - sources: *xenial_intel_latest_boost_sources env: - OPENCL_LIB=intel - - BOOST_VERSION="1_67_0" - - COVERAGE=true - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=201" + - BOOST_VERSION="1_67_0" # Boost 1.67.0 + - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=201" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON" - COVERAGE=true @@ -255,21 +214,7 @@ matrix: compiler: clang addons: apt: - packages: &xenial_packages - - g++-5 - # Boost - - libboost-chrono1.58-dev - - libboost-date-time1.58-dev - - libboost-test1.58-dev - - libboost-system1.58-dev - - libboost-filesystem1.58-dev - - libboost-timer1.58-dev - - libboost-program-options1.58-dev - - libboost-thread1.58-dev - # Misc - - libopencv-dev - sources: &xenial_sources - - ubuntu-toolchain-r-test + packages: *xenial_packages env: - OPENCL_LIB=khronos-icd - RUN_TESTS=false @@ -282,7 +227,6 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=khronos-icd - RUN_TESTS=false @@ -293,12 +237,68 @@ matrix: # OSX ############################################################################ - # OSX build + # CLANG - os: osx + osx_image: xcode10 compiler: clang env: - - ENV_CXX_FLAGS="-Wno-c99-extensions" - - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" + - MATRIX_EVAL="CC=clang && CXX=clang++ && export PATH=\"/usr/local/opt/llvm/bin:$PATH\" && export LDFLAGS=\"-L/usr/local/opt/llvm/lib\" && export CPPFLAGS=\"-I/usr/local/opt/llvm/include\"" + addons: + homebrew: + packages: &osx_packages + - boost + - cmake + - lcov + - gcc@5 + - llvm + - opencv + - clinfo + # GCC + - os: osx + osx_image: xcode10 + compiler: gcc + env: + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + addons: + homebrew: + packages: *osx_packages + install: + - brew uninstall boost --ignore-dependencies + - travis_wait 50 brew install boost@1.57 --cc=gcc-5 + - brew link boost@1.57 --force + + ############################################################################ + # Windows + ############################################################################ + - os: windows + env: + - GENERATOR="Visual Studio 15 2017 Win64" + - CXX_FLAGS="-DCI_BUILD" + - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" + - NUGETDIR="C:/NUGET" + - OCL_ROOT="$NUGETDIR/opencl-nug.0.777.77/build/native" + install: + # Install OpenCV + - choco install opencv --version 3.4.4 + - export OPENCV_DIR=C:/tools/opencv/build/x64/vc15/lib + - export PATH=C:/tools/opencv/build/x64/vc15/bin:$PATH + # Install Boost + - wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.7z + - 7z x boost_1_67_0.7z -o/C/local + - pushd "/C/local/boost_1_67_0" + - ./bootstrap.bat + - ./b2.exe --with-chrono --with-date_time --with-filesystem --with-program_options --with-system --with-thread --with-timer --with-test + - popd + # Install OpenCL headers and libraries + - choco install nuget.commandline + - nuget install opencl-nug -Version 0.777.77 -OutputDirectory $NUGETDIR + - ls -l $OCL_ROOT + # Install OpenCL Runtime + - choco install opencl-intel-cpu-runtime + # Download clinfo executable and add it to PATH + - mkdir bin + - curl -L 'https://ci.appveyor.com/api/projects/oblomov/clinfo/artifacts/clinfo.exe?job=platform:+x64' -o ./bin/clinfo.exe + - export PATH=./bin/:$PATH cache: directories: @@ -318,22 +318,10 @@ before_install: else echo 'Using cached LLVM.' fi - # OSX - elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - brew update - /usr/bin/yes | pip uninstall numpy - brew outdated boost || brew upgrade boost - brew outdated cmake || brew upgrade cmake - brew install lcov # homebrew/science/opencv fi - gem install coveralls-lcov - - ${CXX} --version - - if [ "$CXX" = "g++" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi - - ${CXX} --version - - # Combine global build options with OS/compiler-dependent options - - export CMAKE_OPTIONS=${CMAKE_OPTIONS}" "${ENV_CMAKE_OPTIONS} - - export CXX_FLAGS=${CXX_FLAGS}" "${ENV_CXX_FLAGS} + # Pick correct compiler on OSX + - eval "${MATRIX_EVAL}" install: ############################################################################ @@ -363,7 +351,6 @@ install: travis_retry wget --no-check-certificate --quiet -O - ${BOOST_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/boost${BOOST_VERSION} pushd ${DEPS_DIR}/boost${BOOST_VERSION} # Configure and install - if [ "$CXX" = "g++-${GCC_VERSION}" ]; then echo "using gcc : ${GCC_VERSION} : g++-${GCC_VERSION} ;" > $HOME/user-config.jam; fi ./bootstrap.sh --prefix=${DEPS_DIR}/boost/ --with-libraries=program_options,filesystem,system,thread,test,timer,chrono ./b2 -d0 install popd @@ -430,7 +417,7 @@ install: # https://software.intel.com/en-us/articles/opencl-drivers#cpu-section PACKAGE_URL=http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/13793/l_opencl_p_18.1.0.013.tgz PACKAGE_NAME=l_opencl_p_18.1.0.013 - wget -q ${PACKAGE_URL} -O /tmp/opencl_runtime.tgz + travis_retry wget -q ${PACKAGE_URL} -O /tmp/opencl_runtime.tgz tar -xzf /tmp/opencl_runtime.tgz -C /tmp sed 's/decline/accept/g' -i /tmp/${PACKAGE_NAME}/silent.cfg sudo /tmp/${PACKAGE_NAME}/install.sh -s /tmp/${PACKAGE_NAME}/silent.cfg @@ -440,12 +427,22 @@ script: ############################################################################ # Build Boost.Compute tests, benchmarks and examples ############################################################################ - - mkdir -p build - - cd build + - clinfo + - mkdir build && cd build + # Combine global build options with OS/compiler-dependent options + - export CMAKE_OPTIONS=${CMAKE_OPTIONS}" "${ENV_CMAKE_OPTIONS} + - export CXXFLAGS=${CXX_FLAGS}" "${ENV_CXX_FLAGS} + - echo ${CXXFLAGS} + - echo ${CXX} + - echo ${CCFLAGS} + - echo ${CC} + - echo ${GENERATOR} - echo ${CMAKE_OPTIONS} - - echo ${CXX_FLAGS} - - cmake ${CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .. - - make -j4 + - cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} .. + # https://stackoverflow.com/questions/39865367/warning-section-textcoal-nt-is-deprecate-since-updating-to-mac-osx-sierra + # Build must be run sequentially or else the grep command will not catch warnings correctly + - if [[ ${TRAVIS_OS_NAME} == "osx" && ${CC} == "gcc-5" ]]; then cmake --build . --config Debug 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*' ; fi + - if [[ ${TRAVIS_OS_NAME} != "osx" || ${CC} != "gcc-5" ]]; then cmake --build . -j 2 --config Debug ; fi - | if [[ ${RUN_TESTS} == "true" ]]; then # Print OpenCL devices @@ -453,11 +450,10 @@ script: # Run tests and examples ctest --output-on-failure --repeat-until-fail 2 fi - after_success: - | if [[ ${COVERAGE} == "true" ]]; then lcov --directory test --base-directory ../include/boost/compute/ --capture --output-file coverage.info lcov --remove coverage.info '/usr*' '*/test/*' '*/deps/*' -o coverage.info cd .. && coveralls-lcov build/coverage.info - fi \ No newline at end of file + fi