1
+ # Ubuntu name decoder ring; https://en.wikipedia.org/wiki/List_of_Ubuntu_releases
2
+ # Ubuntu 12.04 LTS (Precise Pangolin) <== Travis CI VM image
3
+ # Ubuntu 12.10 (Quantal Quetzal)
4
+ # Ubuntu 13.04 (Raring Ringtail)
5
+ # Ubuntu 13.10 (Saucy Salamander)
6
+ # Ubuntu 14.04 LTS (Trusty Tahr)
7
+ # Ubuntu 14.10 (Utopic Unicorn)
8
+ # Ubuntu 15.04 (Vivid Vervet)
9
+ # Ubuntu 15.10 (Wily Werewolf)
10
+ # Ubuntu 16.04 LTS (Xenial Xantus)
11
+
12
+ # language: instructs travis what compilers && environment to set up in build matrix
1
13
language : cpp
2
14
15
+ # sudo: false instructs travis to build our project in a docker VM (faster)
16
+ # Can not yet install fglrx packages with 'false'
17
+ sudo : required # false
18
+
19
+ # os: expands the build matrix to include multiple os's
20
+ # disable linux, as we get sporadic failures on building boost, needs investigation
21
+ os :
22
+ - linux
23
+ - osx
24
+
25
+ # compiler: expands the build matrix to include multiple compilers (per os)
3
26
compiler :
4
27
- gcc
28
+ - clang
29
+
30
+ addons :
31
+ # apt: is disabled on osx builds
32
+ # apt: needed by docker framework to install project dependencies without
33
+ # sudo. Apt uses published Ubunto PPA's from https://launchpad.net/
34
+ # https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
35
+ apt :
36
+ sources :
37
+ # ubuntu-toolchain-r-test contains newer versions of gcc to install
38
+ # - ubuntu-toolchain-r-test
39
+ # llvm-toolchain-precise-3.6 contains newer versions of clang to install
40
+ # - llvm-toolchain-precise-3.6
41
+ # kubuntu-backports contains newer versions of cmake to install
42
+ - kubuntu-backports
43
+ # boost-latest contains boost v1.55
44
+ - boost-latest
45
+ packages :
46
+ # g++-4.8 is minimum version considered to be the first good c++11 gnu compiler
47
+ # - g++-4.8
48
+ # - clang-3.6
49
+ # We require v2.8.12 minimum
50
+ - cmake
51
+ # I'm finding problems between pre-compiled versions of boost ublas, with gtest
52
+ # stl_algobase.h: error: no matching function for call to swap()
53
+ - libboost-program-options1.55-dev
54
+ # - libboost-serialization1.55-dev
55
+ # - libboost-filesystem1.55-dev
56
+ # - libboost-system1.55-dev
57
+ # - libboost-regex1.55-dev
58
+ # The package opencl-headers on 'precise' only installs v1.1 cl headers; uncomment for 'trusty' or greater
59
+ # - opencl-headers
60
+ # Uncomment one of the following when fglrx modules are added to the apt whitelist
61
+ # - fglrx
62
+ # - fglrx=2:8.960-0ubuntu1
63
+ # - fglrx=2:13.350.1-0ubuntu0.0.1
64
+
65
+ # env: specifies additional global variables to define per row in build matrix
66
+ env :
67
+ global :
68
+ - CLBLAS_ROOT=${TRAVIS_BUILD_DIR}/bin/make/release
69
+
70
+ # The following filters our build matrix; we are interested in linux-gcc & osx-clang
71
+ matrix :
72
+ exclude :
73
+ - os : linux
74
+ compiler : clang
75
+ - os : osx
76
+ compiler : gcc
5
77
6
78
before_install :
7
- - sudo apt-get update -qq
8
- - sudo apt-get install -qq fglrx libboost-program-options-dev
9
- # Uncomment below to help verify the installs above work
10
- # - ls -la /usr/lib/libboost*
11
- # - ls -la /usr/include/boost
79
+ # Remove the following linux clause when fglrx can be installed with sudo: false
80
+ - if [ ${TRAVIS_OS_NAME} == "linux" ]; then
81
+ sudo apt-get update -qq &&
82
+ sudo apt-get install -qq fglrx=2:13.350.1-0ubuntu0.0.1;
83
+ fi
84
+ - if [ ${TRAVIS_OS_NAME} == "linux" ]; then
85
+ export OPENCL_ROOT="${TRAVIS_BUILD_DIR}/opencl-headers";
86
+ fi
87
+ - if [ ${TRAVIS_OS_NAME} == "osx" ]; then
88
+ brew update;
89
+ brew outdated boost || brew upgrade boost;
90
+ brew outdated cmake || brew upgrade cmake;
91
+ fi
92
+ # - if [ ${CXX} = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
93
+ - cmake --version;
94
+ - ${CC} --version;
95
+ - ${CXX} --version;
12
96
97
+ install :
98
+ # 'Precise' only distributes v1.1 opencl headers; download 1.2 headers from khronos website
99
+ # Remove when the travis VM upgrades to 'trusty' or beyond
100
+ - if [ ${TRAVIS_OS_NAME} == "linux" ]; then
101
+ mkdir -p ${OPENCL_ROOT}/include/CL;
102
+ pushd ${OPENCL_ROOT}/include/CL;
103
+ wget -w 1 -r -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/;
104
+ popd;
105
+ fi
106
+ # osx image does not contain cl.hpp file; download from Khronos
107
+ # - if [ ${TRAVIS_OS_NAME} == "osx" ]; then
108
+ # pushd /System/Library/Frameworks/OpenCL.framework/Versions/A/Headers/;
109
+ # sudo wget -w 1 -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/cl.hpp;
110
+ # popd;
111
+ # fi
112
+
113
+ # Use before_script: to run configure steps
13
114
before_script :
14
- - cd ${TRAVIS_BUILD_DIR}
15
- # download OpenCL 1.2 header files since Travis CI only provides 1.1
16
- - mkdir -p OpenCLInclude/CL
17
- - cd OpenCLInclude/CL
18
- # - wget -r --no-parent -nH --cut-dirs=4 --reject="index.html*" https://www.khronos.org/registry/cl/api/1.2/
19
- - wget https://www.khronos.org/registry/cl/api/1.2/cl.h
20
- - wget https://www.khronos.org/registry/cl/api/1.2/cl.hpp
21
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_d3d10.h
22
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_d3d11.h
23
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_dx9_media_sharing.h
24
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_egl.h
25
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_ext.h
26
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_gl.h
27
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_gl_ext.h
28
- - wget https://www.khronos.org/registry/cl/api/1.2/cl_platform.h
29
- - wget https://www.khronos.org/registry/cl/api/1.2/opencl.h
30
- - ls
31
- - pwd
32
- - cd ../..
33
- - mkdir -p bin/clBLAS
34
- - cd bin/clBLAS
35
- - cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=OFF -DBUILD_CLIENT=ON -DOPENCL_INCLUDE_DIRS:PATH=$PWD/../../OpenCLInclude -DCMAKE_INSTALL_PREFIX:PATH=$PWD/package ../../src
36
-
37
- script :
38
- - make install
39
- # - ls -Rla package
40
- # Run a simple test to validate that the build works; CPU device in a VM
41
- - cd package/bin
42
- - export LD_LIBRARY_PATH=${TRAVIS_BUILD_DIR}/bin/clBLAS/package/lib64:${LD_LIBRARY_PATH}
43
- - ./clBLAS-client --cpu
44
-
45
- after_success :
46
- - cd ${TRAVIS_BUILD_DIR}/bin/clBLAS
115
+ - mkdir -p ${CLBLAS_ROOT}
116
+ - pushd ${CLBLAS_ROOT}
117
+ - cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=OFF -DBUILD_CLIENT=ON -DOCL_VERSION=2.0 -DOPENCL_ROOT=${OPENCL_ROOT} ${TRAVIS_BUILD_DIR}/src
118
+
119
+ # use script: to execute build steps
120
+ script :
47
121
- make package
48
122
49
- notifications :
50
- email :
51
-
52
- on_success : change
53
- on_failure : always
54
-
123
+ deploy :
124
+ provider : releases
125
+ prerelease : true
126
+ draft : true
127
+ skip_cleanup : true
128
+ api_key :
129
+ secure : MBkxtcfSk+4UvGRO+WRhmS86vIVzAs0LIF2sAtr/S+Ed+OdUAuhZypUsDXGWtK3mL55v9c8BZXefFfHfJqElcNmyHKwCptbCR/JiM8YBtjoy2/RW1NcJUZp+QuRlk23xPADj7QkPjv7dfrQUMitkLUXAD+uTmMe2l8gmlbhMrQqPBKhb+31FNv6Lmo6oa6GjbiGi7qjsrJc7uQjhppLam+M7BZbBALGbIqMIrb2BMDMMhBoDbb4zSKrSg3+krd3kKiCClJlK7xjIlyFXZ527ETQ+PMtIeQb0eJ3aQwa4caBRCm5BDzt8GnJ48S88EkynbQioCEE87ebcyOM7M+wfslW/Fm1Y86X5odIljkOmTNKoDvgLxc9vUCBtMyVHNIgZcToPdsrMsGxcHV+JtU3yVQVm6dnA5P/zG5bA+aBjsd7p7BdOE4fdhvZV5XRAk/wmiyWalF7hKJxHIiWAKknL+tpPDDUF+fHmDDsdf7yRDJBegNcKfw4+m19MIvLn9fbiNVCtwCAL1T4yWkIEpi4MRMDPtftmkZPbi6UwluOJUTeCeHe4en99Yu2haemNPqXs6rR0LlXGk31GQwzlrNfb+94F5tT2a4Ka4PsruA2NMW/IYCYEE5Gu7PihVDR031Fn9cdCU9kefUgyB07rJD6q/W+ljsU0osyg7VxyfMg8rkw=
130
+ file : ${CLBLAS_ROOT}/clBLAS-build/*.tar.gz
131
+ file_glob : true
132
+ on :
133
+ all_branches : true
134
+ tags : true
0 commit comments