diff --git a/.travis.yml b/.travis.yml index cc9145b08ebe10d046fa06c56a970e77b5bab43b..82733b545a1473ba726a1038c8f22cf4d50be80b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,16 @@ -# Copyright (c) 2016 - 2017 Syncleus, Inc. +# Copyright (c) 2016 - 2017 Syncleus, Inc. # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. language: java @@ -33,8 +33,6 @@ env: - 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" @@ -48,375 +46,170 @@ env: matrix: include: ############################################################################ - # AMD APP SDK builds (v2.9.1 -> OpenCL 1.2, v3.0 -> OpenCL 2.0) + # POCL builds (OpenCL 1.0, 1.1) ############################################################################ + + # Trusty, OpenCL 1.0 - os: linux - sudo: required - dist: trusty - compiler: clang - addons: - apt: - packages: &trusty_amdappsdk_packages - - g++-4.8 - env: - - LINUX_DIST=trusty - - OPENCL_LIB=amdappsdk - - OPENCL_VERSION="20" - - AMDAPPSDK_VERSION=300 # OpenCL 2.0 - - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" - - os: linux - sudo: required dist: trusty - compiler: gcc - addons: - apt: - packages: *trusty_amdappsdk_packages - env: - - LINUX_DIST=trusty - - OPENCL_LIB=amdappsdk - - OPENCL_VERSION="20" - - AMDAPPSDK_VERSION=300 # OpenCL 2.0 - - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include" - - os: linux sudo: required - dist: trusty compiler: clang - addons: + addons: apt: - packages: *trusty_amdappsdk_packages - 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: required - dist: trusty - compiler: gcc - addons: - apt: - packages: *trusty_amdappsdk_packages - env: - - OPENCL_LIB=amdappsdk - - OPENCL_VERSION="12" - - AMDAPPSDK_VERSION=291 # OpenCL 1.2 - - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/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 -# 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 + 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 + 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 + 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 + 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" + 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++ -# # 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" -# - OPENCL_FILE="${OPENCL_ROOT}/lib/libOpenCL.so" -# - 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" + - os: linux + sudo: false + compiler: clang + addons: + apt: + packages: &precise_icd_packages + - g++ + # 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" + - OPENCL_FILE="${OPENCL_ROOT}/lib/libOpenCL.so" + - 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" -# ############################################################################ -# # OSX -# ############################################################################ + ############################################################################ + # OSX + ############################################################################ # -# # OSX build -# - os: osx -# compiler: clang -# env: -# - ENV_CXX_FLAGS="-Wno-c99-extensions" + # OSX build + - os: osx + compiler: clang + env: + - ENV_CXX_FLAGS="-Wno-c99-extensions" before_install: #install maven 3.5.0 @@ -519,32 +312,6 @@ install: 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 - after_success: - bash <(curl -s https://codecov.io/bash) - mvn site