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.
This commit is contained in:
parent
ec10d005ce
commit
68c7d3e2ce
|
@ -263,13 +263,13 @@ elseif (MPI_COMPILE_CMDLINE)
|
||||||
|
|
||||||
# Extract the set of libraries to link against from the link command
|
# Extract the set of libraries to link against from the link command
|
||||||
# line
|
# 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
|
# Determine full path names for all of the libraries that one needs
|
||||||
# to link against in an MPI program
|
# to link against in an MPI program
|
||||||
set(MPI_LIBRARIES)
|
set(MPI_LIBRARIES)
|
||||||
foreach(LIB ${MPI_LIBNAMES})
|
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)
|
set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
|
||||||
find_library(MPI_LIB ${LIB} HINTS ${MPI_LINK_PATH})
|
find_library(MPI_LIB ${LIB} HINTS ${MPI_LINK_PATH})
|
||||||
if (MPI_LIB)
|
if (MPI_LIB)
|
||||||
|
|
Loading…
Reference in New Issue