|
70 | 70 | # Link line for C API |
71 | 71 | #=============================================================================== |
72 | 72 |
|
| 73 | +if(TARGET MKL::MKL) |
| 74 | + message(STATUS "MKL::MKL target has already been loaded.") |
| 75 | + return() |
| 76 | +endif() |
| 77 | + |
73 | 78 | if(${CMAKE_VERSION} VERSION_LESS "3.13") |
74 | 79 | message(FATAL_ERROR "The minimum supported CMake version is 3.13. You are running version ${CMAKE_VERSION}") |
75 | 80 | endif() |
76 | 81 |
|
77 | 82 | include(FindPackageHandleStandardArgs) |
78 | 83 |
|
| 84 | +set(MKLROOT_DEFAULT "/opt/intel/oneapi/mkl/latest") |
| 85 | + |
79 | 86 | if(NOT MKL_LIBRARIES) |
80 | 87 |
|
81 | 88 | # Set CMake policies for well-defined behavior across CMake versions |
@@ -124,11 +131,15 @@ if(NOT MKL_LIBRARIES) |
124 | 131 | if(NOT DEFINED MKL_ROOT) |
125 | 132 | if(DEFINED ENV{MKLROOT}) |
126 | 133 | set(MKL_ROOT $ENV{MKLROOT}) |
| 134 | + elseif(EXISTS ${MKLROOT_DEFAULT}) |
| 135 | + set(MKL_ROOT ${MKLROOT_DEFAULT}) |
127 | 136 | else() |
128 | 137 | message(FATAL_ERROR "MKLROOT environment variable is not defined.") |
129 | 138 | endif() |
130 | 139 | endif() |
131 | 140 |
|
| 141 | + set(MKL_INCLUDE "${MKL_ROOT}/include") |
| 142 | + |
132 | 143 | # Define MKL_LINK |
133 | 144 | set(MKL_LINK static) |
134 | 145 | set(MKL_INTERFACE "lp64") |
@@ -209,12 +220,12 @@ if(NOT MKL_LIBRARIES) |
209 | 220 | target_compile_options( |
210 | 221 | MKL::MKL INTERFACE $<$<STREQUAL:$<TARGET_PROPERTY:LINKER_LANGUAGE>,C>:${MKL_C_COPT}> |
211 | 222 | $<$<STREQUAL:$<TARGET_PROPERTY:LINKER_LANGUAGE>,CXX>:${MKL_CXX_COPT}>) |
| 223 | + target_compile_definitions(MKL::MKL INTERFACE EIGEN_USE_MKL_ALL) |
212 | 224 | target_link_libraries(MKL::MKL INTERFACE ${MKL_LINK_LINE} ${MKL_THREAD_LIB} ${MKL_SUPP_LINK}) |
213 | 225 | list(APPEND LINK_TYPES MKL::MKL) |
214 | | - |
215 | 226 | foreach(link ${LINK_TYPES}) |
216 | 227 | # Set properties on all INTERFACE targets |
217 | | - target_include_directories(${link} BEFORE INTERFACE "${MKL_INCLUDE}") |
| 228 | + target_include_directories(${link} BEFORE INTERFACE ${MKL_INCLUDE}) |
218 | 229 | list(APPEND MKL_IMPORTED_TARGETS ${link}) |
219 | 230 | endforeach(link) # LINK_TYPES |
220 | 231 |
|
|
0 commit comments