Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 0 additions & 107 deletions .appveyor.yml

This file was deleted.

88 changes: 59 additions & 29 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,55 @@ env:
global:
- secure: "ReYURSvDLRz078njJgh2i/KvwLc/3fGPkgjf6mLLoHWgz7vSuh24B5z10Th2UMQo9op66qcZ2WcooYIqeEHGbmYuBGGKd2axsGUEXqoclG9SdNsa5BoCA9iiLlLiMgIO+Kp1EuSbWcrpVRs/BiXya1iN+lpBErsWHGaXJP8idexnCepMLYgzUDu/FNuZJwRHMX1cvqK7wxOkCwXJRqEfbA+fn1/oCb+YAPpEet12kFNu1RRk6g+ui7g5XuAVHISj+UHbr5+GNYR6gD8476EkjUm38ssnPKxTvydj1QXcEw6weRDpevFByum5fDf2vHgojo5dNvhIio4gENkfbwbd2azVitHtE7boByb/AO3z3YcFhDRu0ETgCEZWIDrQWwkAubf+sB2MWyKGCPGQaECrVGDD2JzV6kX0lMCVaPQONggFBmJQwcHodLxXurpupmttJ+W4aZf5EsQsGPIYNegMnkdHAgTHxuPUtyDIlOJfTrUt1qPRh+yKGvmX7/C+AirXFIbxOemTdx3w0Y3CbhVxP2jDoP45rPzC17EI06gdQJaWzx5//LKkwcsAmox0bXrKHDOuMJNWVA6ZhBd3fGascMh4tgdSYc9yuRyAb0ygP0obUXp6PXU0TFxeenCaA9YAZrg6OXzS115lcnak8Xfyi+fmlfjrT8BSVk9bL9/3t2I="

cache:
ccache: true
directories:
- $HOME/downloads

matrix:
include:
- os: linux
compiler: clang
env:
- BACKEND=OpenBLAS
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- libopenblas-base
- libopenblas-dev
- BACKEND=Intel10_64lp_seq
- BUILD_STATIC=1
- CMAKE_C_COMPILER=clang
- CMAKE_CXX_COMPILER=clang++
- os: linux
compiler: clang
env:
- BACKEND=ATLAS
addons:
sources:
- ubuntu-toolchain-r-test
apt:
packages:
- libatlas-base-dev
- BACKEND=Intel10_64lp
- BUILD_STATIC=1
- CMAKE_C_COMPILER=clang
- CMAKE_CXX_COMPILER=clang++
- os: linux
env:
- BACKEND=Intel10_64lp_seq
- os: osx
env:
- BACKEND=Apple
- os: osx
- BUILD_STATIC=1
- os: linux
env:
- BACKEND=Intel10_64lp_seq
- BACKEND=Intel10_64lp
- BUILD_STATIC=1

before_install:
# Dependencies required by the CI are installed in ${TRAVIS_BUILD_DIR}/deps/
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- mkdir -p "${DEPS_DIR}"

- export DL_DIR=$HOME/downloads
- |
function _download() {
url="$1"; f="${2:-$(basename $url)}";
if [ ! -e $DL_DIR/$f ] ; then
mkdir -p $DL_DIR ;
echo "Downloading: ${DL_DIR}/$f" ;
travis_retry wget --no-verbose $url -O $DL_DIR/$f ;
else
echo "Reading from cache: ${DL_DIR}/$f" ;
fi
}
- function download() { _download "$1" "" ; }

# Travis machines have 2 cores
- JOBS=2

Expand All @@ -54,10 +67,13 @@ before_install:
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
CMAKE_URL="https://cmake.org/files/v${CMAKE_VERSION%.[0-9]}/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz"
mkdir cmake && travis_retry wget --no-check-certificate -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
mkdir cmake && travis_retry wget --no-verbose --no-check-certificate -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
else
brew install cmake || brew upgrade cmake
if [[ "${BACKEND}" == "OpenBLAS" ]]; then
brew install openblas
fi
fi
- which cmake
- cmake --version
Expand All @@ -66,11 +82,12 @@ before_install:
# Install MKL
############################################################################
- |
if [[ "${BACKEND}" == "Intel10_64lp_seq" ]]; then
if [[ "${BACKEND}" == *"Intel"* ]]; then
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
export MKL_INSTALL_DIR=$(pwd)/intel
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12070/l_mkl_2018.0.128.tgz
tar -xzf l_mkl_2018.0.128.tgz
export ARCH_FNAME=l_mkl_2018.0.128.tgz
download http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12070/${ARCH_FNAME}
tar -xzf $DL_DIR/${ARCH_FNAME}
cat l_mkl_2018.0.128/silent.cfg | grep -v EULA | grep -v PSET_INSTALL_DIR > silent.cfg
echo "ACCEPT_EULA=accept" >> silent.cfg
echo "PSET_INSTALL_DIR=${MKL_INSTALL_DIR}" >> silent.cfg
Expand All @@ -79,8 +96,9 @@ before_install:
. ${MKL_INSTALL_DIR}/mkl/bin/mklvars.sh intel64 ilp64
else # Mac
export MKL_INSTALL_DIR=/opt/intel
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12185/m_mkl_2017.4.220.dmg
hdiutil attach m_mkl_2017.4.220.dmg
export ARCH_FNAME=m_mkl_2017.4.220.dmg
download http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12185/${ARCH_FNAME}
hdiutil attach $DL_DIR/${ARCH_FNAME}
cat /Volumes/m_mkl_2017.4.220/m_mkl_2017.4.220.app/Contents/MacOS/silent.cfg | grep -v EULA | grep -v PSET_INSTALL_DIR > silent.cfg
echo "ACCEPT_EULA=accept" >> silent.cfg
echo "PSET_INSTALL_DIR=${MKL_INSTALL_DIR}" >> silent.cfg
Expand All @@ -92,9 +110,17 @@ before_install:
script:
- cd ${TRAVIS_BUILD_DIR}
- mkdir -p build && cd build
- echo "cmake .. -DBLAS_VENDOR=$BACKEND"
- cmake .. -DCMAKE_CXX_STANDARD=11 -DBLA_VENDOR=$BACKEND
- cmake --build .
- export CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=11 -DBLA_VENDOR=$BACKEND"
- |
if [[ "${BUILD_STATIC}" == "1" ]]; then
export CMAKE_OPTIONS="${CMAKE_OPTIONS} -DBLA_STATIC=ON"
fi
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then echo $LD_LIBRARY_PATH; fi
- if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then echo $DYLD_LIBRARY_PATH; fi
- echo "cmake .. ${CMAKE_OPTIONS}"
- cmake .. ${CMAKE_OPTIONS} --debug-trycompile
- make VERBOSE=1
# - cmake --build .
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
ldd ./CMakeHelloWorld
Expand All @@ -105,5 +131,9 @@ script:
after_success:
- ./CMakeHelloWorld

after_failure:
- cat CMakeFiles/CMakeOutput.log
- cat CMakeFiles/CMakeError.log

notifications:
email: false
22 changes: 10 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ set (CMakeHelloWorld_VERSION_MAJOR 1)
set (CMakeHelloWorld_VERSION_MINOR 0)

# Find the BLAS stuff
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package (Threads REQUIRED)
find_package(BLAS REQUIRED)

message(STATUS "BLAS Libraries: ${BLAS_LIBRARIES}")

# find_path(BLAS_INCLUDE_DIRS NAMES cblas.h)
# message(STATUS "BLAS Include: ${BLAS_INCLUDE_DIRS}")
# include_directories(${BLAS_INCLUDE_DIRS})

set(BLA_DEFINITIONS)
if (BLA_VENDOR MATCHES Intel)
if ("$ENV{MKLROOT}" STREQUAL "")
Expand All @@ -29,17 +28,16 @@ elseif (BLA_VENDOR MATCHES ATLAS)
set(BLAS_LIBRARIES "${BLAS_LIBRARIES};${CBLAS_LIB}")
endif()

# include_directories(SYSTEM
# C:\\nuget_openblas\\OpenBLAS.0.2.14.1\\lib\\native\\include\\
# C:\\OpenBLAS.0.2.14.1\\lib\\native\\include\\)

#include the subdirectory containing our libs
# include the subdirectory containing our libs
add_subdirectory(Hello)
include_directories(Hello)
#indicate the entry point for the executable
target_include_directories(Hello)
# indicate the entry point for the executable
add_executable(CMakeHelloWorld Hello HelloWorld.cpp)

# # BLAS libraries compile dynamically against threads
# LIST(APPEND CMAKE_THREAD_LIBS_INIT ${LM})

# Indicate which libraries to include during the link process.
target_link_libraries(CMakeHelloWorld Hello ${BLAS_LIBRARIES})
target_link_libraries(CMakeHelloWorld Hello ${BLAS_LIBRARIES} Threads::Threads ${LM})

# install (TARGETS CMakeHelloWorld DESTINATION bin)
86 changes: 86 additions & 0 deletions cmake/CMakePushCheckState.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

#.rst:
# CMakePushCheckState
# -------------------
#
#
#
# This module defines three macros: CMAKE_PUSH_CHECK_STATE()
# CMAKE_POP_CHECK_STATE() and CMAKE_RESET_CHECK_STATE() These macros can
# be used to save, restore and reset (i.e., clear contents) the state of
# the variables CMAKE_REQUIRED_FLAGS, CMAKE_REQUIRED_DEFINITIONS,
# CMAKE_REQUIRED_LIBRARIES, CMAKE_REQUIRED_INCLUDES and CMAKE_EXTRA_INCLUDE_FILES
# used by the various Check-files coming with CMake, like e.g.
# check_function_exists() etc. The variable contents are pushed on a
# stack, pushing multiple times is supported. This is useful e.g. when
# executing such tests in a Find-module, where they have to be set, but
# after the Find-module has been executed they should have the same
# value as they had before.
#
# CMAKE_PUSH_CHECK_STATE() macro receives optional argument RESET.
# Whether it's specified, CMAKE_PUSH_CHECK_STATE() will set all
# CMAKE_REQUIRED_* variables to empty values, same as
# CMAKE_RESET_CHECK_STATE() call will do.
#
# Usage:
#
# ::
#
# cmake_push_check_state(RESET)
# set(CMAKE_REQUIRED_DEFINITIONS -DSOME_MORE_DEF)
# check_function_exists(...)
# cmake_reset_check_state()
# set(CMAKE_REQUIRED_DEFINITIONS -DANOTHER_DEF)
# check_function_exists(...)
# cmake_pop_check_state()

macro(CMAKE_RESET_CHECK_STATE)

set(CMAKE_EXTRA_INCLUDE_FILES)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_DEFINITIONS)
set(CMAKE_REQUIRED_LIBRARIES)
set(CMAKE_REQUIRED_FLAGS)
set(CMAKE_REQUIRED_QUIET)

endmacro()

macro(CMAKE_PUSH_CHECK_STATE)

if(NOT DEFINED _CMAKE_PUSH_CHECK_STATE_COUNTER)
set(_CMAKE_PUSH_CHECK_STATE_COUNTER 0)
endif()

math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}+1")

set(_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_EXTRA_INCLUDE_FILES})
set(_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_INCLUDES})
set(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS})
set(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_LIBRARIES})
set(_CMAKE_REQUIRED_FLAGS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_FLAGS})
set(_CMAKE_REQUIRED_QUIET_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_QUIET})

if (ARGC GREATER 0 AND ARGV0 STREQUAL "RESET")
cmake_reset_check_state()
endif()

endmacro()

macro(CMAKE_POP_CHECK_STATE)

# don't pop more than we pushed
if("${_CMAKE_PUSH_CHECK_STATE_COUNTER}" GREATER "0")

set(CMAKE_EXTRA_INCLUDE_FILES ${_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_FLAGS ${_CMAKE_REQUIRED_FLAGS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_QUIET ${_CMAKE_REQUIRED_QUIET_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})

math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}-1")
endif()

endmacro()
Loading