From 28d52a43fc1f69cfff9f87d167b897f13ec60fe2 Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima <15070-e-kwsm@users.noreply.gitlab.kitware.com> Date: Wed, 6 Jul 2022 07:53:47 +0900 Subject: 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 --- Modules/FindLAPACK.cmake | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index 5540965..91086a3 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake @@ -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? -- cgit v0.12