diff --git a/.travis.yml b/.travis.yml index 3ee0fdc17..8eb536423 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,285 +21,285 @@ 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 matrix: - include: - ############################################################################ - # POCL builds (OpenCL 1.0, 1.1, 1.2) - ############################################################################ + include: +# ############################################################################ +# # POCL builds (OpenCL 1.0, 1.1, 1.2) +# ############################################################################ - # Xenial, OpenCL 1.0 - # CLANG - - os: linux - dist: xenial - compiler: clang - addons: - apt: - packages: &xenial_pocl_packages - - g++-5 - # POCL - - libltdl-dev - - libhwloc-dev - - pkg-config - - libedit-dev - # 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_pocl_sources - - ubuntu-toolchain-r-test - 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 - 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" - # Xenial, OpenCL 1.1 - # CLANG - - os: linux - dist: xenial - compiler: clang - addons: - apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources - 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 - 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" - # Xenial, OpenCL 1.2 - # CLANG - - os: linux - dist: xenial - compiler: clang - addons: - apt: - packages: *xenial_pocl_packages - sources: *xenial_pocl_sources - 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 - 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" +# # Xenial, OpenCL 1.0 +# # CLANG +# - os: linux +# compiler: clang +# addons: +# apt: +# packages: &xenial_packages +# # POCL +# - libltdl-dev +# - libhwloc-dev +# - pkg-config +# - libedit-dev +# # 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 +# - 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 +# compiler: gcc +# addons: +# apt: +# packages: *xenial_packages +# 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" +# # Xenial, OpenCL 1.1 +# # CLANG +# - os: linux +# compiler: clang +# addons: +# apt: +# 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 +# compiler: gcc +# addons: +# apt: +# 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" +# # Xenial, OpenCL 1.2 +# # CLANG +# - os: linux +# compiler: clang +# addons: +# apt: +# 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 +# compiler: gcc +# addons: +# apt: +# 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" + +# ############################################################################ +# # Intel OpenCL Runtime builds (1.2, 2.0, 2.1) +# ############################################################################ + +# # Xenial, Intel OpenCL 1.2 +# # CLANG +# - os: linux +# compiler: clang +# addons: +# apt: +# 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 +# compiler: gcc +# addons: +# apt: +# 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" +# # Xenial, Intel OpenCL 2.0 +# # CLANG +# - os: linux +# compiler: clang +# addons: +# apt: +# 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 +# compiler: gcc +# addons: +# apt: +# 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" +# # Xenial, Intel OpenCL 2.1, New Boost Libs, C++11, Coverage +# # CLANG +# - os: linux +# compiler: clang +# cache: +# ccache: true +# directories: +# - ${DEPS_DIR}/boost +# addons: +# apt: +# packages: &xenial_intel_latest_boost_packages +# # Misc +# - python-yaml +# - lcov +# - libopencv-dev +# - clinfo +# env: +# - OPENCL_LIB=intel +# - BOOST_VERSION="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 +# compiler: gcc +# cache: +# ccache: true +# directories: +# - ${DEPS_DIR}/boost +# addons: +# apt: +# packages: *xenial_intel_latest_boost_packages +# env: +# - OPENCL_LIB=intel +# - BOOST_VERSION="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 -DBOOST_COMPUTE_ENABLE_COVERAGE=ON" +# - COVERAGE=true + +# ############################################################################ +# # OpenCL 2.2 Only Build +# ############################################################################ + +# # Linux, OpenCL 2.2, Tests not run, C++11 +# # CLANG +# - os: linux +# dist: xenial +# compiler: clang +# addons: +# apt: +# packages: *xenial_packages +# env: +# - OPENCL_LIB=khronos-icd +# - RUN_TESTS=false +# - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=202" +# - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ICD_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" +# # GCC +# - os: linux +# dist: xenial +# compiler: gcc +# addons: +# apt: +# packages: *xenial_packages +# env: +# - OPENCL_LIB=khronos-icd +# - RUN_TESTS=false +# - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=202" +# - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ICD_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" ############################################################################ - # Intel OpenCL Runtime builds (1.2, 2.0, 2.1) + # OSX ############################################################################ - # Linux, 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 - 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 - 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 # CLANG - - os: linux - dist: xenial + - os: osx + osx_image: xcode11 compiler: clang - addons: - apt: - packages: *xenial_intel_packages - sources: *xenial_intel_sources - 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 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 - # CLANG - - os: linux - dist: xenial - compiler: clang - cache: - ccache: true - directories: - - ${DEPS_DIR}/boost + - 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: - 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 - env: - - OPENCL_LIB=intel - - BOOST_VERSION="1_67_0" - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=201" - - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" + homebrew: + packages: &osx_packages + - boost + - cmake + - lcov + - gcc@5 + - llvm + - opencv@3 + - clinfo # GCC - - os: linux - dist: xenial + - os: osx + osx_image: xcode11 compiler: gcc cache: ccache: true directories: - - ${DEPS_DIR}/boost - addons: - apt: - packages: *xenial_intel_latest_boost_packages - sources: *xenial_intel_latest_boost_sources + - /usr/local/Cellar/boost@1.57 env: - - OPENCL_LIB=intel - - BOOST_VERSION="1_67_0" - - COVERAGE=true - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -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 - - ############################################################################ - # OpenCL 2.2 Only Build - ############################################################################ - - # Linux, OpenCL 2.2, Tests not run, C++11 - # CLANG - - os: linux - dist: xenial - compiler: clang + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - BOOST_VERSION="1.57" 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 - env: - - OPENCL_LIB=khronos-icd - - RUN_TESTS=false - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=202" - - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ICD_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" - # GCC - - os: linux - dist: xenial - compiler: gcc - addons: - apt: - packages: *xenial_packages - sources: *xenial_sources - env: - - OPENCL_LIB=khronos-icd - - RUN_TESTS=false - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=202" - - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ICD_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" + homebrew: + packages: *osx_packages ############################################################################ - # OSX + # Windows ############################################################################ - - # OSX build - - os: osx - compiler: clang + - os: windows env: - - ENV_CXX_FLAGS="-Wno-c99-extensions" - - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" + - 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 +319,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 +352,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 @@ -373,6 +361,15 @@ install: echo 'Using cached Boost ${BOOST_VERSION} libraries.' fi export CMAKE_OPTIONS=${CMAKE_OPTIONS}" -DBOOST_ROOT=${DEPS_DIR}/boost" + elif [[ ${TRAVIS_OS_NAME} == "osx" && ${BOOST_VERSION} != "default" ]]; then + brew uninstall boost --ignore-dependencies + if [ ! -f "/usr/local/Cellar/boost@${BOOST_VERSION}/cached" ]; then + travis_wait 50 brew install boost@${BOOST_VERSION} --cc=gcc-5 + touch /usr/local/Cellar/boost@${BOOST_VERSION}/cached + else + echo 'Using cached Boost ${BOOST_VERSION} libraries.' + fi + brew link boost@1.57 --force fi ############################################################################ @@ -430,7 +427,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 +437,23 @@ script: ############################################################################ # Build Boost.Compute tests, benchmarks and examples ############################################################################ - - mkdir -p build - - cd build + - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then wmic cpu list full; fi + - 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 +461,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