Skip to content

Commit

Permalink
Merge pull request #1306 from arrayfire/devel
Browse files Browse the repository at this point in the history
Devel --> Master merge: Release 3.3.0
  • Loading branch information
pavanky committed Feb 26, 2016
2 parents 7507b61 + 5a22674 commit 5842ed2
Show file tree
Hide file tree
Showing 401 changed files with 18,451 additions and 10,340 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ GPATH
include/af/version.h
src/backend/version.hpp
docs/details/examples.dox
/TAGS
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "test/gtest"]
path = test/gtest
url = https://chromium.googlesource.com/external/googletest
[submodule "src/backend/cpu/threads"]
path = src/backend/cpu/threads
url = https://github.com/alltheflops/threads.git
39 changes: 20 additions & 19 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
PROJECT(ARRAYFIRE)

SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
Expand All @@ -9,7 +9,6 @@ INCLUDE(AFInstallDirs)

OPTION(BUILD_TEST "Build Tests" ON)
OPTION(BUILD_EXAMPLES "Build Examples" ON)
OPTION(BUILD_GTEST "Download gtest and check for updates. Necessary if you change compilers" ON)

OPTION(BUILD_CPU "Build ArrayFire with a CPU backend" ON)

Expand All @@ -31,9 +30,6 @@ OPTION(BUILD_DOCS "Create ArrayFire Documentation" OFF)
OPTION(WITH_COVERAGE "Added code coverage flags" OFF)

OPTION(BUILD_NONFREE "Build ArrayFire nonfree algorithms" OFF)
OPTION(BUILD_SIFT "Build ArrayFire nonfree algorithms" OFF)

MARK_AS_ADVANCED(BUILD_SIFT)

OPTION(BUILD_UNIFIED "Build Backend-Independent ArrayFire API" ON)

Expand Down Expand Up @@ -91,17 +87,18 @@ IF(BUILD_GRAPHICS)

ENDIF(BUILD_GRAPHICS)

IF(BUILD_NONFREE)
MESSAGE(WARNING "Building With NONFREE ON requires the following patents")
SET(BUILD_SIFT ON)
ENDIF(BUILD_NONFREE)
IF(${BUILD_NONFREE})
MESSAGE(WARNING "Building With NONFREE ON requires the following patents")
SET(BUILD_NONFREE_SIFT ON CACHE BOOL "Build ArrayFire with SIFT")
MARK_AS_ADVANCED(BUILD_NONFREE_SIFT)
ELSE(${BUILD_NONFREE})
UNSET(BUILD_NONFREE_SIFT CACHE) # BUILD_NONFREE_SIFT cannot be built without BUILD_NONFREE
ENDIF(${BUILD_NONFREE})

IF(BUILD_SIFT)
ADD_DEFINITIONS(-DAF_BUILD_SIFT)
IF(${BUILD_NONFREE_SIFT})
ADD_DEFINITIONS(-DAF_BUILD_NONFREE_SIFT)

IF (NOT BUILD_NONFREE)
MESSAGE(WARNING "Building with SIFT requires the following patents")
ENDIF()
MESSAGE(WARNING "Building with SIFT requires the following patents")

MESSAGE("Method and apparatus for identifying scale invariant features"
"in an image and use of same for locating an object in an image,\" David"
Expand All @@ -110,7 +107,7 @@ IF(BUILD_SIFT)
"further details, contact David Lowe (lowe@cs.ubc.ca) or the"
"University-Industry Liaison Office of the University of British"
"Columbia.")
ENDIF(BUILD_SIFT)
ENDIF(${BUILD_NONFREE_SIFT})

INCLUDE_DIRECTORIES(
"${CMAKE_CURRENT_SOURCE_DIR}/include"
Expand Down Expand Up @@ -154,6 +151,10 @@ ELSE(${UNIX}) #Windows
# http://www.kitware.com/blog/home/post/434
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Gm-")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /Gm-")

# Builds that contain debug info require /bigobj
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /bigobj")
ENDIF(MSVC)
ENDIF()

Expand Down Expand Up @@ -223,7 +224,7 @@ ENDIF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE)
SET(INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
SET(BACKEND_DIR "src/backend/\${lowerbackend}")
CONFIGURE_FILE(
${CMAKE_CURRENT_SOURCE_DIR}/ArrayFireConfig.cmake.in
${CMAKE_MODULE_PATH}/ArrayFireConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/ArrayFireConfig.cmake
@ONLY)

Expand All @@ -233,11 +234,11 @@ STRING(REGEX REPLACE "[^/]+" ".." reldir "${AF_INSTALL_CMAKE_DIR}")
SET(INCLUDE_DIR "\${CMAKE_CURRENT_LIST_DIR}/${reldir}/include")
set(BACKEND_DIR)
CONFIGURE_FILE(
${CMAKE_CURRENT_SOURCE_DIR}/ArrayFireConfig.cmake.in
${CMAKE_MODULE_PATH}/ArrayFireConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/Install/ArrayFireConfig.cmake
@ONLY)
CONFIGURE_FILE(
${CMAKE_CURRENT_SOURCE_DIR}/ArrayFireConfigVersion.cmake.in
${CMAKE_MODULE_PATH}/ArrayFireConfigVersion.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/ArrayFireConfigVersion.cmake
@ONLY)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/Install/ArrayFireConfig.cmake
Expand Down Expand Up @@ -265,4 +266,4 @@ ENDIF(APPLE)
##
# Packaging
##
include(${CMAKE_CURRENT_SOURCE_DIR}/CPack.cmake)
include(${CMAKE_MODULE_PATH}/CPackConfig.cmake)
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion CPack.cmake → CMakeModules/CPackConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

include("${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/Version.cmake")
INCLUDE("${CMAKE_MODULE_PATH}/Version.cmake")

# CPack package generation
#SET(CPACK_GENERATOR "TGZ;STGZ")
Expand Down
72 changes: 59 additions & 13 deletions CMakeModules/FindCBLAS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,48 @@ SET(CBLAS_ROOT_DIR CACHE STRING
INCLUDE(CheckTypeSize)
CHECK_TYPE_SIZE("void*" SIZE_OF_VOIDP)

SET(CBLAS_LIB_DIR)
IF (NOT INTEL_MKL_ROOT_DIR)
SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
ENDIF()

SET(CBLAS_ROOT_DIR "${INTEL_MKL_ROOT_DIR}")
IF(NOT CBLAS_ROOT_DIR)

IF(CBLAS_ROOT_DIR)
IF(INTEL_MKL_ROOT_DIR)
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
SET(CBLAS_LIB_DIR "${INTEL_MKL_ROOT_DIR}/lib/intel64")
ELSE()
SET(CBLAS_LIB_DIR "${INTEL_MKL_ROOT_DIR}/lib/ia32")
ENDIF()
IF (ENV{CBLASDIR})
SET(CBLAS_ROOT_DIR $ENV{CBLASDIR})
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib64")
ELSE()
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
ENDIF()
ENDIF()

IF (ENV{CBLAS_ROOT_DIR})
SET(CBLAS_ROOT_DIR $ENV{CBLAS_ROOT_DIR})
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib64")
ELSE()
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
ENDIF()
SET(CBLAS_INCLUDE_DIR "${INTEL_MKL_ROOT_DIR}/include")
ENDIF()

IF (INTEL_MKL_ROOT_DIR)
SET(CBLAS_ROOT_DIR ${INTEL_MKL_ROOT_DIR})
IF(APPLE)
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib")
ELSE()
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
ENDIF()
ELSE(APPLE) # Windows and Linux
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib/intel64")
ELSE()
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib/ia32")
ENDIF()
ENDIF(APPLE)
ENDIF()

SET(CBLAS_INCLUDE_DIR "${CBLAS_ROOT_DIR}/include")
ENDIF()

# Old CBLAS search
Expand Down Expand Up @@ -116,14 +145,14 @@ MACRO(CHECK_ALL_LIBRARIES
NAMES ${_library}
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
ENV DYLD_LIBRARY_PATH
"{CBLAS_LIB_DIR}"
"${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
)
ELSE(APPLE)
FIND_LIBRARY(${_prefix}_${_library}_LIBRARY
NAMES ${_library}
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
ENV LD_LIBRARY_PATH
"${CBLAS_LIB_DIR}"
"${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
PATH_SUFFIXES atlas
)
IF(NOT ${_prefix}_${library}_LIBRARY)
Expand All @@ -132,7 +161,7 @@ MACRO(CHECK_ALL_LIBRARIES
NAMES ${_library}
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
ENV LD_LIBRARY_PATH
"${CBLAS_LIB_DIR}"
"${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
PATH_SUFFIXES atlas
)
ENDIF(NOT ${_prefix}_${library}_LIBRARY)
Expand Down Expand Up @@ -194,6 +223,23 @@ MACRO(CHECK_ALL_LIBRARIES
ENDIF(NOT _libraries_work)
ENDMACRO(CHECK_ALL_LIBRARIES)

# MKL CBLAS library?
IF(NOT CBLAS_LIBRARIES)
CHECK_ALL_LIBRARIES(
CBLAS_LIBRARIES
CBLAS
cblas_dgemm
""
"mkl_rt"
"mkl_cblas.h"
FALSE,
TRUE)
ENDIF(NOT CBLAS_LIBRARIES)

IF(CBLAS_LIBRARIES)
SET(MKL_FOUND ON)
ENDIF()

# Apple CBLAS library?
IF(NOT CBLAS_LIBRARIES)
CHECK_ALL_LIBRARIES(
Expand Down
29 changes: 24 additions & 5 deletions CMakeModules/FindFFTW.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,25 @@ IF(NOT FFTW_ROOT AND ENV{FFTWDIR})
SET(FFTW_ROOT $ENV{FFTWDIR})
ENDIF()

IF (NOT INTEL_MKL_ROOT_DIR)
SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
ENDIF()

IF(NOT FFTW_ROOT)

IF (ENV{FFTWDIR})
SET(FFTW_ROOT $ENV{FFTWDIR})
ENDIF()

IF (ENV{FFTW_ROOT_DIR})
SET(FFTW_ROOT $ENV{FFTW_ROOT_DIR})
ENDIF()

IF (INTEL_MKL_ROOT_DIR)
SET(FFTW_ROOT ${INTEL_MKL_ROOT_DIR})
ENDIF()
ENDIF()

# Check if we can use PkgConfig
FIND_PACKAGE(PkgConfig)

Expand All @@ -44,14 +63,14 @@ IF(FFTW_ROOT)
#find libs
FIND_LIBRARY(
FFTW_LIB
NAMES "fftw3" "libfftw3-3" "fftw3-3"
NAMES "fftw3" "libfftw3-3" "fftw3-3" "mkl_rt"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
)
FIND_LIBRARY(
FFTWF_LIB
NAMES "fftw3f" "libfftw3f-3" "fftw3f-3"
NAMES "fftw3f" "libfftw3f-3" "fftw3f-3" "mkl_rt"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
Expand All @@ -62,18 +81,18 @@ IF(FFTW_ROOT)
FFTW_INCLUDES
NAMES "fftw3.h"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "include"
PATH_SUFFIXES "include" "include/fftw"
NO_DEFAULT_PATH
)
ELSE()
FIND_LIBRARY(
FFTW_LIB
NAMES "fftw3"
NAMES "fftw3" "mkl_rt"
PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
)
FIND_LIBRARY(
FFTWF_LIB
NAMES "fftw3f"
NAMES "fftw3f" "mkl_rt"
PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
)
FIND_PATH(
Expand Down
2 changes: 0 additions & 2 deletions CMakeModules/FindGLEWmx.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ ELSE (WIN32)
/sw/lib
/opt/local/lib
${GLEW_ROOT_DIR}/lib
NO_DEFAULT_PATH
DOC "The GLEWmx library")

SET(PX ${CMAKE_STATIC_LIBRARY_PREFIX})
Expand All @@ -72,7 +71,6 @@ ELSE (WIN32)
/sw/lib
/opt/local/lib
${GLEW_ROOT_DIR}/lib
NO_DEFAULT_PATH
DOC "The GLEWmx library")
UNSET(PX)
UNSET(SX)
Expand Down

0 comments on commit 5842ed2

Please sign in to comment.