Browse Source

FindMPI: Do not parse -l in middle of library name

We parse the output of 'mpicc -shome:link' to look for -l options
specifying libraries.  Fix the parsing regex to avoid matching the
string '-l' in the middle of a library name.
Brad King 15 years ago
parent
commit
68c7d3e2ce
1 changed files with 2 additions and 2 deletions
  1. 2 2
      Modules/FindMPI.cmake

+ 2 - 2
Modules/FindMPI.cmake

@@ -263,13 +263,13 @@ elseif (MPI_COMPILE_CMDLINE)
 
   # Extract the set of libraries to link against from the link command
   # line
-  string(REGEX MATCHALL "-l([^\" ]+|\"[^\"]+\")" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
+  string(REGEX MATCHALL "(^| )-l([^\" ]+|\"[^\"]+\")" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
 
   # Determine full path names for all of the libraries that one needs
   # to link against in an MPI program
   set(MPI_LIBRARIES)
   foreach(LIB ${MPI_LIBNAMES})
-    string(REGEX REPLACE "^-l" "" LIB ${LIB})
+    string(REGEX REPLACE "^ ?-l" "" LIB ${LIB})
     set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
     find_library(MPI_LIB ${LIB} HINTS ${MPI_LINK_PATH})
     if (MPI_LIB)