diff options
author | Brad King <brad.king@kitware.com> | 2022-06-22 12:49:24 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-06-22 12:49:31 (GMT) |
commit | e38783f16b5d41828a984551ee76ee575bc32b3b (patch) | |
tree | 5ca59491b8630c80d12e95b45c502b833aa58b04 /Modules | |
parent | dc67ae7cd3e1dde8edbad9fb220b0492b0151fba (diff) | |
parent | a6066094991bb356ad21d2c59cb8ed614f9abc2f (diff) | |
download | CMake-e38783f16b5d41828a984551ee76ee575bc32b3b.zip CMake-e38783f16b5d41828a984551ee76ee575bc32b3b.tar.gz CMake-e38783f16b5d41828a984551ee76ee575bc32b3b.tar.bz2 |
Merge topic 'FindMPI-l-colon' into release-3.24
a606609499 FindMPI: Parse '-l:' flags in pkg-config output
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7392
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindMPI.cmake | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake index 6b60deb..bca0c10 100644 --- a/Modules/FindMPI.cmake +++ b/Modules/FindMPI.cmake @@ -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() |