@@ -22,17 +22,24 @@ else()
2222 find_library (MKL_THREAD NAMES mkl_gnu_thread HINTS ${MKLROOT} /lib ${MKLROOT} /lib/intel64 )
2323 # With GCC we use system-installed GNU OpenMP
2424endif ()
25+
2526if (ENABLE_MPI)
27+ find_package (MPI QUIET )
28+ if (MPI_CXX_LIBRARY_VERSION_STRING MATCHES "Open MPI" )
29+ set (MKL_BLACS_LIB_NAME "mkl_blacs_openmpi_lp64" )
30+ else ()
31+ set (MKL_BLACS_LIB_NAME "mkl_blacs_intelmpi_lp64" )
32+ endif ()
2633 find_library (MKL_SCALAPACK NAMES mkl_scalapack_lp64 HINTS ${MKLROOT} /lib ${MKLROOT} /lib/intel64 )
27- find_library (MKL_BLACS_INTELMPI NAMES mkl_blacs_intelmpi_lp64 HINTS ${MKLROOT} /lib ${MKLROOT} /lib/intel64 )
34+ find_library (MKL_BLACS NAMES ${MKL_BLACS_LIB_NAME} HINTS ${MKLROOT} /lib ${MKLROOT} /lib/intel64 )
2835endif ()
2936
3037include (FindPackageHandleStandardArgs )
3138# handle the QUIETLY and REQUIRED arguments and set MKL_FOUND to TRUE
3239# if all listed variables are TRUE
3340
3441if (ENABLE_MPI)
35- find_package_handle_standard_args (MKL DEFAULT_MSG MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS_INTELMPI MKL_INCLUDE)
42+ find_package_handle_standard_args (MKL DEFAULT_MSG MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS MKL_INCLUDE)
3643else ()
3744 find_package_handle_standard_args (MKL MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_INCLUDE)
3845endif ()
@@ -62,10 +69,10 @@ if(MKL_FOUND)
6269 IMPORTED_LOCATION "${MKL_SCALAPACK} "
6370 INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE} " )
6471 endif ()
65- if (NOT TARGET MKL::BLACS_INTELMPI )
66- add_library (MKL::BLACS_INTELMPI UNKNOWN IMPORTED )
67- set_target_properties (MKL::BLACS_INTELMPI PROPERTIES
68- IMPORTED_LOCATION "${MKL_BLACS_INTELMPI } "
72+ if (ENABLE_MPI AND NOT TARGET MKL::BLACS )
73+ add_library (MKL::BLACS UNKNOWN IMPORTED )
74+ set_target_properties (MKL::BLACS PROPERTIES
75+ IMPORTED_LOCATION "${MKL_BLACS } "
6976 INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE} " )
7077 endif ()
7178 if (MKL_IOMP5 AND NOT TARGET MKL::IOMP5)
@@ -78,7 +85,7 @@ if(MKL_FOUND)
7885 set_property (TARGET MKL::MKL PROPERTY
7986 INTERFACE_LINK_LIBRARIES
8087 "-Wl,--start-group"
81- MKL::INTERFACE_LIB MKL::THREAD MKL::CORE MKL::MKL_SCALAPACK MKL::BLACS_INTELMPI
88+ MKL::INTERFACE_LIB MKL::THREAD MKL::CORE MKL::MKL_SCALAPACK MKL::BLACS
8289 "-Wl,--end-group"
8390 )
8491 else ()
@@ -96,7 +103,7 @@ if(MKL_FOUND)
96103endif ()
97104
98105if (ENABLE_MPI)
99- mark_as_advanced (MKL_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS_INTELMPI )
106+ mark_as_advanced (MKL_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS )
100107else ()
101108 mark_as_advanced (MKL_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE )
102109endif ()
0 commit comments