|  | 
| 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