parent
2afad8b575
commit
d28df08eb0
3 changed files with 92 additions and 173 deletions
@ -1,154 +1,104 @@ |
|||||||
if(APPLE) |
if(APPLE) |
||||||
set(OPENCL_FOUND YES) |
set(OPENCL_FOUND YES) |
||||||
set(OPENCL_LIBRARIES "-framework OpenCL") |
set(OPENCL_LIBRARY "-framework OpenCL" CACHE STRING "OpenCL library") |
||||||
else() |
set(OPENCL_INCLUDE_DIR "" CACHE STRING "OpenCL include directory") |
||||||
|
mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY) |
||||||
|
else(APPLE) |
||||||
find_package(OpenCL QUIET) |
find_package(OpenCL QUIET) |
||||||
if(WITH_OPENCLAMDFFT) |
|
||||||
set(CLAMDFFT_SEARCH_PATH $ENV{CLAMDFFT_PATH}) |
if (NOT OPENCL_FOUND) |
||||||
if(NOT CLAMDFFT_SEARCH_PATH) |
find_path(OPENCL_ROOT_DIR |
||||||
if(WIN32) |
NAMES OpenCL/cl.h CL/cl.h include/CL/cl.h include/nvidia-current/CL/cl.h |
||||||
set( CLAMDFFT_SEARCH_PATH "C:\\Program Files (x86)\\AMD\\clAmdFft" ) |
PATHS ENV OCLROOT ENV AMDAPPSDKROOT ENV CUDA_PATH ENV INTELOCLSDKROOT |
||||||
endif() |
DOC "OpenCL root directory" |
||||||
endif() |
NO_DEFAULT_PATH) |
||||||
set( CLAMDFFT_INCLUDE_SEARCH_PATH ${CLAMDFFT_SEARCH_PATH}/include ) |
|
||||||
if(UNIX) |
find_path(OPENCL_INCLUDE_DIR |
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
NAMES OpenCL/cl.h CL/cl.h |
||||||
set(CLAMDFFT_LIB_SEARCH_PATH /usr/lib) |
HINTS ${OPENCL_ROOT_DIR} |
||||||
else() |
PATH_SUFFIXES include include/nvidia-current |
||||||
set(CLAMDFFT_LIB_SEARCH_PATH /usr/lib64) |
DOC "OpenCL include directory") |
||||||
endif() |
|
||||||
else() |
if (X86_64) |
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
set(OPENCL_POSSIBLE_LIB_SUFFIXES lib/Win64 lib/x86_64 lib/x64) |
||||||
set(CLAMDFFT_LIB_SEARCH_PATH ${CLAMDFFT_SEARCH_PATH}\\lib32\\import) |
elseif (X86) |
||||||
else() |
set(OPENCL_POSSIBLE_LIB_SUFFIXES lib/Win32 lib/x86) |
||||||
set(CLAMDFFT_LIB_SEARCH_PATH ${CLAMDFFT_SEARCH_PATH}\\lib64\\import) |
|
||||||
endif() |
|
||||||
endif() |
endif() |
||||||
|
|
||||||
|
find_library(OPENCL_LIBRARY |
||||||
|
NAMES OpenCL |
||||||
|
HINTS ${OPENCL_ROOT_DIR} |
||||||
|
PATH_SUFFIXES ${OPENCL_POSSIBLE_LIB_SUFFIXES} |
||||||
|
DOC "OpenCL library") |
||||||
|
|
||||||
|
mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY) |
||||||
|
include(FindPackageHandleStandardArgs) |
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENCL DEFAULT_MSG OPENCL_LIBRARY OPENCL_INCLUDE_DIR ) |
||||||
|
endif() |
||||||
|
endif(APPLE) |
||||||
|
|
||||||
|
if(OPENCL_FOUND) |
||||||
|
set(HAVE_OPENCL 1) |
||||||
|
set(OPENCL_INCLUDE_DIRS ${OPENCL_INCLUDE_DIR}) |
||||||
|
set(OPENCL_LIBRARIES ${OPENCL_LIBRARY}) |
||||||
|
|
||||||
|
if (X86_64) |
||||||
|
set(CLAMD_POSSIBLE_LIB_SUFFIXES lib32/import) |
||||||
|
elseif (X86) |
||||||
|
set(CLAMD_POSSIBLE_LIB_SUFFIXES lib32/import) |
||||||
|
endif() |
||||||
|
|
||||||
|
if(WITH_OPENCLAMDFFT) |
||||||
|
find_path(CLAMDFFT_ROOT_DIR |
||||||
|
NAMES include/clAmdFft.h |
||||||
|
PATHS ENV CLAMDFFT_PATH ENV ProgramFiles |
||||||
|
PATH_SUFFIXES clAmdFft AMD/clAmdFft |
||||||
|
DOC "AMD FFT root directory" |
||||||
|
NO_DEFAULT_PATH) |
||||||
|
|
||||||
find_path(CLAMDFFT_INCLUDE_DIR |
find_path(CLAMDFFT_INCLUDE_DIR |
||||||
NAMES clAmdFft.h |
NAMES clAmdFft.h |
||||||
PATHS ${CLAMDFFT_INCLUDE_SEARCH_PATH} |
HINTS ${CLAMDFFT_ROOT_DIR} |
||||||
PATH_SUFFIXES clAmdFft |
PATH_SUFFIXES include |
||||||
NO_DEFAULT_PATH) |
DOC "clAmdFft include directory") |
||||||
|
|
||||||
find_library(CLAMDFFT_LIBRARY |
find_library(CLAMDFFT_LIBRARY |
||||||
NAMES clAmdFft.Runtime |
NAMES clAmdFft.Runtime |
||||||
PATHS ${CLAMDFFT_LIB_SEARCH_PATH} |
HINTS ${CLAMDFFT_ROOT_DIR} |
||||||
NO_DEFAULT_PATH) |
PATH_SUFFIXES ${CLAMD_POSSIBLE_LIB_SUFFIXES} |
||||||
if(CLAMDFFT_LIBRARY) |
DOC "clAmdFft library") |
||||||
set(CLAMDFFT_LIBRARIES ${CLAMDFFT_LIBRARY}) |
|
||||||
else() |
if(CLAMDFFT_LIBRARY AND CLAMDFFT_INCLUDE_DIR) |
||||||
set(CLAMDFFT_LIBRARIES "") |
set(HAVE_CLAMDFFT 1) |
||||||
endif() |
list(APPEND OPENCL_INCLUDE_DIRS "${CLAMDFFT_INCLUDE_DIR}") |
||||||
endif() |
list(APPEND OPENCL_LIBRARIES "${CLAMDFFT_LIBRARY}") |
||||||
if(WITH_OPENCLAMDBLAS) |
|
||||||
set(CLAMDBLAS_SEARCH_PATH $ENV{CLAMDBLAS_PATH}) |
|
||||||
if(NOT CLAMDBLAS_SEARCH_PATH) |
|
||||||
if(WIN32) |
|
||||||
set( CLAMDBLAS_SEARCH_PATH "C:\\Program Files (x86)\\AMD\\clAmdBlas" ) |
|
||||||
endif() |
|
||||||
endif() |
|
||||||
set( CLAMDBLAS_INCLUDE_SEARCH_PATH ${CLAMDBLAS_SEARCH_PATH}/include ) |
|
||||||
if(UNIX) |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(CLAMDBLAS_LIB_SEARCH_PATH /usr/lib) |
|
||||||
else() |
|
||||||
set(CLAMDBLAS_LIB_SEARCH_PATH /usr/lib64) |
|
||||||
endif() |
|
||||||
else() |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(CLAMDBLAS_LIB_SEARCH_PATH ${CLAMDBLAS_SEARCH_PATH}\\lib32\\import) |
|
||||||
else() |
|
||||||
set(CLAMDBLAS_LIB_SEARCH_PATH ${CLAMDBLAS_SEARCH_PATH}\\lib64\\import) |
|
||||||
endif() |
|
||||||
endif() |
|
||||||
find_path(CLAMDBLAS_INCLUDE_DIR |
|
||||||
NAMES clAmdBlas.h |
|
||||||
PATHS ${CLAMDBLAS_INCLUDE_SEARCH_PATH} |
|
||||||
PATH_SUFFIXES clAmdBlas |
|
||||||
NO_DEFAULT_PATH) |
|
||||||
find_library(CLAMDBLAS_LIBRARY |
|
||||||
NAMES clAmdBlas |
|
||||||
PATHS ${CLAMDBLAS_LIB_SEARCH_PATH} |
|
||||||
NO_DEFAULT_PATH) |
|
||||||
if(CLAMDBLAS_LIBRARY) |
|
||||||
set(CLAMDBLAS_LIBRARIES ${CLAMDBLAS_LIBRARY}) |
|
||||||
else() |
|
||||||
set(CLAMDBLAS_LIBRARIES "") |
|
||||||
endif() |
endif() |
||||||
endif() |
endif() |
||||||
# Try AMD/ATI Stream SDK |
|
||||||
if (NOT OPENCL_FOUND) |
|
||||||
set(ENV_AMDSTREAMSDKROOT $ENV{AMDAPPSDKROOT}) |
|
||||||
set(ENV_AMDAPPSDKROOT $ENV{AMDAPPSDKROOT}) |
|
||||||
set(ENV_OPENCLROOT $ENV{OPENCLROOT}) |
|
||||||
set(ENV_CUDA_PATH $ENV{CUDA_PATH}) |
|
||||||
set(ENV_INTELOCLSDKROOT $ENV{INTELOCLSDKROOT}) |
|
||||||
if(ENV_AMDSTREAMSDKROOT) |
|
||||||
set(OPENCL_INCLUDE_SEARCH_PATH ${ENV_AMDAPPSDKROOT}/include) |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_AMDAPPSDKROOT}/lib/x86) |
|
||||||
else() |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_AMDAPPSDKROOT}/lib/x86_64) |
|
||||||
endif() |
|
||||||
elseif(ENV_AMDSTREAMSDKROOT) |
|
||||||
set(OPENCL_INCLUDE_SEARCH_PATH ${ENV_AMDSTREAMSDKROOT}/include) |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_AMDSTREAMSDKROOT}/lib/x86) |
|
||||||
else() |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_AMDSTREAMSDKROOT}/lib/x86_64) |
|
||||||
endif() |
|
||||||
elseif(ENV_CUDA_PATH AND WIN32) |
|
||||||
set(OPENCL_INCLUDE_SEARCH_PATH ${ENV_CUDA_PATH}/include) |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_CUDA_PATH}/lib/Win32) |
|
||||||
else() |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_CUDA_PATH}/lib/x64) |
|
||||||
endif() |
|
||||||
elseif(ENV_OPENCLROOT AND UNIX) |
|
||||||
set(OPENCL_INCLUDE_SEARCH_PATH ${ENV_OPENCLROOT}/inc) |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} /usr/lib) |
|
||||||
else() |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} /usr/lib64) |
|
||||||
endif() |
|
||||||
elseif(ENV_INTELOCLSDKROOT) |
|
||||||
set(OPENCL_INCLUDE_SEARCH_PATH ${ENV_INTELOCLSDKROOT}/include) |
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_INTELOCLSDKROOT}/lib/x86) |
|
||||||
else() |
|
||||||
set(OPENCL_LIB_SEARCH_PATH ${OPENCL_LIB_SEARCH_PATH} ${ENV_INTELOCLSDKROOT}/lib/x64) |
|
||||||
endif() |
|
||||||
endif() |
|
||||||
|
|
||||||
if(OPENCL_INCLUDE_SEARCH_PATH) |
if(WITH_OPENCLAMDBLAS) |
||||||
find_path(OPENCL_INCLUDE_DIR |
find_path(CLAMDBLAS_ROOT_DIR |
||||||
NAMES CL/cl.h OpenCL/cl.h |
NAMES include/clAmdBlas.h |
||||||
PATHS ${OPENCL_INCLUDE_SEARCH_PATH} |
PATHS ENV CLAMDFFT_PATH ENV ProgramFiles |
||||||
NO_DEFAULT_PATH) |
PATH_SUFFIXES clAmdBlas AMD/clAmdBlas |
||||||
else() |
DOC "AMD FFT root directory" |
||||||
find_path(OPENCL_INCLUDE_DIR |
NO_DEFAULT_PATH) |
||||||
NAMES CL/cl.h OpenCL/cl.h) |
|
||||||
endif() |
|
||||||
|
|
||||||
if(OPENCL_LIB_SEARCH_PATH) |
find_path(CLAMDBLAS_INCLUDE_DIR |
||||||
find_library(OPENCL_LIBRARY NAMES OpenCL PATHS ${OPENCL_LIB_SEARCH_PATH} NO_DEFAULT_PATH) |
NAMES clAmdBlas.h |
||||||
else() |
HINTS ${CLAMDBLAS_ROOT_DIR} |
||||||
find_library(OPENCL_LIBRARY NAMES OpenCL) |
PATH_SUFFIXES include |
||||||
endif() |
DOC "clAmdFft include directory") |
||||||
|
|
||||||
include(FindPackageHandleStandardArgs) |
find_library(CLAMDBLAS_LIBRARY |
||||||
find_package_handle_standard_args( |
NAMES clAmdBlas |
||||||
OPENCL |
HINTS ${CLAMDBLAS_ROOT_DIR} |
||||||
DEFAULT_MSG |
PATH_SUFFIXES ${CLAMD_POSSIBLE_LIB_SUFFIXES} |
||||||
OPENCL_LIBRARY OPENCL_INCLUDE_DIR |
DOC "clAmdBlas library") |
||||||
) |
|
||||||
|
|
||||||
if(OPENCL_FOUND) |
if(CLAMDBLAS_LIBRARY AND CLAMDBLAS_INCLUDE_DIR) |
||||||
set(OPENCL_LIBRARIES ${OPENCL_LIBRARY}) |
set(HAVE_CLAMDBLAS 1) |
||||||
set(HAVE_OPENCL 1) |
list(APPEND OPENCL_INCLUDE_DIRS "${CLAMDBLAS_INCLUDE_DIR}") |
||||||
else() |
list(APPEND OPENCL_LIBRARIES "${CLAMDBLAS_LIBRARY}") |
||||||
set(OPENCL_LIBRARIES) |
|
||||||
endif() |
endif() |
||||||
else() |
|
||||||
set(HAVE_OPENCL 1) |
|
||||||
endif() |
endif() |
||||||
endif() |
endif() |
||||||
|
Loading…
Reference in new issue