Warning, /JETSCAPE/cmakemodules/FindOpenCL.cmake is written in an unsupported language. File is not indexed.
0001 # - Try to find OpenCL
0002 # This module tries to find an OpenCL implementation on your system. It supports
0003 # AMD / ATI, Apple and NVIDIA implementations, but should work, too.
0004 #
0005 # To set manually the paths, define these environment variables:
0006 # OpenCL_INCPATH - Include path (e.g. OpenCL_INCPATH=/opt/cuda/4.0/cuda/include)
0007 # OpenCL_LIBPATH - Library path (e.h. OpenCL_LIBPATH=/usr/lib64/nvidia)
0008 #
0009 # Once done this will define
0010 # OPENCL_FOUND - system has OpenCL
0011 # OPENCL_INCLUDE_DIRS - the OpenCL include directory
0012 # OPENCL_LIBRARIES - link these to use OpenCL
0013 #
0014 # WIN32 should work, but is untested
0015
0016 FIND_PACKAGE(PackageHandleStandardArgs)
0017
0018 SET (OPENCL_VERSION_STRING "0.1.0")
0019 SET (OPENCL_VERSION_MAJOR 0)
0020 SET (OPENCL_VERSION_MINOR 1)
0021 SET (OPENCL_VERSION_PATCH 0)
0022
0023 IF (APPLE)
0024
0025 FIND_LIBRARY(OPENCL_LIBRARIES OpenCL DOC "OpenCL lib for OSX")
0026 FIND_PATH(OPENCL_INCLUDE_DIRS OpenCL/cl.h DOC "Include for OpenCL on OSX")
0027 FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS OpenCL/cl.hpp DOC "Include for OpenCL CPP bindings on OSX")
0028
0029 ELSE (APPLE)
0030
0031 IF (WIN32)
0032
0033 FIND_PATH(OPENCL_INCLUDE_DIRS CL/cl.h)
0034 FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS CL/cl.hpp)
0035
0036 # The AMD SDK currently installs both x86 and x86_64 libraries
0037 # This is only a hack to find out architecture
0038 IF( ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64" )
0039 SET(OPENCL_LIB_DIR "$ENV{ATISTREAMSDKROOT}/lib/x86_64")
0040 ELSE (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64")
0041 SET(OPENCL_LIB_DIR "$ENV{ATISTREAMSDKROOT}/lib/x86")
0042 ENDIF( ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64" )
0043 FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib PATHS ${OPENCL_LIB_DIR} ENV OpenCL_LIBPATH)
0044
0045 GET_FILENAME_COMPONENT(_OPENCL_INC_CAND ${OPENCL_LIB_DIR}/../../include ABSOLUTE)
0046
0047 # On Win32 search relative to the library
0048 FIND_PATH(OPENCL_INCLUDE_DIRS CL/cl.h PATHS "${_OPENCL_INC_CAND}" ENV OpenCL_INCPATH)
0049 FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS CL/cl.hpp PATHS "${_OPENCL_INC_CAND}" ENV OpenCL_INCPATH)
0050
0051 ELSE (WIN32)
0052
0053 # Unix style platforms
0054 FIND_LIBRARY(OPENCL_LIBRARIES OpenCL
0055 PATHS ENV LD_LIBRARY_PATH ENV OpenCL_LIBPATH
0056 )
0057
0058 GET_FILENAME_COMPONENT(OPENCL_LIB_DIR ${OPENCL_LIBRARIES} PATH)
0059 GET_FILENAME_COMPONENT(_OPENCL_INC_CAND ${OPENCL_LIB_DIR}/../../include ABSOLUTE)
0060
0061 # The AMD SDK currently does not place its headers
0062 # in /usr/include, therefore also search relative
0063 # to the library
0064 FIND_PATH(OPENCL_INCLUDE_DIRS CL/cl.h PATHS ${_OPENCL_INC_CAND} "/usr/local/cuda/include" "/opt/AMDAPP/include" ENV OpenCL_INCPATH)
0065 FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS CL/cl.hpp PATHS ${_OPENCL_INC_CAND} "/usr/local/cuda/include" "/opt/AMDAPP/include" ENV OpenCL_INCPATH)
0066
0067 ENDIF (WIN32)
0068
0069 ENDIF (APPLE)
0070
0071 FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenCL DEFAULT_MSG OPENCL_LIBRARIES OPENCL_INCLUDE_DIRS)
0072
0073 IF(_OPENCL_CPP_INCLUDE_DIRS)
0074 SET( OPENCL_HAS_CPP_BINDINGS TRUE )
0075 LIST( APPEND OPENCL_INCLUDE_DIRS ${_OPENCL_CPP_INCLUDE_DIRS} )
0076 # This is often the same, so clean up
0077 LIST( REMOVE_DUPLICATES OPENCL_INCLUDE_DIRS )
0078 ENDIF(_OPENCL_CPP_INCLUDE_DIRS)
0079
0080 MARK_AS_ADVANCED(
0081 OPENCL_INCLUDE_DIRS
0082 )
0083