From 90eec1930cefe5db3c15a570d650d57c9207d125 Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Mon, 24 Dec 2018 14:55:35 +0000 Subject: [PATCH 01/11] Fix AppVeyor Get OpenCL headers, libraries, and runtime from somewhere more reliable. Added VS2017 configuration to the matrix. --- .appveyor.yml | 52 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 50953fd7c..29164b675 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,49 +16,39 @@ branches: # environment variables environment: global: - INTELOCLSDKROOT: C:\Program Files (x86)\Intel\OpenCL SDK\ BOOST_COMPUTE_DEFAULT_PLATFORM: Intel(R) OpenCL - OPENCL_INCLUDE_DIR: C:\opencl\include - # Downloaded OpenCL headers version (2.1) - OPENCL_HEADERS_VER: 21 # OpenCL version used in tests (2.0) OPENCL_VERSION: 200 CXXFLAGS: -DBOOST_COMPUTE_MAX_CL_VERSION=%OPENCL_VERSION% matrix: - - VS_VER: 2015 - CMAKE_GENERATOR: Visual Studio 14 2015 Win64 - BOOST_ROOT: C:\Libraries\boost_1_59_0 - BOOST_LIBRARYDIR: C:\Libraries\boost_1_59_0\lib64-msvc-14.0 - - VS_VER: 2013 - CMAKE_GENERATOR: Visual Studio 12 2013 Win64 - BOOST_ROOT: C:\Libraries\boost_1_58_0 - BOOST_LIBRARYDIR: C:\Libraries\boost_1_58_0\lib64-msvc-12.0 - -image: Visual Studio 2015 - -# build platforms -platform: - - x64 - -configuration: - - Debug + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + CMAKE_GENERATOR: Visual Studio 15 2017 Win64 + BOOST_ROOT: C:\Libraries\boost_1_67_0 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + CMAKE_GENERATOR: Visual Studio 14 2015 Win64 + BOOST_ROOT: C:\Libraries\boost_1_63_0 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 + CMAKE_GENERATOR: Visual Studio 12 2013 Win64 + BOOST_ROOT: C:\Libraries\boost_1_58_0 before_build: - - appveyor DownloadFile "http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/8539/intel_sdk_for_opencl_setup_6.0.0.1049.exe" - - start /wait .\intel_sdk_for_opencl_setup_6.0.0.1049.exe install --output=output.log --eula=accept - #- type output.log - - appveyor DownloadFile "http://registrationcenter-download.intel.com/akdlm/irc_nas/9022/opencl_runtime_16.1.1_x64_setup.msi" - - start /wait msiexec /i opencl_runtime_16.1.1_x64_setup.msi /qn /l*v msiexec2.log - #- type msiexec2.log - - git clone --depth 1 https://github.com/KhronosGroup/OpenCL-Headers.git %OPENCL_INCLUDE_DIR%\CL + # 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 + # Install OpenCL Runtime + - choco install opencl-intel-cpu-runtime + # Check if it's working + - ps: appveyor DownloadFile "https://ci.appveyor.com/api/projects/oblomov/clinfo/artifacts/clinfo.exe?job=platform:+x64" -FileName clinfo.exe + - .\clinfo.exe build_script: - mkdir build && cd build - - cmake -G"%CMAKE_GENERATOR%" -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DOpenCL_INCLUDE_DIR=%OPENCL_INCLUDE_DIR% .. + - cmake -G"%CMAKE_GENERATOR%" -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON .. - cmake --build . --config Debug test_script: - .\example\Debug\list_devices.exe - .\example\Debug\hello_world.exe - - ctest --output-on-failure - - ctest --output-on-failure + - ctest --output-on-failure --repeat-until-fail 2 From 6312d1b00a90adac763c87c1cab37e0daa4bf12c Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Mon, 24 Dec 2018 15:46:13 +0000 Subject: [PATCH 02/11] Fix Travis Updated CMake v3.10 -> v3.13 Updated pocl v1.0 -> v1.2 Updated GCC v4.8/v5 -> v6 Updated LLVM v5.0.1 -> v6.0.1 Updated Boost v1.65.1 -> v1.67.0 Fixed OpenCL header download Fixed AMDAPPSDK installation --- .travis.yml | 221 +++++++++++++++++---------------------------- .travis/amd_sdk.sh | 45 --------- 2 files changed, 83 insertions(+), 183 deletions(-) delete mode 100644 .travis/amd_sdk.sh diff --git a/.travis.yml b/.travis.yml index 036930082..a89c98636 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,19 @@ language: cpp +dist: xenial env: global: - # Ubuntu version - - LINUX_DIST=trusty - DEPS_DIR=${TRAVIS_BUILD_DIR}/deps # CMake - - CMAKE_URL=https://cmake.org/files/v3.10/cmake-3.10.0-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 - - OPENCL_HEADERS_VER="22" # Khronos OpenCL ICD - OPENCL_REGISTRY=https://www.khronos.org/registry/cl - OPENCL_ROOT=${DEPS_DIR}/opencl # POCL - - POCL_BRANCH=release_1_0 # branch/tag - - POCL_LLVM_VERSION=5.0.1 + - POCL_BRANCH=release_1_2 # branch/tag + - POCL_LLVM_VERSION=6.0.1 - POCL_ROOT=${OPENCL_ROOT}/pocl-${POCL_BRANCH}/ - POCL_LLVM_CONFIG=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/llvm-config - POCL_CXX_COMPILER=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/clang++ @@ -24,7 +22,6 @@ env: # AMD APP SDK - AMDAPPSDKROOT=${OPENCL_ROOT}/AMDAPPSDK # Global build options and C++ flags - - GCC_VERSION=4.8 - 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 @@ -39,111 +36,93 @@ matrix: # POCL builds (OpenCL 1.0, 1.1, 1.2) ############################################################################ - # Trusty, OpenCL 1.0 + # Linux, OpenCL 1.0 # CLANG - os: linux - dist: trusty - sudo: required compiler: clang addons: apt: - packages: &trusty_pocl_packages - - g++-4.8 + packages: &xenial_packages + - g++-6 # POCL - libltdl-dev - libhwloc-dev - pkg-config - libedit-dev # Boost - - libboost-chrono1.55-dev - - libboost-date-time1.55-dev - - libboost-test1.55-dev - - libboost-system1.55-dev - - libboost-filesystem1.55-dev - - libboost-timer1.55-dev - - libboost-program-options1.55-dev - - libboost-thread1.55-dev + - 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: &trusty_pocl_sources + sources: &xenial_sources - ubuntu-toolchain-r-test env: - OPENCL_LIB=pocl - - OPENCL_HEADERS_VER="22" - 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: trusty - sudo: required compiler: gcc addons: apt: - packages: *trusty_pocl_packages - sources: *trusty_pocl_sources + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=pocl - - OPENCL_HEADERS_VER="22" - 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" - # Trusty, OpenCL 1.1 + # Linux, OpenCL 1.1 # CLANG - os: linux - dist: trusty - sudo: required compiler: clang addons: apt: - packages: *trusty_pocl_packages - sources: *trusty_pocl_sources + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=pocl - - OPENCL_HEADERS_VER="22" - 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: trusty - sudo: required compiler: gcc addons: apt: - packages: *trusty_pocl_packages - sources: *trusty_pocl_sources + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=pocl - - OPENCL_HEADERS_VER="22" - 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" - # Trusty, OpenCL 1.2 + # Linux, OpenCL 1.2 # CLANG - os: linux - dist: trusty - sudo: required compiler: clang addons: apt: - packages: *trusty_pocl_packages - sources: *trusty_pocl_sources + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=pocl - - OPENCL_HEADERS_VER="22" - 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: trusty - sudo: required compiler: gcc addons: apt: - packages: *trusty_pocl_packages - sources: *trusty_pocl_sources + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=pocl - - OPENCL_HEADERS_VER="22" - 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" @@ -151,57 +130,34 @@ matrix: # AMD APP SDK builds (v2.9.1 -> OpenCL 1.2, v3.0 -> OpenCL 2.0) ############################################################################ - # Trusty, AMD APP SDK v2.9.1, OpenCL 1.2 + # Linux, AMD APP SDK v2.9.1, OpenCL 1.2 # CLANG - os: linux - dist: trusty - sudo: required compiler: clang addons: apt: - packages: &trusty_amdappsdk_packages - - g++-4.8 - # Boost - - libboost-chrono1.55-dev - - libboost-date-time1.55-dev - - libboost-test1.55-dev - - libboost-system1.55-dev - - libboost-filesystem1.55-dev - - libboost-timer1.55-dev - - libboost-program-options1.55-dev - - libboost-thread1.55-dev - # Misc - - python-yaml - - lcov - - libopencv-dev - sources: &trusty_amdappsdk_sources - - ubuntu-toolchain-r-test + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=amdappsdk - - OPENCL_HEADERS_VER="22" - AMDAPPSDK_VERSION=291 # OpenCL 1.2 - 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: trusty - sudo: required compiler: gcc addons: apt: - packages: *trusty_amdappsdk_packages - sources: *trusty_amdappsdk_sources + packages: *xenial_packages + sources: *xenial_sources env: - OPENCL_LIB=amdappsdk - - OPENCL_HEADERS_VER="22" - AMDAPPSDK_VERSION=291 # OpenCL 1.2 - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" - # Trusty, AMD APP SDK v3.0.0, OpenCL 2.0 + # Linux, AMD APP SDK v3.0.0, OpenCL 2.0 # CLANG - os: linux - dist: trusty - sudo: required compiler: clang cache: ccache: true @@ -209,26 +165,22 @@ matrix: - ${DEPS_DIR}/boost addons: apt: - packages: &trusty_amdappsdk_latest_boost_packages - - g++-5 + packages: &xenial_amdappsdk_latest_boost_packages + - g++-6 # Misc - python-yaml - lcov - libopencv-dev - sources: &trusty_amdappsdk_latest_boost_sources + sources: &xenial_amdappsdk_latest_boost_sources - ubuntu-toolchain-r-test env: - OPENCL_LIB=amdappsdk - - OPENCL_HEADERS_VER="22" - AMDAPPSDK_VERSION=300 # OpenCL 2.0 - - BOOST_VERSION="1_65_1" # Boost 1.65.1 - - BOOST_URL="https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz" + - BOOST_VERSION="1_67_0" # Boost 1.67.0 - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" # GCC - os: linux - dist: trusty - sudo: required compiler: gcc cache: ccache: true @@ -236,15 +188,12 @@ matrix: - ${DEPS_DIR}/boost addons: apt: - packages: *trusty_amdappsdk_latest_boost_packages - sources: *trusty_amdappsdk_latest_boost_sources + packages: *xenial_amdappsdk_latest_boost_packages + sources: *xenial_amdappsdk_latest_boost_sources env: - - GCC_VERSION=5 - OPENCL_LIB=amdappsdk - - OPENCL_HEADERS_VER="22" - AMDAPPSDK_VERSION=300 # OpenCL 2.0 - - BOOST_VERSION="1_65_1" # Boost 1.65.1 - - BOOST_URL="https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz" + - BOOST_VERSION="1_67_0" # Boost 1.67.0 - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON" - COVERAGE=true @@ -253,12 +202,32 @@ matrix: # OSX ############################################################################ - # OSX build + # OSX + # CLANG - os: osx compiler: clang env: - ENV_CXX_FLAGS="-Wno-c99-extensions" - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" + - MATRIX_EVAL="CC=clang-6.0 && 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@6 + - llvm@6 + # GCC + - os: osx + compiler: gcc + env: + - ENV_CXX_FLAGS="-Wno-c99-extensions" + - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" + - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + addons: + homebrew: + packages: *osx_packages cache: directories: @@ -268,32 +237,24 @@ cache: before_install: # Install dependencies - | - # POCL dependencies for Trusty - if [[ ${LINUX_DIST} == "trusty" && ${OPENCL_LIB} == "pocl" ]]; then + # POCL dependencies for Xenial + if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "pocl" ]]; then if [ -z "$(ls -A ${DEPS_DIR}/llvm-${POCL_LLVM_VERSION})" ]; then - POCL_LLVM_URL=http://llvm.org/releases/${POCL_LLVM_VERSION}/clang+llvm-${POCL_LLVM_VERSION}-x86_64-linux-gnu-ubuntu-14.04.tar.xz + POCL_LLVM_URL=http://llvm.org/releases/${POCL_LLVM_VERSION}/clang+llvm-${POCL_LLVM_VERSION}-x86_64-linux-gnu-ubuntu-16.04.tar.xz mkdir -p ${DEPS_DIR}/llvm-${POCL_LLVM_VERSION} travis_retry wget --no-check-certificate --quiet -O llvm-${POCL_LLVM_VERSION}.tar.xz ${POCL_LLVM_URL} tar xf llvm-${POCL_LLVM_VERSION}.tar.xz -C ${DEPS_DIR}/llvm-${POCL_LLVM_VERSION} --strip-components 1 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: # Download and install recent cmake @@ -314,10 +275,11 @@ install: mkdir -p ${DEPS_DIR}/boost rm -rf ${DEPS_DIR}/boost/* # download + BOOST_BASENAME=$(echo ${BOOST_VERSION} | awk -F '_' '{print $1 "." $2 "." $3 }') + BOOST_URL="https://dl.bintray.com/boostorg/release/${BOOST_BASENAME}/source/boost_${BOOST_VERSION}.tar.gz" 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 @@ -337,7 +299,7 @@ install: mkdir -p ${OPENCL_ROOT}/include/CL pushd ${OPENCL_ROOT}/include/CL travis_retry git clone --depth 1 https://github.com/KhronosGroup/OpenCL-Headers.git - mv ./OpenCL-Headers/opencl${OPENCL_HEADERS_VER}/CL/* . + mv ./OpenCL-Headers/CL/* . travis_retry wget -w 1 -np -nd -nv -A h,hpp --no-check-certificate ${OPENCL_REGISTRY}/api/2.1/cl.hpp; popd fi @@ -360,31 +322,6 @@ install: fi fi - ############################################################################ - # fglrx does not work: https://github.com/travis-ci/travis-ci/issues/5221, - # so we build our own linkable .so file. - # Thanks to clSPARSE for providing opencl-icd build script. - ############################################################################ - - | - if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "khronos-icd" ]]; then - mkdir -p ${OPENCL_ROOT} - pushd ${OPENCL_ROOT} - travis_retry git clone --depth 1 https://github.com/KhronosGroup/OpenCL-ICD-Loader.git - mv ./OpenCL-ICD-Loader/* . - mkdir -p inc/CL - pushd inc/CL - travis_retry git clone --depth 1 https://github.com/KhronosGroup/OpenCL-Headers.git - mv ./OpenCL-Headers/opencl${OPENCL_HEADERS_VER}/CL/* . - popd - mkdir -p lib - pushd lib - cmake -G "Unix Makefiles" .. - make - cp ./bin/libOpenCL.so . - popd - popd - fi - ############################################################################ # Install AMD APP SDK # Thanks to JuliaGPU https://github.com/JuliaGPU/OpenCL.jl @@ -392,18 +329,26 @@ install: - | if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "amdappsdk" ]]; then mkdir -p ${OPENCL_ROOT} - bash .travis/amd_sdk.sh ${AMDAPPSDK_VERSION} - tar -xjf AMD-SDK.tar.bz2 export OPENCL_VENDOR_PATH=${AMDAPPSDKROOT}/etc/OpenCL/vendors mkdir -p ${OPENCL_VENDOR_PATH} - sh AMD-APP-SDK*.sh --tar -xf -C ${AMDAPPSDKROOT} + + #AMD APP SDK v3.0: + if [[ ${AMDAPPSDK_VERSION} == "300" ]]; then + URL="https://github.com/Microsoft/LightGBM/releases/download/v2.0.12/AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2" + wget $URL -O AMD-SDK.tar.bz2 + tar -xjf AMD-SDK.tar.bz2 + sh AMD-APP-SDK*.sh --tar -xf -C ${AMDAPPSDKROOT} + else #AMD APP SDK v2.9.1: + URL="https://github.com/ghostlander/AMD-APP-SDK/releases/download/v2.9.1/AMD-APP-SDK-v2.9.1-lnx64.tar.xz" + wget $URL -O AMD-SDK.tar.xz + tar -xJf AMD-SDK.tar.xz -C ${AMDAPPSDKROOT} --strip 1 + fi echo libamdocl64.so > ${OPENCL_VENDOR_PATH}/amdocl64.icd if [[ ${AMDAPPSDK_VERSION} == "300" ]]; then export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64/sdk:${LD_LIBRARY_PATH} export CMAKE_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64/sdk cp ${AMDAPPSDKROOT}/lib/x86_64/libamdocl12cl64.so ${AMDAPPSDKROOT}/lib/x86_64/sdk/libamdocl12cl64.so - # 291 - else + else # 291 export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64:${LD_LIBRARY_PATH} export CMAKE_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64 fi diff --git a/.travis/amd_sdk.sh b/.travis/amd_sdk.sh deleted file mode 100644 index af30d2329..000000000 --- a/.travis/amd_sdk.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# Original script from https://github.com/gregvw/amd_sdk/ - -# Location from which get nonce and file name from -URL="https://developer.amd.com/amd-accelerated-parallel-processing-app-sdk/" -URLDOWN="https://developer.amd.com/amd-license-agreement-appsdk/" - -NONCE1_STRING='name="amd_developer_central_downloads_page_nonce"' -FILE_STRING='name="f"' -POSTID_STRING='name="post_id"' -NONCE2_STRING='name="amd_developer_central_nonce"' - -#AMD APP SDK v3.0: -if [[ $1 == "300" ]]; then - echo "AMD APP SDK v3.0" - FORM=`wget -qO - $URL | sed -n '/download-2/,/64-bit/p'` -else -#AMD APP SDK v2.9.1: - echo "AMD APP SDK v2.9.1" - FORM=`wget -qO - $URL | sed -n '/download-5/,/64-bit/p'` -fi - -# Get nonce from form -NONCE1=`echo $FORM | awk -F ${NONCE1_STRING} '{print $2}'` -NONCE1=`echo $NONCE1 | awk -F'"' '{print $2}'` -echo $NONCE1 - -# get the postid -POSTID=`echo $FORM | awk -F ${POSTID_STRING} '{print $2}'` -POSTID=`echo $POSTID | awk -F'"' '{print $2}'` -echo $POSTID - -# get file name -FILE=`echo $FORM | awk -F ${FILE_STRING} '{print $2}'` -FILE=`echo $FILE | awk -F'"' '{print $2}'` -echo $FILE - -FORM=`wget -qO - $URLDOWN --post-data "amd_developer_central_downloads_page_nonce=${NONCE1}&f=${FILE}&post_id=${POSTID}"` - -NONCE2=`echo $FORM | awk -F ${NONCE2_STRING} '{print $2}'` -NONCE2=`echo $NONCE2 | awk -F'"' '{print $2}'` -echo $NONCE2 - -wget --content-disposition --trust-server-names $URLDOWN --post-data "amd_developer_central_nonce=${NONCE2}&f=${FILE}" -O AMD-SDK.tar.bz2; From e45758d1c0eb9d5d64e143f224dce6516f1d08e6 Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Tue, 25 Dec 2018 01:52:19 +0000 Subject: [PATCH 03/11] Move from AMD to Intel OpenCL CPU Runtime Boost, LLVM, Clang, and GCC, have also been updated. --- .travis.yml | 90 ++++++++++++++++++++--------------------------------- 1 file changed, 33 insertions(+), 57 deletions(-) diff --git a/.travis.yml b/.travis.yml index a89c98636..01348a2bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,14 +13,12 @@ env: - OPENCL_ROOT=${DEPS_DIR}/opencl # POCL - POCL_BRANCH=release_1_2 # branch/tag - - POCL_LLVM_VERSION=6.0.1 + - POCL_LLVM_VERSION=7.0.0 - POCL_ROOT=${OPENCL_ROOT}/pocl-${POCL_BRANCH}/ - POCL_LLVM_CONFIG=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/llvm-config - POCL_CXX_COMPILER=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/clang++ - POCL_C_COMPILER=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/clang - POCL_OPENCL_LIB=${POCL_ROOT}/lib/libOpenCL.so - # AMD APP SDK - - AMDAPPSDKROOT=${OPENCL_ROOT}/AMDAPPSDK # Global build options and C++ flags - 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" @@ -43,7 +41,7 @@ matrix: addons: apt: packages: &xenial_packages - - g++-6 + - g++-7 # POCL - libltdl-dev - libhwloc-dev @@ -62,6 +60,7 @@ matrix: - python-yaml - lcov - libopencv-dev + - clinfo sources: &xenial_sources - ubuntu-toolchain-r-test env: @@ -127,10 +126,10 @@ matrix: - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" ############################################################################ - # AMD APP SDK builds (v2.9.1 -> OpenCL 1.2, v3.0 -> OpenCL 2.0) + # Intel OpenCL Runtime builds ############################################################################ - # Linux, AMD APP SDK v2.9.1, OpenCL 1.2 + # Linux, Intel OpenCL 1.2 # CLANG - os: linux compiler: clang @@ -139,8 +138,7 @@ matrix: packages: *xenial_packages sources: *xenial_sources env: - - OPENCL_LIB=amdappsdk - - AMDAPPSDK_VERSION=291 # OpenCL 1.2 + - 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 @@ -151,11 +149,10 @@ matrix: packages: *xenial_packages sources: *xenial_sources env: - - OPENCL_LIB=amdappsdk - - AMDAPPSDK_VERSION=291 # OpenCL 1.2 + - 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, AMD APP SDK v3.0.0, OpenCL 2.0 + # Linux, Intel OpenCL 2.1 # CLANG - os: linux compiler: clang @@ -165,19 +162,18 @@ matrix: - ${DEPS_DIR}/boost addons: apt: - packages: &xenial_amdappsdk_latest_boost_packages - - g++-6 + packages: &xenial_intel_latest_boost_packages + - g++-7 # Misc - python-yaml - lcov - libopencv-dev - sources: &xenial_amdappsdk_latest_boost_sources + sources: &xenial_intel_latest_boost_sources - ubuntu-toolchain-r-test env: - - OPENCL_LIB=amdappsdk - - AMDAPPSDK_VERSION=300 # OpenCL 2.0 - - BOOST_VERSION="1_67_0" # Boost 1.67.0 - - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" + - OPENCL_LIB=intel + - BOOST_VERSION="1_69_0" # Boost 1.69.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 @@ -188,13 +184,12 @@ matrix: - ${DEPS_DIR}/boost addons: apt: - packages: *xenial_amdappsdk_latest_boost_packages - sources: *xenial_amdappsdk_latest_boost_sources + packages: *xenial_intel_latest_boost_packages + sources: *xenial_intel_latest_boost_sources env: - - OPENCL_LIB=amdappsdk - - AMDAPPSDK_VERSION=300 # OpenCL 2.0 - - BOOST_VERSION="1_67_0" # Boost 1.67.0 - - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" + - OPENCL_LIB=intel + - BOOST_VERSION="1_69_0" # Boost 1.69.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 @@ -209,22 +204,22 @@ matrix: env: - ENV_CXX_FLAGS="-Wno-c99-extensions" - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" - - MATRIX_EVAL="CC=clang-6.0 && 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\"" + - MATRIX_EVAL="CC=clang-7 && 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@6 - - llvm@6 + - gcc@7 + - llvm@7 # GCC - os: osx compiler: gcc env: - ENV_CXX_FLAGS="-Wno-c99-extensions" - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" - - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" addons: homebrew: packages: *osx_packages @@ -323,37 +318,18 @@ install: fi ############################################################################ - # Install AMD APP SDK - # Thanks to JuliaGPU https://github.com/JuliaGPU/OpenCL.jl + # Install Intel OpenCL Runtime ############################################################################ - | - if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "amdappsdk" ]]; then - mkdir -p ${OPENCL_ROOT} - export OPENCL_VENDOR_PATH=${AMDAPPSDKROOT}/etc/OpenCL/vendors - mkdir -p ${OPENCL_VENDOR_PATH} - - #AMD APP SDK v3.0: - if [[ ${AMDAPPSDK_VERSION} == "300" ]]; then - URL="https://github.com/Microsoft/LightGBM/releases/download/v2.0.12/AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2" - wget $URL -O AMD-SDK.tar.bz2 - tar -xjf AMD-SDK.tar.bz2 - sh AMD-APP-SDK*.sh --tar -xf -C ${AMDAPPSDKROOT} - else #AMD APP SDK v2.9.1: - URL="https://github.com/ghostlander/AMD-APP-SDK/releases/download/v2.9.1/AMD-APP-SDK-v2.9.1-lnx64.tar.xz" - wget $URL -O AMD-SDK.tar.xz - tar -xJf AMD-SDK.tar.xz -C ${AMDAPPSDKROOT} --strip 1 - fi - echo libamdocl64.so > ${OPENCL_VENDOR_PATH}/amdocl64.icd - if [[ ${AMDAPPSDK_VERSION} == "300" ]]; then - export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64/sdk:${LD_LIBRARY_PATH} - export CMAKE_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64/sdk - cp ${AMDAPPSDKROOT}/lib/x86_64/libamdocl12cl64.so ${AMDAPPSDKROOT}/lib/x86_64/sdk/libamdocl12cl64.so - else # 291 - export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64:${LD_LIBRARY_PATH} - export CMAKE_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64 - fi - chmod +x ${AMDAPPSDKROOT}/bin/x86_64/clinfo - ${AMDAPPSDKROOT}/bin/x86_64/clinfo + if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "intel" ]]; then + # 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 fi script: From 2a589ecf433481e36eda39d188a537eb8c4a06c6 Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Tue, 25 Dec 2018 02:56:33 +0000 Subject: [PATCH 04/11] Should fix OSX problems. --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 01348a2bd..23a4d5052 100644 --- a/.travis.yml +++ b/.travis.yml @@ -200,11 +200,12 @@ matrix: # OSX # 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-7 && 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\"" + - 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 @@ -212,9 +213,10 @@ matrix: - cmake - lcov - gcc@7 - - llvm@7 + - llvm # GCC - os: osx + osx_image: xcode10 compiler: gcc env: - ENV_CXX_FLAGS="-Wno-c99-extensions" From 486b504dff1de77e282928ebd60fffeb9897d59f Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Tue, 25 Dec 2018 19:54:22 +0000 Subject: [PATCH 05/11] Should fix all travis problems. --- .travis.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 23a4d5052..365df2896 100644 --- a/.travis.yml +++ b/.travis.yml @@ -173,7 +173,7 @@ matrix: env: - OPENCL_LIB=intel - BOOST_VERSION="1_69_0" # Boost 1.69.0 - - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=201" + - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON" # GCC - os: linux @@ -189,7 +189,7 @@ matrix: env: - OPENCL_LIB=intel - BOOST_VERSION="1_69_0" # Boost 1.69.0 - - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=201" + - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON" - COVERAGE=true @@ -219,7 +219,7 @@ matrix: osx_image: xcode10 compiler: gcc env: - - ENV_CXX_FLAGS="-Wno-c99-extensions" + - ENV_CXX_FLAGS="-Wno-c99-extensions -Wno-ignored-attributes" - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" addons: @@ -327,8 +327,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 From 945e564b4bebec3a6b3e9f1e8bf6bf9fa0795ce4 Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Wed, 26 Dec 2018 21:41:44 +0000 Subject: [PATCH 06/11] Let's test even more options. --- .travis.yml | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 365df2896..004168c5c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -124,6 +124,29 @@ matrix: - 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" + # Linux, OpenCL 2.0 + # CLANG + - os: linux + compiler: clang + addons: + apt: + packages: *xenial_packages + sources: *xenial_sources + env: + - OPENCL_LIB=pocl + - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200" + - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" + # GCC + - os: linux + compiler: gcc + addons: + apt: + packages: *xenial_packages + sources: *xenial_sources + env: + - OPENCL_LIB=pocl + - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200" + - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" ############################################################################ # Intel OpenCL Runtime builds @@ -173,7 +196,7 @@ matrix: env: - OPENCL_LIB=intel - BOOST_VERSION="1_69_0" # Boost 1.69.0 - - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" + - 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 @@ -189,7 +212,7 @@ matrix: env: - OPENCL_LIB=intel - BOOST_VERSION="1_69_0" # Boost 1.69.0 - - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" + - 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 @@ -212,16 +235,16 @@ matrix: - boost - cmake - lcov - - gcc@7 + - gcc@5 - llvm # GCC - os: osx osx_image: xcode10 compiler: gcc env: - - ENV_CXX_FLAGS="-Wno-c99-extensions -Wno-ignored-attributes" + - ENV_CXX_FLAGS="-Wno-c99-extensions" - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" - - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" addons: homebrew: packages: *osx_packages From 5aa7d50e93e310a28f7b87910ffb19691d50aaa0 Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Thu, 27 Dec 2018 17:48:23 +0000 Subject: [PATCH 07/11] Add windows, simplify the rest. --- .travis.yml | 71 ++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/.travis.yml b/.travis.yml index 004168c5c..91cbc7657 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,6 @@ matrix: addons: apt: packages: &xenial_packages - - g++-7 # POCL - libltdl-dev - libhwloc-dev @@ -61,8 +60,6 @@ matrix: - lcov - libopencv-dev - clinfo - sources: &xenial_sources - - ubuntu-toolchain-r-test env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=100" @@ -73,7 +70,6 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=100" @@ -85,7 +81,6 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=101" @@ -96,7 +91,6 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=101" @@ -108,7 +102,6 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=pocl - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" @@ -119,50 +112,46 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_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" - # Linux, OpenCL 2.0 + + ############################################################################ + # Intel OpenCL Runtime builds + ############################################################################ + + # Linux, Intel OpenCL 1.2 # CLANG - os: linux compiler: clang addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - - OPENCL_LIB=pocl - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200" - - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" + - 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 - sources: *xenial_sources env: - - OPENCL_LIB=pocl - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200" - - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" - - ############################################################################ - # Intel OpenCL Runtime builds - ############################################################################ - - # Linux, Intel OpenCL 1.2 + - 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 compiler: clang addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=intel - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" + - 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 @@ -170,10 +159,9 @@ matrix: addons: apt: packages: *xenial_packages - sources: *xenial_sources env: - OPENCL_LIB=intel - - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102" + - 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 # CLANG @@ -186,13 +174,11 @@ matrix: addons: apt: packages: &xenial_intel_latest_boost_packages - - g++-7 # Misc - python-yaml - lcov - libopencv-dev - sources: &xenial_intel_latest_boost_sources - - ubuntu-toolchain-r-test + - clinfo env: - OPENCL_LIB=intel - BOOST_VERSION="1_69_0" # Boost 1.69.0 @@ -208,7 +194,6 @@ matrix: addons: apt: packages: *xenial_intel_latest_boost_packages - sources: *xenial_intel_latest_boost_sources env: - OPENCL_LIB=intel - BOOST_VERSION="1_69_0" # Boost 1.69.0 @@ -227,7 +212,6 @@ matrix: 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: @@ -237,18 +221,37 @@ matrix: - lcov - gcc@5 - llvm + - opencv # GCC - os: osx osx_image: xcode10 compiler: gcc env: - ENV_CXX_FLAGS="-Wno-c99-extensions" - - ENV_CMAKE_OPTIONS="-DBOOST_COMPUTE_HAVE_OPENCV=OFF" - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" addons: homebrew: packages: *osx_packages + ############################################################################ + # Windows + ############################################################################ + - os: windows + env: + - ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=200" + - NUGETDIR="C:/NUGET" + - OCL_ROOT="$NUGETDIR/opencl-nug.0.777.77/build/native" + install: + # Install OpenCL headers and libraries + - choco install nuget.commandline + - nuget install opencl-nug -Version 0.777.77 -OutputDirectory $NUGETDIR + - ls -l $NUGETDIR/opencl-nug.0.777.77/build/native/ + # Install OpenCL Runtime + - choco install opencl-intel-cpu-runtime + # Check if it's working + - curl -L 'https://ci.appveyor.com/api/projects/oblomov/clinfo/artifacts/clinfo.exe?job=platform:+x64' -o clinfo.exe + - ./clinfo.exe + cache: directories: - ${DEPS_DIR}/llvm-${POCL_LLVM_VERSION} @@ -365,7 +368,7 @@ script: - echo ${CMAKE_OPTIONS} - echo ${CXX_FLAGS} - cmake ${CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .. - - make -j4 + - cmake --build . --config Debug -j 4 - | if [[ ${RUN_TESTS} == "true" ]]; then # print OpenCL devices From 2adc3b2e752ed7fa515dc9748470eeb4cfaf834d Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Fri, 28 Dec 2018 18:14:57 +0000 Subject: [PATCH 08/11] Fixed windows and gcc on macOS They take way too long to build though. --- .travis.yml | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 91cbc7657..62ee9ffe3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,7 @@ env: # Boost - BOOST_VERSION=default # Misc + - GENERATOR="Unix Makefiles" - RUN_TESTS=true - COVERAGE=false @@ -181,7 +182,7 @@ matrix: - clinfo env: - OPENCL_LIB=intel - - BOOST_VERSION="1_69_0" # Boost 1.69.0 + - 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 @@ -196,7 +197,7 @@ matrix: packages: *xenial_intel_latest_boost_packages env: - OPENCL_LIB=intel - - BOOST_VERSION="1_69_0" # Boost 1.69.0 + - 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 @@ -211,7 +212,6 @@ matrix: osx_image: xcode10 compiler: clang env: - - ENV_CXX_FLAGS="-Wno-c99-extensions" - 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: @@ -227,25 +227,39 @@ matrix: osx_image: xcode10 compiler: gcc env: - - ENV_CXX_FLAGS="-Wno-c99-extensions" - 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 + - export OPENCV_DIR=C:/tools/opencv/build/x64/vc15/ + # 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-libraries=program_options,filesystem,system,thread,test,timer,chrono + - popd # Install OpenCL headers and libraries - choco install nuget.commandline - nuget install opencl-nug -Version 0.777.77 -OutputDirectory $NUGETDIR - - ls -l $NUGETDIR/opencl-nug.0.777.77/build/native/ # Install OpenCL Runtime - choco install opencl-intel-cpu-runtime # Check if it's working @@ -367,8 +381,11 @@ script: - cd build - echo ${CMAKE_OPTIONS} - echo ${CXX_FLAGS} - - cmake ${CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .. - - cmake --build . --config Debug -j 4 + - if [[ ${TRAVIS_OS_NAME} != "windows" ]]; then cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .. ; fi + - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then cmake -G"${GENERATOR} -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DCMAKE_CXX_FLAGS="${CXX_FLAGS}".. ; fi + # https://stackoverflow.com/questions/39865367/warning-section-textcoal-nt-is-deprecate-since-updating-to-mac-osx-sierra + - if [[ ${TRAVIS_OS_NAME} == "osx" ]]; then cmake --build . -j 4 --config Debug 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*' ; fi + - if [[ ${TRAVIS_OS_NAME} != "osx" ]]; then cmake --build . -j 4 --config Debug ; fi - | if [[ ${RUN_TESTS} == "true" ]]; then # print OpenCL devices From 02e8752822e512edaa47a211cd9ea8bdaccac11d Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Fri, 28 Dec 2018 23:21:46 +0000 Subject: [PATCH 09/11] Fixed mistakes on windows --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b24aaa2a2..0feb92377 100644 --- a/.travis.yml +++ b/.travis.yml @@ -249,13 +249,13 @@ matrix: install: # Install OpenCV - choco install opencv - - export OPENCV_DIR=C:/tools/opencv/build/x64/vc15/ + - export OPENCV_DIR=C:/tools/opencv/build/x64/vc15/lib # 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-libraries=program_options,filesystem,system,thread,test,timer,chrono + - ./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 @@ -386,7 +386,7 @@ script: - echo ${CMAKE_OPTIONS} - echo ${CXX_FLAGS} - if [[ ${TRAVIS_OS_NAME} != "windows" ]]; then cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .. ; fi - - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then cmake -G"${GENERATOR}" -DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DCMAKE_CXX_FLAGS="${CXX_FLAGS}".. ; fi + - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} .. ; fi # https://stackoverflow.com/questions/39865367/warning-section-textcoal-nt-is-deprecate-since-updating-to-mac-osx-sierra - if [[ ${TRAVIS_OS_NAME} == "osx" ]]; then cmake --build . -j 4 --config Debug 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*' ; fi - if [[ ${TRAVIS_OS_NAME} != "osx" ]]; then cmake --build . -j 4 --config Debug ; fi From 7e1484103bcf020c1fcc6ad62e90a029420c1aa3 Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Sat, 29 Dec 2018 21:06:25 +0000 Subject: [PATCH 10/11] More advanced appveyor options. --- .appveyor.yml | 109 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 27 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 29164b675..a3c3a44e2 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,54 +1,109 @@ -# 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 ${CXX_FLAGS} + - sh: echo ${CMAKE_GENERATOR} + - sh: echo ${CC} + - sh: echo ${CXX} + - cmd: .\clinfo.exe + - cmd: echo %CMAKE_OPTIONS% + - cmd: echo %CXX_FLAGS% + - 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 4 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/Debug/list_devices + - sh: ./example/Debug/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 From bc980194fe565db7f3dc867700d409c5312ce47d Mon Sep 17 00:00:00 2001 From: Raul Ferreira Date: Sat, 29 Dec 2018 22:57:55 +0000 Subject: [PATCH 11/11] Getting ready for the merge --- .travis.yml | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0feb92377..898818d19 100644 --- a/.travis.yml +++ b/.travis.yml @@ -206,7 +206,6 @@ matrix: # OSX ############################################################################ - # OSX # CLANG - os: osx osx_image: xcode10 @@ -222,6 +221,7 @@ matrix: - gcc@5 - llvm - opencv + - clinfo # GCC - os: osx osx_image: xcode10 @@ -248,8 +248,9 @@ matrix: - OCL_ROOT="$NUGETDIR/opencl-nug.0.777.77/build/native" install: # Install OpenCV - - choco 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 @@ -260,11 +261,13 @@ matrix: # 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 - # Check if it's working - - curl -L 'https://ci.appveyor.com/api/projects/oblomov/clinfo/artifacts/clinfo.exe?job=platform:+x64' -o clinfo.exe - - ./clinfo.exe + # 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: @@ -289,7 +292,7 @@ before_install: # 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} + - export CXXFLAGS=${CXX_FLAGS}" "${ENV_CXX_FLAGS} # Pick correct compiler on OSX - eval "${MATRIX_EVAL}" @@ -381,15 +384,20 @@ script: ############################################################################ # Build Boost.Compute tests, benchmarks and examples ############################################################################ + - clinfo - mkdir -p build - cd build + - echo ${CXXFLAGS} + - echo ${CXX} + - echo ${CCFLAGS} + - echo ${CC} + - echo ${GENERATOR} - echo ${CMAKE_OPTIONS} - - echo ${CXX_FLAGS} - - if [[ ${TRAVIS_OS_NAME} != "windows" ]]; then cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" .. ; fi - - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} .. ; fi + - cmake -G"${GENERATOR}" ${CMAKE_OPTIONS} .. # https://stackoverflow.com/questions/39865367/warning-section-textcoal-nt-is-deprecate-since-updating-to-mac-osx-sierra - - if [[ ${TRAVIS_OS_NAME} == "osx" ]]; then cmake --build . -j 4 --config Debug 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*' ; fi - - if [[ ${TRAVIS_OS_NAME} != "osx" ]]; then cmake --build . -j 4 --config Debug ; fi + # 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 4 --config Debug ; fi - | if [[ ${RUN_TESTS} == "true" ]]; then # Print OpenCL devices @@ -397,7 +405,6 @@ script: # Run tests and examples ctest --output-on-failure --repeat-until-fail 2 fi - after_success: - | if [[ ${COVERAGE} == "true" ]]; then