Merge pull request #3063 from akarsakov:ocl_warps_check
[profile/ivi/opencv.git] / cmake / OpenCVDetectOpenCL.cmake
1 if(APPLE)
2   set(OPENCL_FOUND YES)
3   set(OPENCL_LIBRARY "-framework OpenCL" CACHE STRING "OpenCL library")
4   set(OPENCL_INCLUDE_DIR "" CACHE STRING "OpenCL include directory")
5   mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY)
6   set(HAVE_OPENCL_STATIC ON)
7 else(APPLE)
8   set(OPENCL_FOUND YES)
9   set(HAVE_OPENCL_STATIC OFF)
10   set(OPENCL_INCLUDE_DIR "${OpenCV_SOURCE_DIR}/3rdparty/include/opencl/1.2")
11 endif(APPLE)
12
13 if(OPENCL_FOUND)
14   if(NOT HAVE_OPENCL_STATIC)
15     try_compile(__VALID_OPENCL
16       "${OpenCV_BINARY_DIR}"
17       "${OpenCV_SOURCE_DIR}/cmake/checks/opencl.cpp"
18       CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${OPENCL_INCLUDE_DIR}"
19       OUTPUT_VARIABLE TRY_OUT
20       )
21     if(NOT TRY_OUT MATCHES "OpenCL is valid")
22       message(WARNING "Can't use OpenCL")
23       return()
24     endif()
25   endif()
26
27   set(HAVE_OPENCL 1)
28
29   if(HAVE_OPENCL_STATIC)
30     set(OPENCL_LIBRARIES "${OPENCL_LIBRARY}")
31   else()
32     unset(OPENCL_LIBRARIES)
33   endif()
34
35   set(OPENCL_INCLUDE_DIRS ${OPENCL_INCLUDE_DIR})
36
37   if(WITH_OPENCLAMDFFT)
38     find_path(CLAMDFFT_ROOT_DIR
39               NAMES include/clAmdFft.h
40               PATHS ENV CLAMDFFT_PATH ENV ProgramFiles
41               PATH_SUFFIXES clAmdFft AMD/clAmdFft
42               DOC "AMD FFT root directory"
43               NO_DEFAULT_PATH)
44
45     find_path(CLAMDFFT_INCLUDE_DIR
46               NAMES clAmdFft.h
47               HINTS ${CLAMDFFT_ROOT_DIR}
48               PATH_SUFFIXES include
49               DOC "clAmdFft include directory")
50
51     if(CLAMDFFT_INCLUDE_DIR)
52       set(HAVE_CLAMDFFT 1)
53       list(APPEND OPENCL_INCLUDE_DIRS "${CLAMDFFT_INCLUDE_DIR}")
54     endif()
55   endif()
56
57   if(WITH_OPENCLAMDBLAS)
58     find_path(CLAMDBLAS_ROOT_DIR
59               NAMES include/clAmdBlas.h
60               PATHS ENV CLAMDBLAS_PATH ENV ProgramFiles
61               PATH_SUFFIXES clAmdBlas AMD/clAmdBlas
62               DOC "AMD FFT root directory"
63               NO_DEFAULT_PATH)
64
65     find_path(CLAMDBLAS_INCLUDE_DIR
66               NAMES clAmdBlas.h
67               HINTS ${CLAMDBLAS_ROOT_DIR}
68               PATH_SUFFIXES include
69               DOC "clAmdFft include directory")
70
71     if(CLAMDBLAS_INCLUDE_DIR)
72       set(HAVE_CLAMDBLAS 1)
73       list(APPEND OPENCL_INCLUDE_DIRS "${CLAMDBLAS_INCLUDE_DIR}")
74     endif()
75   endif()
76 endif()