From 50ff47895239aaced08fcdefecd0469521b3212f Mon Sep 17 00:00:00 2001
From: Jakub Szuppe <j.szuppe@gmail.com>
Date: Wed, 22 Jun 2016 18:42:22 +0200
Subject: [PATCH] ci(Travis): pulled in travis configuration from boostorg
 project.

---
 .travis.yml                | 496 ++++++++++++++++++++++++++++++++++++-
 .travis/amd_sdk.sh         |  45 ++++
 .travis/install_amd_sdk.sh |  53 ----
 3 files changed, 534 insertions(+), 60 deletions(-)
 create mode 100644 .travis/amd_sdk.sh
 delete mode 100644 .travis/install_amd_sdk.sh

diff --git a/.travis.yml b/.travis.yml
index 86c16a47..f93e0da1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,12 +1,494 @@
 language: java
 jdk:
-  - oraclejdk7
-compiler:
-    - gcc
-    - clang
+  - oraclejdk8
+
+env:
+  global:
+    # Ubuntu version
+    - LINUX_DIST=precise
+    - DEPS_DIR=${TRAVIS_BUILD_DIR}/deps
+    # OpenCL
+    - OPENCL_LIB=default
+    - OPENCL_VERSION="10"
+    # Khronos OpenCL ICD
+    - OPENCL_REGISTRY=https://www.khronos.org/registry/cl
+    - OPENCL_ROOT=${DEPS_DIR}/opencl
+    # POCL
+    - POCL_BRANCH=release_0_13 # branch/tag
+    #- POCL_COMMIT= # commit id
+    - POCL_LLVM_VERSION=3.8.0
+    - 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
+    # 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"
+    # Boost
+    - BOOST_VERSION=default
+    # Misc
+    - RUN_TESTS=true
+    - COVERAGE=false
+
+matrix:
+  include:
+    ############################################################################
+    # POCL builds (OpenCL 1.0, 1.1)
+    ############################################################################
+
+    # Trusty, OpenCL 1.0
+    - os: linux
+      dist: trusty
+      sudo: required
+      compiler: clang
+      addons:
+        apt:
+          packages: &trusty_pocl_packages
+            - g++-4.8
+            # clang and llvm 3.7 for POCL (llvm-toolchain-trusty-3.7 is not whitelisted)
+            # - clang-3.7
+            # - llvm-3.7
+            # - llvm-3.7-dev (...)
+            # 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
+            # Misc
+            - python-yaml
+            - lcov
+            - libopencv-dev
+          sources: &trusty_pocl_sources
+            - ubuntu-toolchain-r-test
+            # - llvm-toolchain-trusty-3.7 (not whitelisted yet https://github.com/travis-ci/apt-source-whitelist/issues/199)
+      env:
+       - LINUX_DIST=trusty
+       - OPENCL_LIB=pocl
+       - OPENCL_VERSION="10"
+       - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    - os: linux
+      dist: trusty
+      sudo: required
+      compiler: gcc
+      addons:
+        apt:
+          packages: *trusty_pocl_packages
+          sources: *trusty_pocl_sources
+      env:
+       - LINUX_DIST=trusty
+       - OPENCL_LIB=pocl
+       - OPENCL_VERSION="10"
+       - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    # Trusty, OpenCL 1.1
+    - os: linux
+      dist: trusty
+      sudo: required
+      compiler: clang
+      addons:
+        apt:
+          packages: *trusty_pocl_packages
+          sources: *trusty_pocl_sources
+      env:
+       - LINUX_DIST=trusty
+       - OPENCL_LIB=pocl
+       - OPENCL_VERSION="11"
+       - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    - os: linux
+      dist: trusty
+      sudo: required
+      compiler: gcc
+      addons:
+        apt:
+          packages: *trusty_pocl_packages
+          sources: *trusty_pocl_sources
+      env:
+       - LINUX_DIST=trusty
+       - OPENCL_LIB=pocl
+       - OPENCL_VERSION="11"
+       - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+
+    ############################################################################
+    # Khronos ICD builds (without running tests) (OpenCL 1.2, 2.0)
+    ############################################################################
+
+    # # Precise, OpenCL 1.2, Travis CI container-based infrastructure
+    # - os: linux
+    #   sudo: false
+    #   compiler: clang
+    #   addons:
+    #    apt:
+    #      packages: &precise_icd_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: &precise_icd_sources
+    #        - ubuntu-toolchain-r-test
+    #        - llvm-toolchain-precise-3.7
+    #        - boost-latest
+    #   env:
+    #     - RUN_TEST=false
+    #     - OPENCL_LIB=khronos-icd
+    #     - OPENCL_VERSION="12"
+    #     - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    # - os: linux
+    #   sudo: false
+    #   compiler: gcc
+    #   addons:
+    #     apt:
+    #       packages: *precise_icd_packages
+    #       sources: *precise_icd_sources
+    #   env:
+    #     - RUN_TEST=false
+    #     - OPENCL_LIB=khronos-icd
+    #     - OPENCL_VERSION="12"
+    #     - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    # # Precise, OpenCL 2.0, Travis CI container-based infrastructure
+    # - os: linux
+    #   sudo: false
+    #   compiler: clang
+    #   addons:
+    #     apt:
+    #       packages: *precise_icd_packages
+    #       sources: *precise_icd_sources
+    #   env:
+    #     - RUN_TEST=false
+    #     - OPENCL_LIB=khronos-icd
+    #     - OPENCL_VERSION="20"
+    #     - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    # - os: linux
+    #   sudo: false
+    #   compiler: gcc
+    #   addons:
+    #     apt:
+    #       packages: *precise_icd_packages
+    #       sources: *precise_icd_sources
+    #   env:
+    #     - RUN_TEST=false
+    #     - OPENCL_LIB=khronos-icd
+    #     - OPENCL_VERSION="20"
+    #     - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+
+    ############################################################################
+    # AMD APP SDK builds (v2.9.1 -> OpenCL 1.2, v3.0 -> OpenCL 2.0)
+    ############################################################################
+
+    # Precise, AMD APP SDK v2.9.1, Travis CI container-based infrastructure
+    - os: linux
+      sudo: false
+      compiler: clang
+      addons:
+       apt:
+         packages: &precise_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: &precise_amdappsdk_sources
+           - ubuntu-toolchain-r-test
+           - boost-latest
+      env:
+        - OPENCL_LIB=amdappsdk
+        - OPENCL_VERSION="12"
+        - AMDAPPSDK_VERSION=291 # OpenCL 1.2
+        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    # Build is disabled as it's reduntant with the Coveralls build (see below)
+    # - os: linux
+    #   sudo: false
+    #   compiler: gcc
+    #   addons:
+    #     apt:
+    #       packages: *precise_amdappsdk_packages
+    #       sources: *precise_amdappsdk_sources
+    #   env:
+    #     - OPENCL_LIB=amdappsdk
+    #     - OPENCL_VERSION="12"
+    #     - AMDAPPSDK_VERSION=291 # OpenCL 1.2
+    #     - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    # Precise, AMD APP SDK v3.0, OpenCL 2.0, Travis CI container-based infrastructure
+    - os: linux
+      sudo: false
+      compiler: clang
+      addons:
+        apt:
+          packages: *precise_amdappsdk_packages
+          sources: *precise_amdappsdk_sources
+      env:
+        - OPENCL_LIB=amdappsdk
+        - OPENCL_VERSION="20"
+        - AMDAPPSDK_VERSION=300 # OpenCL 2.0
+        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    - os: linux
+      sudo: false
+      compiler: gcc
+      addons:
+        apt:
+          packages: *precise_amdappsdk_packages
+          sources: *precise_amdappsdk_sources
+      env:
+        - OPENCL_LIB=amdappsdk
+        - OPENCL_VERSION="20"
+        - AMDAPPSDK_VERSION=300 # OpenCL 2.0
+        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+
+    # Coveralls build (-DBOOST_COMPUTE_ENABLE_COVERAGE=ON)
+    # Trusty, AMD APP SDK v2.9.1, OpenCL 1.2
+    - os: linux
+      dist: trusty
+      sudo: required
+      compiler: gcc
+      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
+      env:
+        - LINUX_DIST=trusty
+        - OPENCL_LIB=amdappsdk
+        - OPENCL_VERSION="12"
+        - AMDAPPSDK_VERSION=291 # OpenCL 1.2
+        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON"
+        - COVERAGE=true
+
+    # Latest Boost library builds (currently 1.61)
+    # Precise, AMD APP SDK v2.9.1, Travis CI container-based infrastructure
+    - os: linux
+      sudo: false
+      compiler: clang
+      cache:
+        ccache: true
+        directories:
+          - ${DEPS_DIR}/boost
+      addons:
+       apt:
+         packages: &precise_latest_boost_packages
+           - g++-4.8
+           # Misc
+           - python-yaml
+           - lcov
+           - libopencv-dev
+         sources: &precise_latest_boost_sources
+           - ubuntu-toolchain-r-test
+      env:
+        - OPENCL_LIB=amdappsdk
+        - OPENCL_VERSION="12"
+        - AMDAPPSDK_VERSION=291 # OpenCL 1.2
+        - BOOST_VERSION="1_61_0" # Boost 1.61
+        - BOOST_URL="http://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.gz"
+        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+    - os: linux
+      sudo: false
+      compiler: gcc
+      cache:
+        ccache: true
+        directories:
+          - ${DEPS_DIR}/boost
+      addons:
+        apt:
+          packages: *precise_latest_boost_packages
+          sources: *precise_latest_boost_sources
+      env:
+        - OPENCL_LIB=amdappsdk
+        - OPENCL_VERSION="12"
+        - AMDAPPSDK_VERSION=291 # OpenCL 1.2
+        - BOOST_VERSION="1_61_0" # Boost 1.61
+        - BOOST_URL="http://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.gz"
+        - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
+
+    ############################################################################
+    # OSX
+    ############################################################################
+
+    # OSX build
+    - os: osx
+      compiler: clang
+      env:
+        - ENV_CXX_FLAGS="-Wno-c99-extensions"
+
 before_install:
-    - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
-    - sudo apt-get update -qq
-    - sudo apt-get install -qq fglrx=2:8.960-0ubuntu1 opencl-headers libboost-chrono1.48-dev libboost-date-time1.48-dev libboost-test1.48-dev libboost-system1.48-dev libboost-filesystem1.48-dev libboost-timer1.48-dev libboost-program-options1.48-dev libboost-thread1.48-dev python-yaml lcov libopencv-dev g++-4.8
+    # Install dependencies
+    - |
+      # POCL dependencies for Trusty
+      # llvm-toolchain-trusty-3.7 is not whitelisted yet https://github.com/travis-ci/apt-source-whitelist/issues/199
+      if [[ ${LINUX_DIST} == "trusty" && ${OPENCL_LIB} == "pocl" ]]; then
+        # see https://github.com/travis-ci/travis-ci/issues/6120
+        POCL_LLVM_URL=http://llvm.org/releases/${POCL_LLVM_VERSION}/clang+llvm-${POCL_LLVM_VERSION}-x86_64-linux-gnu-ubuntu-14.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
+
+        #sudo add-apt-repository -y "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main"
+        #travis_retry wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | travis_retry sudo apt-key add -
+        #sudo apt-get update -qq -
+        #sudo apt-get install -qq -y clang-3.7 libclang-common-3.7-dev libclang-3.7-dev libclang1-3.7 libllvm3.7 lldb-3.7 llvm-3.7 llvm-3.7-dev llvm-3.7-runtime clang-modernize-3.7 clang-format-3.7 lldb-3.7-dev
+      # OSX
+      elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then
+        brew update
+        brew outdated boost || brew upgrade boost
+        brew outdated cmake || brew upgrade cmake
+        brew install lcov homebrew/science/opencv
+      fi
     - gem install coveralls-lcov
     - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
+
+    # 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}
+
+install:
+    # Download and install recent cmake
+    - |
+      if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
+        CMAKE_URL="http://www.cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz"
+        mkdir -p ${DEPS_DIR}/cmake
+        travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/cmake
+        export PATH=${DEPS_DIR}/cmake/bin:${PATH}
+      fi
+
+    # Download and install Boost
+    - |
+      if [[ ${TRAVIS_OS_NAME} == "linux" && ${BOOST_VERSION} != "default" ]]; then
+        if [ ! -f "${DEPS_DIR}/boost/${BOOST_VERSION}_cached" ]; then
+          # create dirs for source and install
+          mkdir -p ${DEPS_DIR}/boost${BOOST_VERSION}
+          mkdir -p ${DEPS_DIR}/boost
+          rm -rf ${DEPS_DIR}/boost/*
+          # download
+          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
+          echo "using gcc : 4.8 : g++-4.8 ;" > $HOME/user-config.jam
+          ./bootstrap.sh --prefix=${DEPS_DIR}/boost/ --with-libraries=program_options,filesystem,system,thread,test,timer,chrono
+          ./b2 -d0 install
+          popd
+          touch ${DEPS_DIR}/boost/${BOOST_VERSION}_cached
+        else
+          echo 'Using cached Boost ${BOOST_VERSION} libraries.'
+        fi
+        export CMAKE_OPTIONS=${CMAKE_OPTIONS}" -DBOOST_ROOT=${DEPS_DIR}/boost"
+      fi
+
+    ############################################################################
+    # Download OpenCL headers (and cl.hpp)
+    ############################################################################
+    - |
+      if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
+        mkdir -p ${OPENCL_ROOT}/include/CL
+        pushd ${OPENCL_ROOT}/include/CL
+        travis_retry git clone --depth 1 https://github.com/KhronosGroup/OpenCL-Headers.git -b opencl${OPENCL_VERSION}
+        mv ./OpenCL-Headers/* .
+        travis_retry wget -w 1 -np -nd -nv -A h,hpp --no-check-certificate ${OPENCL_REGISTRY}/api/2.1/cl.hpp;
+        popd
+      fi
+
+    ############################################################################
+    # Build and install POCL https://github.com/pocl/pocl
+    ############################################################################
+    - |
+      if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "pocl" ]]; then
+        travis_retry git clone --depth 1 https://github.com/pocl/pocl.git -b ${POCL_BRANCH}
+        cd pocl
+        if [[ -n "${POCL_COMMIT}" ]]; then
+          git checkout ${POCL_COMMIT}
+        fi
+        mkdir build
+        cd build
+        cmake -DDIRECT_LINKAGE=ON -DENABLE_ICD=OFF -DCMAKE_C_COMPILER=${POCL_C_COMPILER} -DCMAKE_CXX_COMPILER=${POCL_CXX_COMPILER} -DWITH_LLVM_CONFIG=${POCL_LLVM_CONFIG} -DCMAKE_INSTALL_PREFIX=${OPENCL_ROOT}/pocl/ ..
+        make install
+        cd ../..
+      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/* .
+        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
+    ############################################################################
+    - |
+      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}
+        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
+          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
+      fi
diff --git a/.travis/amd_sdk.sh b/.travis/amd_sdk.sh
new file mode 100644
index 00000000..abbce76f
--- /dev/null
+++ b/.travis/amd_sdk.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# Original script from https://github.com/gregvw/amd_sdk/
+
+# Location from which get nonce and file name from
+URL="http://developer.amd.com/tools-and-sdks/opencl-zone/opencl-tools-sdks/amd-accelerated-parallel-processing-app-sdk/"
+URLDOWN="http://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;
diff --git a/.travis/install_amd_sdk.sh b/.travis/install_amd_sdk.sh
deleted file mode 100644
index 99a1cd03..00000000
--- a/.travis/install_amd_sdk.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-# Original script from https://github.com/gregvw/amd_sdk/
-
-export OPENCL_VENDOR_PATH=${AMDAPPSDKROOT}/etc/OpenCL/vendors
-export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64:${LD_LIBRARY_PATH}
-export CMAKE_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64
-
-if [ ! -e ${AMDAPPSDKROOT}/bin/x86_64/clinfo ]; then
-    # Location from which get nonce and file name from
-    URL="http://developer.amd.com/tools-and-sdks/opencl-zone/opencl-tools-sdks/amd-accelerated-parallel-processing-app-sdk/"
-    URLDOWN="http://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"'
-
-    #For newest FORM=`wget -qO - $URL | sed -n '/download-2/,/64-bit/p'`
-    FORM=`wget -qO - $URL | sed -n '/download-5/,/64-bit/p'`
-
-    # 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;
-
-    # Unpack and install
-    tar -xjf AMD-SDK.tar.bz2;
-    mkdir -p ${OPENCL_VENDOR_PATH};
-    sh AMD-APP-SDK*.sh --tar -xf -C ${AMDAPPSDKROOT};
-    echo libamdocl64.so > ${OPENCL_VENDOR_PATH}/amdocl64.icd;
-    chmod +x ${AMDAPPSDKROOT}/bin/x86_64/clinfo;
-fi
-
-${AMDAPPSDKROOT}/bin/x86_64/clinfo
-- 
GitLab