mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 08:20:18 -06:00
FindMPI: Parse '-l:' flags in pkg-config output
With the msmpi package in MSYS2:
$ pkg-config --libs msmpi
-LC:/msys64/mingw64/lib -l:libmsmpi.dll.a
MSYS2-Issue: https://github.com/msys2/MINGW-packages/pull/11839
Fixes: #23620
This commit is contained in:
@@ -775,7 +775,8 @@ function (_MPI_interrogate_compiler LANG)
|
||||
MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
|
||||
|
||||
foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
|
||||
string(REGEX REPLACE "^ ?${CMAKE_LINK_LIBRARY_FLAG}" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
|
||||
# also match flags starting with "-l:" here
|
||||
string(REGEX REPLACE "^ ?${CMAKE_LINK_LIBRARY_FLAG}(:lib|:)?" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
|
||||
string(REPLACE "\"" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
|
||||
list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
|
||||
endforeach()
|
||||
@@ -788,7 +789,7 @@ function (_MPI_interrogate_compiler LANG)
|
||||
set(_MPI_LIB_SUFFIX_REGEX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
if(DEFINED CMAKE_IMPORT_LIBRARY_SUFFIX)
|
||||
if(NOT ("${CMAKE_IMPORT_LIBRARY_SUFFIX}" STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}"))
|
||||
string(APPEND _MPI_SUFFIX_REGEX "|${CMAKE_IMPORT_LIBRARY_SUFFIX}")
|
||||
string(APPEND _MPI_LIB_SUFFIX_REGEX "|${CMAKE_IMPORT_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
else()
|
||||
string(APPEND _MPI_LIB_SUFFIX_REGEX "|${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
@@ -798,12 +799,16 @@ function (_MPI_interrogate_compiler LANG)
|
||||
|
||||
string(REGEX MATCHALL "${_MPI_LIB_NAME_REGEX}" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
|
||||
foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
|
||||
string(REGEX REPLACE "^ +\"?|\"? +$" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
|
||||
get_filename_component(_MPI_LIB_PATH "${_MPI_LIB_NAME}" DIRECTORY)
|
||||
if(NOT "${_MPI_LIB_PATH}" STREQUAL "")
|
||||
list(APPEND MPI_LIB_FULLPATHS_WORK "${_MPI_LIB_NAME}")
|
||||
else()
|
||||
list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
|
||||
# Do not match "-l:" flags
|
||||
string(REGEX MATCH "^ ?${CMAKE_LINK_LIBRARY_FLAG}:" _MPI_LIB_NAME_TEST "${_MPI_LIB_NAME}")
|
||||
if(_MPI_LIB_NAME_TEST STREQUAL "")
|
||||
string(REGEX REPLACE "^ +\"?|\"? +$" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
|
||||
get_filename_component(_MPI_LIB_PATH "${_MPI_LIB_NAME}" DIRECTORY)
|
||||
if(NOT "${_MPI_LIB_PATH}" STREQUAL "")
|
||||
list(APPEND MPI_LIB_FULLPATHS_WORK "${_MPI_LIB_NAME}")
|
||||
else()
|
||||
list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user