From ed703f02b9896fb1a8652b157e34b8fd794d4fe2 Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Wed, 15 Feb 2023 17:44:07 +0100
Subject: [PATCH] Fix a bug with intelmpi linker flag not recognize e.g.
 --enable-new-dtags -Xlinker -rpath -Xlinker ...

---
 modules/find/FindHYPRE.cmake    | 4 +++-
 modules/find/FindMUMPS.cmake    | 5 ++++-
 modules/find/FindPAMPA.cmake    | 4 +++-
 modules/find/FindPARMETIS.cmake | 4 +++-
 modules/find/FindPTSCOTCH.cmake | 4 +++-
 5 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/modules/find/FindHYPRE.cmake b/modules/find/FindHYPRE.cmake
index c54090f..b6d3534 100644
--- a/modules/find/FindHYPRE.cmake
+++ b/modules/find/FindHYPRE.cmake
@@ -113,7 +113,9 @@ if(HYPRE_LIBRARIES)
       if (${MPI_C_LINK_FLAGS} MATCHES "  -")
         string(REGEX REPLACE " -" "-" MPI_C_LINK_FLAGS ${MPI_C_LINK_FLAGS})
       endif()
-      list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      if (NOT CMAKE_C_COMPILER_ID MATCHES "Intel")
+        list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      endif()
     endif()
     list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
   endif()
diff --git a/modules/find/FindMUMPS.cmake b/modules/find/FindMUMPS.cmake
index d99eee3..31a5d8a 100644
--- a/modules/find/FindMUMPS.cmake
+++ b/modules/find/FindMUMPS.cmake
@@ -436,7 +436,10 @@ if(MUMPS_LIBRARIES)
       if (${MPI_Fortran_LINK_FLAGS} MATCHES "  -")
         string(REGEX REPLACE " -" "-" MPI_Fortran_LINK_FLAGS ${MPI_Fortran_LINK_FLAGS})
       endif()
-      list(APPEND REQUIRED_LDFLAGS "${MPI_Fortran_LINK_FLAGS}")
+      # bug with intelmpi --enable-new-dtags -Xlinker -rpath -Xlinker ...
+      if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
+        list(APPEND REQUIRED_LDFLAGS "${MPI_Fortran_LINK_FLAGS}")
+      endif()
     endif()
     list(APPEND REQUIRED_LIBS "${MPI_Fortran_LIBRARIES}")
   endif()
diff --git a/modules/find/FindPAMPA.cmake b/modules/find/FindPAMPA.cmake
index 54c90d3..ba888d7 100644
--- a/modules/find/FindPAMPA.cmake
+++ b/modules/find/FindPAMPA.cmake
@@ -129,7 +129,9 @@ if(PAMPA_LIBRARIES)
       if (${MPI_C_LINK_FLAGS} MATCHES "  -")
         string(REGEX REPLACE " -" "-" MPI_C_LINK_FLAGS ${MPI_C_LINK_FLAGS})
       endif()
-      list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      if (NOT CMAKE_C_COMPILER_ID MATCHES "Intel")
+        list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      endif()
     endif()
     list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
   endif()
diff --git a/modules/find/FindPARMETIS.cmake b/modules/find/FindPARMETIS.cmake
index 7cb5c2a..d8056e1 100644
--- a/modules/find/FindPARMETIS.cmake
+++ b/modules/find/FindPARMETIS.cmake
@@ -134,7 +134,9 @@ if(PARMETIS_LIBRARIES)
       if (${MPI_C_LINK_FLAGS} MATCHES "  -")
         string(REGEX REPLACE " -" "-" MPI_C_LINK_FLAGS ${MPI_C_LINK_FLAGS})
       endif()
-      list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      if (NOT CMAKE_C_COMPILER_ID MATCHES "Intel")
+        list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      endif()
     endif()
     list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
   endif()
diff --git a/modules/find/FindPTSCOTCH.cmake b/modules/find/FindPTSCOTCH.cmake
index 66c6c23..58b4549 100644
--- a/modules/find/FindPTSCOTCH.cmake
+++ b/modules/find/FindPTSCOTCH.cmake
@@ -150,7 +150,9 @@ if(PTSCOTCH_LIBRARIES)
       if (${MPI_C_LINK_FLAGS} MATCHES "  -")
         string(REGEX REPLACE " -" "-" MPI_C_LINK_FLAGS ${MPI_C_LINK_FLAGS})
       endif()
-      list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      if (NOT CMAKE_C_COMPILER_ID MATCHES "Intel")
+        list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
+      endif()
     endif()
     list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
   endif()
-- 
GitLab