Skip to content

Commit 42e7a10

Browse files
committed
Merge branch 'kknox-travis-14.04' into develop
2 parents c1e6c8f + 343827d commit 42e7a10

3 files changed

Lines changed: 54 additions & 58 deletions

File tree

.travis.yml

Lines changed: 43 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@
99
# Ubuntu 15.10 (Wily Werewolf)
1010
# Ubuntu 16.04 LTS (Xenial Xantus)
1111

12-
# language: instructs travis what compilers && environment to set up in build matrix
13-
language: cpp
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-
1912
# os: expands the build matrix to include multiple os's
20-
# disable linux, as we get sporadic failures on building boost, needs investigation
2113
os:
2214
- linux
2315
- osx
2416

17+
# sudo: false instructs travis to build our project in a docker VM (faster),
18+
# but we cannot yet install fglrx packages with 'false'
19+
sudo: required # false
20+
dist: trusty
21+
22+
# language: instructs travis what compilers && environment to set up in build matrix
23+
language: cpp
24+
2525
# compiler: expands the build matrix to include multiple compilers (per os)
2626
compiler:
2727
- gcc
@@ -35,37 +35,20 @@ addons:
3535
apt:
3636
sources:
3737
# ubuntu-toolchain-r-test contains newer versions of gcc to install
38-
- ubuntu-toolchain-r-test
38+
# - ubuntu-toolchain-r-test
39+
3940
# llvm-toolchain-precise-3.6 contains newer versions of clang to install
4041
# - 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
4542
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
5843
# 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
44+
- opencl-headers
6445

6546
# env: specifies additional global variables to define per row in build matrix
6647
env:
6748
global:
6849
- CLSPARSE_ROOT=${TRAVIS_BUILD_DIR}/bin/make/release
50+
- OPENCL_REGISTRY=https://www.khronos.org/registry/cl
51+
- OPENCL_ROOT=${TRAVIS_BUILD_DIR}/bin/opencl
6952

7053
# The following filters our build matrix; we are interested in linux-gcc & osx-clang
7154
matrix:
@@ -79,39 +62,52 @@ before_install:
7962
# Remove the following linux clause when fglrx can be installed with sudo: false
8063
- if [ ${TRAVIS_OS_NAME} == "linux" ]; then
8164
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-
export BUILD_BOOST="ON";
65+
sudo apt-get install -qq libboost-all-dev;
66+
export BUILD_BOOST="OFF";
8767
fi
8868
- if [ ${TRAVIS_OS_NAME} == "osx" ]; then
8969
brew update;
9070
brew outdated boost || brew upgrade boost;
9171
brew outdated cmake || brew upgrade cmake;
9272
export BUILD_BOOST="OFF";
9373
fi
94-
- if [ ${CXX} = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
74+
# - if [ ${CXX} = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
9575
- cmake --version;
9676
- ${CC} --version;
9777
- ${CXX} --version;
9878

9979
install:
100-
# 'Precise' only distributes v1.1 opencl headers; download 1.2 headers from khronos website
101-
# Remove when the travis VM upgrades to 'trusty' or beyond
102-
- if [ ${TRAVIS_OS_NAME} == "linux" ]; then
103-
mkdir -p ${OPENCL_ROOT}/include/CL;
104-
pushd ${OPENCL_ROOT}/include/CL;
105-
wget -w 1 -r -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/;
106-
popd;
107-
fi
10880
# osx image does not contain cl.hpp file; download from Khronos
10981
- if [ ${TRAVIS_OS_NAME} == "osx" ]; then
11082
pushd /System/Library/Frameworks/OpenCL.framework/Versions/A/Headers/;
111-
sudo wget -w 1 -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/cl.hpp;
83+
sudo wget -w 1 -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/2.1/cl.hpp;
84+
popd;
85+
fi
86+
# The following linux logic is necessary because of Travis's move to the GCE platform, which does not
87+
# currently contain packages for fglrx: https://github.com/travis-ci/travis-ci/issues/5221
88+
# We build our own linkable .so file
89+
- if [ ${TRAVIS_OS_NAME} == "linux" ]; then
90+
mkdir -p ${OPENCL_ROOT};
91+
pushd ${OPENCL_ROOT};
92+
wget ${OPENCL_REGISTRY}/specs/opencl-icd-1.2.11.0.tgz;
93+
tar -xf opencl-icd-1.2.11.0.tgz;
94+
mv ./icd/* .;
95+
mkdir -p inc/CL;
96+
pushd inc/CL;
97+
wget -r -w 1 -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/;
98+
wget -w 1 -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/2.1/cl.hpp;
99+
popd;
100+
mkdir -p lib;
101+
pushd lib;
102+
cmake -G "Unix Makefiles" ..;
103+
make;
104+
cp ../bin/libOpenCL.so .;
105+
popd;
106+
mv inc/ include/;
112107
popd;
113108
fi
114109

110+
115111
# Use before_script: to run configure steps
116112
before_script:
117113
- mkdir -p ${CLSPARSE_ROOT}
@@ -123,6 +119,7 @@ script:
123119
- make clSPARSE-samples
124120
- cd clSPARSE-build
125121
- make package
122+
- popd
126123

127124
deploy:
128125
provider: releases
@@ -132,8 +129,8 @@ deploy:
132129
# This uses a personal OAuth token generated by kknox
133130
api_key:
134131
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=
135-
file: ${CLSPARSE_ROOT}/clSPARSE-build/*.tar.gz
136132
file_glob: true
133+
file: ${CLSPARSE_ROOT}/clSPARSE-build/*.tar.gz
137134
on:
138135
all_branches: true
139136
tags: true

README.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,27 @@ Two mailing lists have been created for the clMath projects:
4646
developers interested in contributing to the library code itself
4747

4848
### API semantic versioning
49-
Good software is typically the result of the loop of feedback and iteration;
50-
software interfaces no less so. clSPARSE follows the
49+
Good software is typically the result of iteration and feedback. clSPARSE follows the
5150
[semantic versioning](http://semver.org/) guidelines, and while the major version
5251
number remains '0', the public API should not be considered stable. We release
5352
clSPARSE as beta software (0.y.z) early to the community to elicit feedback and
5453
comment. This comes with the expectation that with feedback, we may incorporate
5554
breaking changes to the API that might require early users to recompile, or rewrite
5655
portions of their code as we iterate on the design.
5756

57+
## clSPARSE Wiki
58+
The [project wiki](https://github.com/clMathLibraries/clSPARSE/wiki) contains helpful documentation.
59+
A [build primer](https://github.com/clMathLibraries/clSPARSE/wiki/Build) is available,
60+
which describes how to use cmake to generate platforms specific build files
61+
5862
## Samples
5963
clSPARSE contains a directory of simple [OpenCL samples](./samples) that demonstrate the use
6064
of the API in both C and C++. The [superbuild](http://www.kitware.com/media/html/BuildingExternalProjectsWithCMake2.8.html)
6165
script for clSPARSE also builds the samples as an external project, to demonstrate
6266
how an application would find and link to clSPARSE with cmake.
6367

6468
### clSPARSE library documentation
65-
**API documentation** is now available http://clmathlibraries.github.io/clSPARSE/ . The included samples will give an excellent
69+
**API documentation** is available at http://clmathlibraries.github.io/clSPARSE/. The samples give an excellent
6670
starting point to basic library operations.
6771

6872
### Contributing code
@@ -72,14 +76,8 @@ how to contribute code to this open source project. Code in the
7276
when commits are merged into /master. Active development and pull-requests should
7377
be made to the **develop** branch.
7478

75-
## Build
76-
clSPARSE is primarily written with C++ using C++11 core features. It does export
77-
a 'C' interface for compatibility with other languages.
78-
79-
### How to build clSPARSE for your platform
80-
A [Build primer](https://github.com/clMathLibraries/clSPARSE/wiki/Build) is available on
81-
the wiki, which describes how to use cmake to generate platforms specific build
82-
files
79+
## License
80+
clSPARSE is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
8381

8482
### Compiling for Windows
8583
- Windows® 7/8

appveyor.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ install:
4949
# The cmake build files expect a directory called inc
5050
- ps: mkdir inc/CL
5151
- ps: wget $opencl_registry/api/1.2/ | select -ExpandProperty links | where {$_.href -like "*.h*"} | select -ExpandProperty outerText | foreach{ wget $opencl_registry/api/1.2/$_ -OutFile inc/CL/$_ }
52+
- ps: wget $opencl_registry/api/2.1/cl.hpp -OutFile inc/CL/cl.hpp
5253
# - ps: dir; if( $lastexitcode -eq 0 ){ dir include/CL } else { Write-Output boom }
5354
# Create the static import lib in a directory called lib, so findopencl() will find it
5455
- ps: mkdir lib
@@ -59,7 +60,6 @@ install:
5960
# Rename the inc directory to include, so FindOpencl() will find it
6061
- ps: ren inc include
6162
- ps: popd
62-
- ps: popd
6363

6464
# before_build is used to run configure steps
6565
before_build:
@@ -81,6 +81,7 @@ after_build:
8181
- echo after_build step
8282
- ps: ls $env:CLSPARSE_ROOT\clSPARSE-build
8383
- ps: mv $env:CLSPARSE_ROOT\clSPARSE-build\*.zip $env:APPVEYOR_BUILD_FOLDER
84+
- ps: popd
8485

8586
# Appyeyor will save a copy of the package in it's personal storage
8687
artifacts:

0 commit comments

Comments
 (0)