FindOpenCL.cmake 2.68 KB
Newer Older
1

2
3
### OPENCL_INCLUDE_DIR ###
# Try OPENCL_DIR variable before looking elsewhere
4
find_path(OPENCL_INCLUDE_DIR
5
    NAMES OpenCL/opencl.h CL/opencl.h
6
    PATHS $ENV{OPENCL_DIR}
7
8
9
    PATH_SUFFIXES "include"
    NO_DEFAULT_PATH
)
10
11
12
13
14
15
16
17
18
# Next look in environment variables set by OpenCL SDK installations
find_path(OPENCL_INCLUDE_DIR
    NAMES OpenCL/opencl.h CL/opencl.h
    PATHS
        $ENV{CUDA_PATH}
        $ENV{AMDAPPSDKROOT}
    PATH_SUFFIXES "include"
    NO_DEFAULT_PATH
)
19
20
21
22
23
24
25
26
27
# On Macs, look inside the platform SDK
if(DEFINED CMAKE_OSX_SYSROOT)
    find_path(OPENCL_INCLUDE_DIR
        NAMES opencl.h opencl.h
        PATHS
            "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/OpenCL.framework/Headers"
        NO_DEFAULT_PATH
    )
endif(DEFINED CMAKE_OSX_SYSROOT)
28
29
# As a last resort, look in default system areas followed by other possible locations
find_path(OPENCL_INCLUDE_DIR
30
    NAMES OpenCL/opencl.h CL/opencl.h
31
32
    PATHS
        "C:/CUDA"
33
        "/usr/local/cuda"
34
        "/usr/local/streamsdk"
35
        "/usr"
36
        "${CUDA_TOOLKIT_ROOT_DIR}"
37
38
39
40
41
    PATH_SUFFIXES "include"
)

### OPENCL_LIBRARY ###
if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
42
    if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
43
      set(path_suffixes "lib/x86_64")
44
45
    else("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
      set(path_suffixes "lib/x86")
46
    endif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
47
48
49
50
51
52
53
54
elseif(MSVC)
    if(CMAKE_CL_64)
      set(path_suffixes "lib/x64" "lib/x86_64")
    else(CMAKE_CL_64)
      set(path_suffixes "lib/Win32" "lib/x86")
    endif(CMAKE_CL_64)
else(MSVC)
    set(path_suffixes "lib")
55
endif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
56
# Try OPENCL_DIR variable before looking elsewhere
57
58
find_library(OPENCL_LIBRARY
    NAMES OpenCL
59
60
61
62
63
64
65
66
67
68
69
70
71
    PATHS
      $ENV{OPENCL_DIR}
      ${OPENCL_LIB_SEARCH_PATH}
    PATH_SUFFIXES ${path_suffixes}
    NO_DEFAULT_PATH
)
# Next look in environment variables set by OpenCL SDK installations
find_library(OPENCL_LIBRARY
    NAMES OpenCL
    PATHS
      $ENV{CUDA_PATH}
      $ENV{AMDAPPSDKROOT}
    PATH_SUFFIXES ${path_suffixes}
72
73
    NO_DEFAULT_PATH
)
74
# As a last resort, look in default system areas followed by other possible locations
75
76
77
78
find_library(OPENCL_LIBRARY
    NAMES OpenCL
    PATHS
        "C:/CUDA"
79
        "/usr/local/cuda"
80
        "/usr/local/streamsdk"
81
        "/usr"
82
83
    PATH_SUFFIXES ${path_suffixes} "lib"
)
84

85
find_package_handle_standard_args(OPENCL DEFAULT_MSG OPENCL_LIBRARY OPENCL_INCLUDE_DIR)
86

87
if(OPENCL_FOUND)
88
  set(OPENCL_LIBRARIES ${OPENCL_LIBRARY})
89
90
91
  mark_as_advanced(CLEAR OPENCL_INCLUDE_DIR)
  mark_as_advanced(CLEAR OPENCL_LIBRARY)
else(OPENCL_FOUND)
92
  set(OPENCL_LIBRARIES)
93
94
95
  mark_as_advanced(OPENCL_INCLUDE_DIR)
  mark_as_advanced(OPENCL_LIBRARY)
endif(OPENCL_FOUND)