1
# - Try to find the Intel Math Kernel Library
2
# Once done this will define
4
# MKL_FOUND - system has MKL
5
# MKL_ROOT_DIR - path to the MKL base directory
6
# MKL_INCLUDE_DIR - the MKL include directory
7
# MKL_LIBRARIES - MKL libraries
9
# There are few sets of libraries:
10
# Array indexes modes:
11
# LP - 32 bit indexes of arrays
12
# ILP - 64 bit indexes of arrays
14
# SEQUENTIAL - no threading
15
# INTEL - Intel threading library
16
# GNU - GNU threading library
18
# NOMPI - no MPI support
19
# INTEL - Intel MPI library
20
# OPEN - Open MPI library
21
# SGI - SGI MPT Library
23
if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
24
set(MKL_ARCH_DIR "em64t")
25
else(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
26
set(MKL_ARCH_DIR "32")
27
endif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
30
set (MKL_THREAD_VARIANTS SEQUENTIAL GNUTHREAD INTELTHREAD)
31
set (MKL_MODE_VARIANTS ILP LP)
32
set (MKL_MPI_VARIANTS NOMPI INTELMPI OPENMPI SGIMPT)
35
find_path(MKL_ROOT_DIR
43
find_path(MKL_INCLUDE_DIR
46
${MKL_ROOT_DIR}/include
47
${INCLUDE_INSTALL_DIR}
50
find_path(MKL_FFTW_INCLUDE_DIR
54
${MKL_ROOT_DIR}/include
55
${INCLUDE_INSTALL_DIR}
61
find_library(MKL_CORE_LIBRARY
64
${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
69
find_library(MKL_SEQUENTIAL_LIBRARY
72
${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
76
find_library(MKL_INTELTHREAD_LIBRARY
79
${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
83
find_library(MKL_GNUTHREAD_LIBRARY
86
${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
91
find_library(MKL_LP_LIBRARY
94
${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
98
find_library(MKL_ILP_LIBRARY
101
${MKL_ROOT_DIR}/lib/${MKL_ARCH_DIR}
106
foreach (MODEVAR ${MKL_MODE_VARIANTS})
107
foreach (THREADVAR ${MKL_THREAD_VARIANTS})
108
if (MKL_CORE_LIBRARY AND MKL_${MODEVAR}_LIBRARY AND MKL_${THREADVAR}_LIBRARY)
109
set(MKL_${MODEVAR}_${THREADVAR}_LIBRARIES ${MKL_${MODEVAR}_LIBRARY} ${MKL_${THREADVAR}_LIBRARY} ${MKL_CORE_LIBRARY} )
114
set(MKL_LIBRARIES ${MKL_LP_SEQUENTIAL_LIBRARIES})
116
include(FindPackageHandleStandardArgs)
117
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_INCLUDE_DIR MKL_LIBRARIES)
120
mark_as_advanced(MKL_INCLUDE_DIR MKL_LIBRARIES
121
MKL_CORE_LIBRARY MKL_LP_LIBRARY MKL_ILP_LIBRARY
122
MKL_SEQUENTIAL_LIBRARY MKL_INTELTHREAD_LIBRARY MKL_GNUTHREAD_LIBRARY