From 165fa3662a065121473068ac3d4ef9230ea3d43d Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Tue, 1 Jan 2019 21:56:43 +0000
Subject: [PATCH 1/7] Simplified travis and added some new options

---
 .travis.yml | 212 ++++++++++++++++++++++++++--------------------------
 1 file changed, 104 insertions(+), 108 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 3ee0fdc17..4b5899ca7 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,24 +100,20 @@ 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"
@@ -135,75 +123,51 @@ matrix:
     # 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"
+        - 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,13 +196,11 @@ 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"
-        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON"
+        - 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
 
     ############################################################################
@@ -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

From 6fb7aac539b7b437830a38fcc3afeb17eddacaa3 Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Wed, 2 Jan 2019 18:51:30 +0000
Subject: [PATCH 2/7] Testing

Check CPU info on Windows
Try to cache boost on OSX
---
 .travis.yml | 411 +++++++++++++++++++++++++++-------------------------
 1 file changed, 211 insertions(+), 200 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 4b5899ca7..96f300f17 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -31,207 +31,207 @@ env:
     - 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
-      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"
+#     # 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)
-    ############################################################################
+#     ############################################################################
+#     # 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
+#     # 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
-    ############################################################################
+#     ############################################################################
+#     # 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"
+#     # 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"
 
     ############################################################################
     # OSX
@@ -257,15 +257,16 @@ matrix:
     - os: osx
       osx_image: xcode10
       compiler: gcc
+      cache:
+        ccache: true
+        directories:
+          - /usr/local/Cellar/boost@1.57
       env:
         - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
+        - BOOST_VERSION="1.57"
       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
@@ -360,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
+        if [ ! -f "/usr/local/Cellar/boost@{BOOST_VERSION}/cached" ]; then
+          brew uninstall boost --ignore-dependencies
+          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
 
     ############################################################################
@@ -427,6 +437,7 @@ script:
     ############################################################################
     # Build Boost.Compute tests, benchmarks and examples
     ############################################################################
+    - lscpu
     - clinfo
     - mkdir build && cd build
     # Combine global build options with OS/compiler-dependent options

From f12ec8aec641aa276bcb45f4ec7151717576f353 Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Wed, 2 Jan 2019 19:51:06 +0000
Subject: [PATCH 3/7] =?UTF-8?q?let=E2=80=99s=20go=20again?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .travis.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 96f300f17..cbd8f034f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -362,10 +362,10 @@ install:
         fi
         export CMAKE_OPTIONS=${CMAKE_OPTIONS}" -DBOOST_ROOT=${DEPS_DIR}/boost"
       elif [[ ${TRAVIS_OS_NAME} == "osx" && ${BOOST_VERSION} != "default" ]]; then
-        if [ ! -f "/usr/local/Cellar/boost@{BOOST_VERSION}/cached" ]; then
+        if [ ! -f "/usr/local/Cellar/boost@${BOOST_VERSION}/cached" ]; then
           brew uninstall boost --ignore-dependencies
-          travis_wait 50 brew install boost@{BOOST_VERSION} --cc=gcc-5
-          touch /usr/local/Cellar/boost@{BOOST_VERSION}/cached
+          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
@@ -437,7 +437,7 @@ script:
     ############################################################################
     # Build Boost.Compute tests, benchmarks and examples
     ############################################################################
-    - lscpu
+    - wmic cpu list config
     - clinfo
     - mkdir build && cd build
     # Combine global build options with OS/compiler-dependent options

From da32cfea1ef9cfeaad02d085f07af51f997d11e1 Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Thu, 3 Jan 2019 02:27:17 +0000
Subject: [PATCH 4/7] and again

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index cbd8f034f..2a430fbe6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -437,7 +437,7 @@ script:
     ############################################################################
     # Build Boost.Compute tests, benchmarks and examples
     ############################################################################
-    - wmic cpu list config
+    - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then wmic cpu list config > something.txt && cat something.txt; fi
     - clinfo
     - mkdir build && cd build
     # Combine global build options with OS/compiler-dependent options

From f93c66145300c450668b25669ac0f15b3bdb6ba9 Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Thu, 3 Jan 2019 03:43:16 +0000
Subject: [PATCH 5/7] one more

---
 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 2a430fbe6..717b47d73 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -362,8 +362,8 @@ install:
         fi
         export CMAKE_OPTIONS=${CMAKE_OPTIONS}" -DBOOST_ROOT=${DEPS_DIR}/boost"
       elif [[ ${TRAVIS_OS_NAME} == "osx" && ${BOOST_VERSION} != "default" ]]; then
-        if [ ! -f "/usr/local/Cellar/boost@${BOOST_VERSION}/cached" ]; 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
@@ -437,7 +437,7 @@ script:
     ############################################################################
     # Build Boost.Compute tests, benchmarks and examples
     ############################################################################
-    - if [[ ${TRAVIS_OS_NAME} == "windows" ]]; then wmic cpu list config > something.txt && cat something.txt; fi
+    - 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

From 56fea5449ff8b99627275da0321a5546cde9f03d Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Fri, 16 Aug 2019 22:55:47 +0100
Subject: [PATCH 6/7] Update .travis.yml

---
 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 717b47d73..e24c8b8ad 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -239,7 +239,7 @@ matrix:
 
     # CLANG
     - os: osx
-      osx_image: xcode10
+      osx_image: xcode11
       compiler: clang
       env:
         - 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\""
@@ -255,7 +255,7 @@ matrix:
           - clinfo
     # GCC
     - os: osx
-      osx_image: xcode10
+      osx_image: xcode11
       compiler: gcc
       cache:
         ccache: true

From 559721afbf5b3a21c91cfad2c5a6568a9899b8a0 Mon Sep 17 00:00:00 2001
From: Raul Ferreira <raulmendesferreira@gmail.com>
Date: Sun, 18 Aug 2019 16:54:47 +0100
Subject: [PATCH 7/7] Update .travis.yml

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index e24c8b8ad..8eb536423 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -251,7 +251,7 @@ matrix:
           - lcov
           - gcc@5
           - llvm
-          - opencv
+          - opencv@3
           - clinfo
     # GCC
     - os: osx