|
|
|
@@ -3,58 +3,37 @@ if(APPLE)
|
|
|
|
|
set(OPENCL_LIBRARY "-framework OpenCL" CACHE STRING "OpenCL library")
|
|
|
|
|
set(OPENCL_INCLUDE_DIR "" CACHE STRING "OpenCL include directory")
|
|
|
|
|
mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY)
|
|
|
|
|
set(HAVE_OPENCL_STATIC ON)
|
|
|
|
|
else(APPLE)
|
|
|
|
|
#find_package(OpenCL QUIET)
|
|
|
|
|
|
|
|
|
|
if(NOT OPENCL_FOUND)
|
|
|
|
|
find_path(OPENCL_ROOT_DIR
|
|
|
|
|
NAMES OpenCL/cl.h CL/cl.h include/CL/cl.h include/nvidia-current/CL/cl.h
|
|
|
|
|
PATHS ENV OCLROOT ENV AMDAPPSDKROOT ENV CUDA_PATH ENV INTELOCLSDKROOT
|
|
|
|
|
DOC "OpenCL root directory"
|
|
|
|
|
NO_DEFAULT_PATH)
|
|
|
|
|
|
|
|
|
|
find_path(OPENCL_INCLUDE_DIR
|
|
|
|
|
NAMES OpenCL/cl.h CL/cl.h
|
|
|
|
|
HINTS ${OPENCL_ROOT_DIR}
|
|
|
|
|
PATH_SUFFIXES include include/nvidia-current
|
|
|
|
|
DOC "OpenCL include directory"
|
|
|
|
|
NO_DEFAULT_PATH)
|
|
|
|
|
|
|
|
|
|
set(OPENCL_LIBRARY "OPENCL_DYNAMIC_LOAD")
|
|
|
|
|
|
|
|
|
|
mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY)
|
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENCL DEFAULT_MSG OPENCL_LIBRARY OPENCL_INCLUDE_DIR )
|
|
|
|
|
endif()
|
|
|
|
|
set(OPENCL_FOUND YES)
|
|
|
|
|
set(HAVE_OPENCL_STATIC OFF)
|
|
|
|
|
set(OPENCL_INCLUDE_DIR "${OpenCV_SOURCE_DIR}/3rdparty/include/opencl/1.2")
|
|
|
|
|
endif(APPLE)
|
|
|
|
|
|
|
|
|
|
if(OPENCL_FOUND)
|
|
|
|
|
try_compile(HAVE_OPENCL11
|
|
|
|
|
"${OpenCV_BINARY_DIR}"
|
|
|
|
|
"${OpenCV_SOURCE_DIR}/cmake/checks/opencl11.cpp"
|
|
|
|
|
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${OPENCL_INCLUDE_DIR}"
|
|
|
|
|
)
|
|
|
|
|
if(NOT HAVE_OPENCL11)
|
|
|
|
|
message(STATUS "OpenCL 1.1 not found, ignore OpenCL SDK")
|
|
|
|
|
return()
|
|
|
|
|
endif()
|
|
|
|
|
try_compile(HAVE_OPENCL12
|
|
|
|
|
"${OpenCV_BINARY_DIR}"
|
|
|
|
|
"${OpenCV_SOURCE_DIR}/cmake/checks/opencl12.cpp"
|
|
|
|
|
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${OPENCL_INCLUDE_DIR}"
|
|
|
|
|
)
|
|
|
|
|
if(NOT HAVE_OPENCL12)
|
|
|
|
|
message(STATUS "OpenCL 1.2 not found, will use OpenCL 1.1")
|
|
|
|
|
if(NOT HAVE_OPENCL_STATIC)
|
|
|
|
|
try_compile(__VALID_OPENCL
|
|
|
|
|
"${OpenCV_BINARY_DIR}"
|
|
|
|
|
"${OpenCV_SOURCE_DIR}/cmake/checks/opencl.cpp"
|
|
|
|
|
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${OPENCL_INCLUDE_DIR}"
|
|
|
|
|
OUTPUT_VARIABLE TRY_OUT
|
|
|
|
|
)
|
|
|
|
|
if(NOT TRY_OUT MATCHES "OpenCL is valid")
|
|
|
|
|
message(WARNING "Can't use OpenCL")
|
|
|
|
|
return()
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(HAVE_OPENCL 1)
|
|
|
|
|
set(OPENCL_INCLUDE_DIRS ${OPENCL_INCLUDE_DIR})
|
|
|
|
|
if(OPENCL_LIBRARY MATCHES "OPENCL_DYNAMIC_LOAD")
|
|
|
|
|
unset(OPENCL_LIBRARIES)
|
|
|
|
|
else()
|
|
|
|
|
|
|
|
|
|
if(HAVE_OPENCL_STATIC)
|
|
|
|
|
set(OPENCL_LIBRARIES "${OPENCL_LIBRARY}")
|
|
|
|
|
else()
|
|
|
|
|
unset(OPENCL_LIBRARIES)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(OPENCL_INCLUDE_DIRS ${OPENCL_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
if(WITH_OPENCLAMDFFT)
|
|
|
|
|
find_path(CLAMDFFT_ROOT_DIR
|
|
|
|
|
NAMES include/clAmdFft.h
|
|
|
|
|