Back to home page

sPhenix code displayed by LXR

 
 

    


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