FindLAPACK: Add '-fortranlibs' flag only with NVHPC/PGI compilers

Since commit 2c9e623e31 (Find{BLAS,LAPACK}: Add support for the NVHPC
LAPACK library, 2021-05-05, v3.21.0-rc1~192^2) we try the `-fortranlibs`
option as a dependency of the NVHPC LAPACK.  That flag is specific to
the NVHPC/PGI compilers, so use it conditionally with them.

Without this modification, CMake fails to find LAPACK if

- compiler ID is GNU
- `BLA_STATIC` is `ON`
- `BLA_VENDOR` is not defined or set to `All`

Fixes: #23705, #22878
This commit is contained in:
Eisuke Kawashima
2022-07-06 07:53:47 +09:00
committed by Brad King
parent 7b43112bee
commit 28d52a43fc

View File

@@ -663,6 +663,10 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
elseif(_lapack_sizeof_integer EQUAL 4)
string(APPEND _lapack_nvhpc_lib "_lp64")
endif()
set(_lapack_nvhpc_flags)
if(";${CMAKE_C_COMPILER_ID};${CMAKE_CXX_COMPILER_ID};${CMAKE_Fortran_COMPILER_ID};" MATCHES ";(NVHPC|PGI);")
set(_lapack_nvhpc_flags "-fortranlibs")
endif()
check_lapack_libraries(
LAPACK_LIBRARIES
@@ -670,7 +674,7 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
cheev
""
"${_lapack_nvhpc_lib}"
"-fortranlibs"
"${_lapack_nvhpc_flags}"
""
""
"${BLAS_LIBRARIES}"
@@ -688,7 +692,7 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
cheev
""
"${_lapack_nvhpc_lib}"
"-fortranlibs"
"${_lapack_nvhpc_flags}"
""
""
"${BLAS_LIBRARIES}"
@@ -696,6 +700,7 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
endif()
unset(_lapack_nvhpc_lib)
unset(_lapack_nvhpc_flags)
endif()
# Generic LAPACK library?