Skip to content

Commit 5842ed2

Browse files
committed
Merge pull request #1306 from arrayfire/devel
Devel --> Master merge: Release 3.3.0
2 parents 7507b61 + 5a22674 commit 5842ed2

File tree

401 files changed

+18451
-10340
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

401 files changed

+18451
-10340
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ GPATH
1111
include/af/version.h
1212
src/backend/version.hpp
1313
docs/details/examples.dox
14+
/TAGS

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
[submodule "test/gtest"]
88
path = test/gtest
99
url = https://chromium.googlesource.com/external/googletest
10+
[submodule "src/backend/cpu/threads"]
11+
path = src/backend/cpu/threads
12+
url = https://github.com/alltheflops/threads.git

CMakeLists.txt

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
1+
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
22
PROJECT(ARRAYFIRE)
33

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

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

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

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

3332
OPTION(BUILD_NONFREE "Build ArrayFire nonfree algorithms" OFF)
34-
OPTION(BUILD_SIFT "Build ArrayFire nonfree algorithms" OFF)
35-
36-
MARK_AS_ADVANCED(BUILD_SIFT)
3733

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

@@ -91,17 +87,18 @@ IF(BUILD_GRAPHICS)
9187

9288
ENDIF(BUILD_GRAPHICS)
9389

94-
IF(BUILD_NONFREE)
95-
MESSAGE(WARNING "Building With NONFREE ON requires the following patents")
96-
SET(BUILD_SIFT ON)
97-
ENDIF(BUILD_NONFREE)
90+
IF(${BUILD_NONFREE})
91+
MESSAGE(WARNING "Building With NONFREE ON requires the following patents")
92+
SET(BUILD_NONFREE_SIFT ON CACHE BOOL "Build ArrayFire with SIFT")
93+
MARK_AS_ADVANCED(BUILD_NONFREE_SIFT)
94+
ELSE(${BUILD_NONFREE})
95+
UNSET(BUILD_NONFREE_SIFT CACHE) # BUILD_NONFREE_SIFT cannot be built without BUILD_NONFREE
96+
ENDIF(${BUILD_NONFREE})
9897

99-
IF(BUILD_SIFT)
100-
ADD_DEFINITIONS(-DAF_BUILD_SIFT)
98+
IF(${BUILD_NONFREE_SIFT})
99+
ADD_DEFINITIONS(-DAF_BUILD_NONFREE_SIFT)
101100

102-
IF (NOT BUILD_NONFREE)
103-
MESSAGE(WARNING "Building with SIFT requires the following patents")
104-
ENDIF()
101+
MESSAGE(WARNING "Building with SIFT requires the following patents")
105102

106103
MESSAGE("Method and apparatus for identifying scale invariant features"
107104
"in an image and use of same for locating an object in an image,\" David"
@@ -110,7 +107,7 @@ IF(BUILD_SIFT)
110107
"further details, contact David Lowe ([email protected]) or the"
111108
"University-Industry Liaison Office of the University of British"
112109
"Columbia.")
113-
ENDIF(BUILD_SIFT)
110+
ENDIF(${BUILD_NONFREE_SIFT})
114111

115112
INCLUDE_DIRECTORIES(
116113
"${CMAKE_CURRENT_SOURCE_DIR}/include"
@@ -154,6 +151,10 @@ ELSE(${UNIX}) #Windows
154151
# http://www.kitware.com/blog/home/post/434
155152
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Gm-")
156153
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /Gm-")
154+
155+
# Builds that contain debug info require /bigobj
156+
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
157+
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /bigobj")
157158
ENDIF(MSVC)
158159
ENDIF()
159160

@@ -223,7 +224,7 @@ ENDIF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE)
223224
SET(INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
224225
SET(BACKEND_DIR "src/backend/\${lowerbackend}")
225226
CONFIGURE_FILE(
226-
${CMAKE_CURRENT_SOURCE_DIR}/ArrayFireConfig.cmake.in
227+
${CMAKE_MODULE_PATH}/ArrayFireConfig.cmake.in
227228
${CMAKE_CURRENT_BINARY_DIR}/ArrayFireConfig.cmake
228229
@ONLY)
229230

@@ -233,11 +234,11 @@ STRING(REGEX REPLACE "[^/]+" ".." reldir "${AF_INSTALL_CMAKE_DIR}")
233234
SET(INCLUDE_DIR "\${CMAKE_CURRENT_LIST_DIR}/${reldir}/include")
234235
set(BACKEND_DIR)
235236
CONFIGURE_FILE(
236-
${CMAKE_CURRENT_SOURCE_DIR}/ArrayFireConfig.cmake.in
237+
${CMAKE_MODULE_PATH}/ArrayFireConfig.cmake.in
237238
${CMAKE_CURRENT_BINARY_DIR}/Install/ArrayFireConfig.cmake
238239
@ONLY)
239240
CONFIGURE_FILE(
240-
${CMAKE_CURRENT_SOURCE_DIR}/ArrayFireConfigVersion.cmake.in
241+
${CMAKE_MODULE_PATH}/ArrayFireConfigVersion.cmake.in
241242
${CMAKE_CURRENT_BINARY_DIR}/ArrayFireConfigVersion.cmake
242243
@ONLY)
243244
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/Install/ArrayFireConfig.cmake
@@ -265,4 +266,4 @@ ENDIF(APPLE)
265266
##
266267
# Packaging
267268
##
268-
include(${CMAKE_CURRENT_SOURCE_DIR}/CPack.cmake)
269+
include(${CMAKE_MODULE_PATH}/CPackConfig.cmake)
File renamed without changes.

CPack.cmake renamed to CMakeModules/CPackConfig.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
22

3-
include("${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/Version.cmake")
3+
INCLUDE("${CMAKE_MODULE_PATH}/Version.cmake")
44

55
# CPack package generation
66
#SET(CPACK_GENERATOR "TGZ;STGZ")

CMakeModules/FindCBLAS.cmake

Lines changed: 59 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,48 @@ SET(CBLAS_ROOT_DIR CACHE STRING
5353
INCLUDE(CheckTypeSize)
5454
CHECK_TYPE_SIZE("void*" SIZE_OF_VOIDP)
5555

56-
SET(CBLAS_LIB_DIR)
56+
IF (NOT INTEL_MKL_ROOT_DIR)
57+
SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
58+
ENDIF()
5759

58-
SET(CBLAS_ROOT_DIR "${INTEL_MKL_ROOT_DIR}")
60+
IF(NOT CBLAS_ROOT_DIR)
5961

60-
IF(CBLAS_ROOT_DIR)
61-
IF(INTEL_MKL_ROOT_DIR)
62-
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
63-
SET(CBLAS_LIB_DIR "${INTEL_MKL_ROOT_DIR}/lib/intel64")
64-
ELSE()
65-
SET(CBLAS_LIB_DIR "${INTEL_MKL_ROOT_DIR}/lib/ia32")
66-
ENDIF()
62+
IF (ENV{CBLASDIR})
63+
SET(CBLAS_ROOT_DIR $ENV{CBLASDIR})
64+
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
65+
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib64")
66+
ELSE()
67+
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
68+
ENDIF()
69+
ENDIF()
70+
71+
IF (ENV{CBLAS_ROOT_DIR})
72+
SET(CBLAS_ROOT_DIR $ENV{CBLAS_ROOT_DIR})
73+
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
74+
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib64")
75+
ELSE()
76+
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
6777
ENDIF()
68-
SET(CBLAS_INCLUDE_DIR "${INTEL_MKL_ROOT_DIR}/include")
78+
ENDIF()
79+
80+
IF (INTEL_MKL_ROOT_DIR)
81+
SET(CBLAS_ROOT_DIR ${INTEL_MKL_ROOT_DIR})
82+
IF(APPLE)
83+
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
84+
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib")
85+
ELSE()
86+
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
87+
ENDIF()
88+
ELSE(APPLE) # Windows and Linux
89+
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
90+
SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib/intel64")
91+
ELSE()
92+
SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib/ia32")
93+
ENDIF()
94+
ENDIF(APPLE)
95+
ENDIF()
96+
97+
SET(CBLAS_INCLUDE_DIR "${CBLAS_ROOT_DIR}/include")
6998
ENDIF()
7099

71100
# Old CBLAS search
@@ -116,14 +145,14 @@ MACRO(CHECK_ALL_LIBRARIES
116145
NAMES ${_library}
117146
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
118147
ENV DYLD_LIBRARY_PATH
119-
"{CBLAS_LIB_DIR}"
148+
"${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
120149
)
121150
ELSE(APPLE)
122151
FIND_LIBRARY(${_prefix}_${_library}_LIBRARY
123152
NAMES ${_library}
124153
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
125154
ENV LD_LIBRARY_PATH
126-
"${CBLAS_LIB_DIR}"
155+
"${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
127156
PATH_SUFFIXES atlas
128157
)
129158
IF(NOT ${_prefix}_${library}_LIBRARY)
@@ -132,7 +161,7 @@ MACRO(CHECK_ALL_LIBRARIES
132161
NAMES ${_library}
133162
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
134163
ENV LD_LIBRARY_PATH
135-
"${CBLAS_LIB_DIR}"
164+
"${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
136165
PATH_SUFFIXES atlas
137166
)
138167
ENDIF(NOT ${_prefix}_${library}_LIBRARY)
@@ -194,6 +223,23 @@ MACRO(CHECK_ALL_LIBRARIES
194223
ENDIF(NOT _libraries_work)
195224
ENDMACRO(CHECK_ALL_LIBRARIES)
196225

226+
# MKL CBLAS library?
227+
IF(NOT CBLAS_LIBRARIES)
228+
CHECK_ALL_LIBRARIES(
229+
CBLAS_LIBRARIES
230+
CBLAS
231+
cblas_dgemm
232+
""
233+
"mkl_rt"
234+
"mkl_cblas.h"
235+
FALSE,
236+
TRUE)
237+
ENDIF(NOT CBLAS_LIBRARIES)
238+
239+
IF(CBLAS_LIBRARIES)
240+
SET(MKL_FOUND ON)
241+
ENDIF()
242+
197243
# Apple CBLAS library?
198244
IF(NOT CBLAS_LIBRARIES)
199245
CHECK_ALL_LIBRARIES(

CMakeModules/FindFFTW.cmake

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,25 @@ IF(NOT FFTW_ROOT AND ENV{FFTWDIR})
2424
SET(FFTW_ROOT $ENV{FFTWDIR})
2525
ENDIF()
2626

27+
IF (NOT INTEL_MKL_ROOT_DIR)
28+
SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
29+
ENDIF()
30+
31+
IF(NOT FFTW_ROOT)
32+
33+
IF (ENV{FFTWDIR})
34+
SET(FFTW_ROOT $ENV{FFTWDIR})
35+
ENDIF()
36+
37+
IF (ENV{FFTW_ROOT_DIR})
38+
SET(FFTW_ROOT $ENV{FFTW_ROOT_DIR})
39+
ENDIF()
40+
41+
IF (INTEL_MKL_ROOT_DIR)
42+
SET(FFTW_ROOT ${INTEL_MKL_ROOT_DIR})
43+
ENDIF()
44+
ENDIF()
45+
2746
# Check if we can use PkgConfig
2847
FIND_PACKAGE(PkgConfig)
2948

@@ -44,14 +63,14 @@ IF(FFTW_ROOT)
4463
#find libs
4564
FIND_LIBRARY(
4665
FFTW_LIB
47-
NAMES "fftw3" "libfftw3-3" "fftw3-3"
66+
NAMES "fftw3" "libfftw3-3" "fftw3-3" "mkl_rt"
4867
PATHS ${FFTW_ROOT}
4968
PATH_SUFFIXES "lib" "lib64"
5069
NO_DEFAULT_PATH
5170
)
5271
FIND_LIBRARY(
5372
FFTWF_LIB
54-
NAMES "fftw3f" "libfftw3f-3" "fftw3f-3"
73+
NAMES "fftw3f" "libfftw3f-3" "fftw3f-3" "mkl_rt"
5574
PATHS ${FFTW_ROOT}
5675
PATH_SUFFIXES "lib" "lib64"
5776
NO_DEFAULT_PATH
@@ -62,18 +81,18 @@ IF(FFTW_ROOT)
6281
FFTW_INCLUDES
6382
NAMES "fftw3.h"
6483
PATHS ${FFTW_ROOT}
65-
PATH_SUFFIXES "include"
84+
PATH_SUFFIXES "include" "include/fftw"
6685
NO_DEFAULT_PATH
6786
)
6887
ELSE()
6988
FIND_LIBRARY(
7089
FFTW_LIB
71-
NAMES "fftw3"
90+
NAMES "fftw3" "mkl_rt"
7291
PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
7392
)
7493
FIND_LIBRARY(
7594
FFTWF_LIB
76-
NAMES "fftw3f"
95+
NAMES "fftw3f" "mkl_rt"
7796
PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
7897
)
7998
FIND_PATH(

CMakeModules/FindGLEWmx.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ ELSE (WIN32)
5555
/sw/lib
5656
/opt/local/lib
5757
${GLEW_ROOT_DIR}/lib
58-
NO_DEFAULT_PATH
5958
DOC "The GLEWmx library")
6059

6160
SET(PX ${CMAKE_STATIC_LIBRARY_PREFIX})
@@ -72,7 +71,6 @@ ELSE (WIN32)
7271
/sw/lib
7372
/opt/local/lib
7473
${GLEW_ROOT_DIR}/lib
75-
NO_DEFAULT_PATH
7674
DOC "The GLEWmx library")
7775
UNSET(PX)
7876
UNSET(SX)

0 commit comments

Comments
 (0)