浏览代码

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
Eisuke Kawashima 3 年之前
父节点
当前提交
28d52a43fc
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      Modules/FindLAPACK.cmake

+ 7 - 2
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?