From 7382e5240683a81d22200178ff55812ed50ec79c Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Tue, 3 Mar 2015 17:12:11 +0000
Subject: [PATCH] add Scalapack MKL in FindSCALAPACK

---
 cmake_modules/morse/find/FindSCALAPACK.cmake | 112 +++++++++----------
 1 file changed, 55 insertions(+), 57 deletions(-)

diff --git a/cmake_modules/morse/find/FindSCALAPACK.cmake b/cmake_modules/morse/find/FindSCALAPACK.cmake
index e8107788c..dcdcf427f 100644
--- a/cmake_modules/morse/find/FindSCALAPACK.cmake
+++ b/cmake_modules/morse/find/FindSCALAPACK.cmake
@@ -162,7 +162,6 @@ if (NOT _libdir)
         list(APPEND _libdir "${BLAS_DIR}/lib32")
         list(APPEND _libdir "${BLAS_DIR}/lib/ia32")
     endif()
-  endif ()
   elseif (BLAS_LIBDIR)
     list(APPEND _libdir "${BLAS_LIBDIR}")
   endif ()
@@ -176,7 +175,6 @@ if (NOT _libdir)
         list(APPEND _libdir "${SCALAPACK_DIR}/lib32")
         list(APPEND _libdir "${SCALAPACK_DIR}/lib/ia32")
     endif()
-  endif ()
   elseif (SCALAPACK_LIBDIR)
     list(APPEND _libdir "${SCALAPACK_LIBDIR}")
   else()
@@ -211,7 +209,7 @@ foreach(_library ${_list})
         set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
       endif (APPLE)
     else (BLA_STATIC)
-			if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+            if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
         # for ubuntu's libblas3gf and libscalapack3gf packages
         set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
       endif ()
@@ -320,61 +318,61 @@ if (BLA_VENDOR STREQUAL "Generic" OR
   endif ( NOT SCALAPACK_LIBRARIES )
 endif ()
 #intel scalapack
-#if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
-#  if (NOT WIN32)
-#    set(LM "-lm")
-#  endif ()
-#  if (_LANGUAGES_ MATCHES C OR _LANGUAGES_ MATCHES CXX)
-#    if(SCALAPACK_FIND_QUIETLY OR NOT SCALAPACK_FIND_REQUIRED)
-#      find_PACKAGE(Threads)
-#    else()
-#      find_package(Threads REQUIRED)
-#    endif()
-#
-#    set(SCALAPACK_SEARCH_LIBS "")
-#
-#    if (BLA_F95)
-#      set(SCALAPACK_mkl_SEARCH_SYMBOL "PDGEMM")
-#      set(_LIBRARIES SCALAPACK95_LIBRARIES)
-#      set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
-#      list(APPEND SCALAPACK_SEARCH_LIBS "mkl_scalapack_lp64")
-#    else()
-#      set(SCALAPACK_mkl_SEARCH_SYMBOL "pdgemm")
-#      set(_LIBRARIES SCALAPACK_LIBRARIES)
-#      set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
-#      list(APPEND SCALAPACK_SEARCH_LIBS "mkl_scalapack_lp64")
-#    endif()
-#
-    # First try empty scalapack libs
-#    if (NOT ${_LIBRARIES})
-#      check_scalapack_libraries(
-#        ${_LIBRARIES}
-#        BLAS
-#        ${SCALAPACK_mkl_SEARCH_SYMBOL}
-#        ""
-#        ""
-#        "${_BLAS_LIBRARIES}"
-#        "mkl_blacs_intelmpi_lp64"
-#        "${CMAKE_THREAD_LIBS_INIT};${LM}"
-#        )
-#    endif ()
+if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
+  if (NOT WIN32)
+    set(LM "-lm")
+  endif ()
+  if (_LANGUAGES_ MATCHES C OR _LANGUAGES_ MATCHES CXX)
+    if(SCALAPACK_FIND_QUIETLY OR NOT SCALAPACK_FIND_REQUIRED)
+      find_PACKAGE(Threads)
+    else()
+      find_package(Threads REQUIRED)
+    endif()
+
+    set(SCALAPACK_SEARCH_LIBS "")
+
+    if (BLA_F95)
+      set(SCALAPACK_mkl_SEARCH_SYMBOL "PDGEMM")
+      set(_LIBRARIES SCALAPACK95_LIBRARIES)
+      set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
+      list(APPEND SCALAPACK_SEARCH_LIBS "mkl_scalapack_lp64")
+    else()
+      set(SCALAPACK_mkl_SEARCH_SYMBOL "pdgemm")
+      set(_LIBRARIES SCALAPACK_LIBRARIES)
+      set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
+      list(APPEND SCALAPACK_SEARCH_LIBS "mkl_scalapack_lp64")
+    endif()
+
+     # First try empty scalapack libs
+    if (NOT ${_LIBRARIES})
+      check_scalapack_libraries(
+        ${_LIBRARIES}
+        BLAS
+        ${SCALAPACK_mkl_SEARCH_SYMBOL}
+        ""
+        ""
+        "${_BLAS_LIBRARIES}"
+        "mkl_blacs_intelmpi_lp64"
+        "${MPI_Fortran_LIBRARIES}"
+        )
+    endif ()
     # Then try the search libs
-#    foreach (IT ${SCALAPACK_SEARCH_LIBS})
-#      if (NOT ${_LIBRARIES})
-#        check_scalapack_libraries(
-#          ${_LIBRARIES}
-#          BLAS
-#          ${SCALAPACK_mkl_SEARCH_SYMBOL}
-#          ""
-#          "${IT}"
-#          "${_BLAS_LIBRARIES}"
-#          "mkl_blacs_intelmpi_lp64"
-#          "${CMAKE_THREAD_LIBS_INIT};${LM}"
-#          )
-#      endif ()
-#    endforeach ()
-#  endif ()
-#endif()
+    foreach (IT ${SCALAPACK_SEARCH_LIBS})
+      if (NOT ${_LIBRARIES})
+        check_scalapack_libraries(
+          ${_LIBRARIES}
+          BLAS
+          ${SCALAPACK_mkl_SEARCH_SYMBOL}
+          ""
+          "${IT}"
+          "${_BLAS_LIBRARIES}"
+          "mkl_blacs_intelmpi_lp64"
+          "${MPI_Fortran_LIBRARIES}"
+          )
+      endif ()
+    endforeach ()
+  endif ()
+endif()
 else(BLAS_FOUND AND LAPACK_FOUND AND MPI_FOUND)
   message(STATUS "SCALAPACK requires BLAS, LAPACK, and MPI")
 endif(BLAS_FOUND AND LAPACK_FOUND AND MPI_FOUND)
-- 
GitLab