-
Notifications
You must be signed in to change notification settings - Fork 59
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Added Travis CI build automation * OPENCL_ROOT can be passed through env var to help find OpenCL * ExternalBoost can select compiler through ENV{CC} * Linux/OSX builds will find boost either in static or dynamic forms * Cmake config package now installs to ${LIB_INSTALL_DIR}/cmake/clSPARSE - #116 * Library links to ${CMAKE_DL_LIBS} - #117 Merge branch 'develop' Conflicts: CMakeLists.txt src/CMakeLists.txt
- Loading branch information
Showing
13 changed files
with
317 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
# Ubuntu name decoder ring; https://en.wikipedia.org/wiki/List_of_Ubuntu_releases | ||
# Ubuntu 12.04 LTS (Precise Pangolin) <== Travis CI VM image | ||
# Ubuntu 12.10 (Quantal Quetzal) | ||
# Ubuntu 13.04 (Raring Ringtail) | ||
# Ubuntu 13.10 (Saucy Salamander) | ||
# Ubuntu 14.04 LTS (Trusty Tahr) | ||
# Ubuntu 14.10 (Utopic Unicorn) | ||
# Ubuntu 15.04 (Vivid Vervet) | ||
# Ubuntu 15.10 (Wily Werewolf) | ||
# Ubuntu 16.04 LTS (Xenial Xantus) | ||
|
||
# language: instructs travis what compilers && environment to set up in build matrix | ||
language: cpp | ||
|
||
# sudo: false instructs travis to build our project in a docker VM (faster) | ||
# Can not yet install fglrx packages with 'false' | ||
sudo: required # false | ||
|
||
# os: expands the build matrix to include multiple os's | ||
# disable linux, as we get sporadic failures on building boost, needs investigation | ||
os: | ||
# - linux | ||
- osx | ||
|
||
# compiler: expands the build matrix to include multiple compilers (per os) | ||
compiler: | ||
- gcc | ||
- clang | ||
|
||
addons: | ||
# apt: is disabled on osx builds | ||
# apt: needed by docker framework to install project dependencies without | ||
# sudo. Apt uses published Ubunto PPA's from https://launchpad.net/ | ||
# https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json | ||
apt: | ||
sources: | ||
# ubuntu-toolchain-r-test contains newer versions of gcc to install | ||
- ubuntu-toolchain-r-test | ||
# llvm-toolchain-precise-3.6 contains newer versions of clang to install | ||
# - llvm-toolchain-precise-3.6 | ||
# kubuntu-backports contains newer versions of cmake to install | ||
- kubuntu-backports | ||
# boost-latest contains boost v1.55 | ||
# - boost-latest | ||
packages: | ||
# g++-4.8 is minimum version considered to be the first good c++11 gnu compiler | ||
- g++-4.8 | ||
# - clang-3.6 | ||
# We require v2.8.12 minimum | ||
- cmake | ||
# I'm finding problems between pre-compiled versions of boost ublas, with gtest | ||
# stl_algobase.h: error: no matching function for call to swap() | ||
# - libboost-program-options1.55-dev | ||
# - libboost-serialization1.55-dev | ||
# - libboost-filesystem1.55-dev | ||
# - libboost-system1.55-dev | ||
# - libboost-regex1.55-dev | ||
# The package opencl-headers on 'precise' only installs v1.1 cl headers; uncomment for 'trusty' or greater | ||
# - opencl-headers | ||
# Uncomment one of the following when fglrx modules are added to the apt whitelist | ||
# - fglrx | ||
# - fglrx=2:8.960-0ubuntu1 | ||
# - fglrx=2:13.350.1-0ubuntu0.0.1 | ||
|
||
# env: specifies additional global variables to define per row in build matrix | ||
env: | ||
global: | ||
- CLSPARSE_ROOT=${TRAVIS_BUILD_DIR}/bin/make/release | ||
|
||
# The following filters our build matrix; we are interested in linux-gcc & osx-clang | ||
matrix: | ||
exclude: | ||
- os: linux | ||
compiler: clang | ||
- os: osx | ||
compiler: gcc | ||
|
||
before_install: | ||
# Remove the following linux clause when fglrx can be installed with sudo: false | ||
- if [ ${TRAVIS_OS_NAME} == "linux" ]; then | ||
sudo apt-get update -qq && | ||
sudo apt-get install -qq fglrx=2:13.350.1-0ubuntu0.0.1; | ||
fi | ||
- if [ ${TRAVIS_OS_NAME} == "linux" ]; then | ||
export OPENCL_ROOT="${TRAVIS_BUILD_DIR}/opencl-headers"; | ||
export BUILD_BOOST="ON"; | ||
fi | ||
- if [ ${TRAVIS_OS_NAME} == "osx" ]; then | ||
brew update; | ||
brew outdated boost || brew upgrade boost; | ||
brew outdated cmake || brew upgrade cmake; | ||
export BUILD_BOOST="OFF"; | ||
fi | ||
- if [ ${CXX} = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi | ||
- cmake --version; | ||
- ${CC} --version; | ||
- ${CXX} --version; | ||
|
||
install: | ||
# 'Precise' only distributes v1.1 opencl headers; download 1.2 headers from khronos website | ||
# Remove when the travis VM upgrades to 'trusty' or beyond | ||
- if [ ${TRAVIS_OS_NAME} == "linux" ]; then | ||
mkdir -p ${OPENCL_ROOT}/include/CL; | ||
pushd ${OPENCL_ROOT}/include/CL; | ||
wget -w 1 -r -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/; | ||
popd; | ||
fi | ||
# osx image does not contain cl.hpp file; download from Khronos | ||
- if [ ${TRAVIS_OS_NAME} == "osx" ]; then | ||
pushd /System/Library/Frameworks/OpenCL.framework/Versions/A/Headers/; | ||
sudo wget -w 1 -np -nd -nv -A h,hpp https://www.khronos.org/registry/cl/api/1.2/cl.hpp; | ||
popd; | ||
fi | ||
|
||
# Use before_script: to run configure steps | ||
before_script: | ||
- mkdir -p ${CLSPARSE_ROOT} | ||
- pushd ${CLSPARSE_ROOT} | ||
- cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_Boost=${BUILD_BOOST} -DBUILD_gMock=ON -DBUILD_clSPARSE=ON -DBUILD_SAMPLES=ON ${TRAVIS_BUILD_DIR} | ||
|
||
# use script: to execute build steps | ||
script: | ||
- make | ||
- cd clSPARSE-build | ||
- make package |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.