summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-04-07 15:09:24 (GMT)
committerBrad King <brad.king@kitware.com>2021-04-07 15:26:07 (GMT)
commit9ef82d95d8bab39b354c09139c94a39d49aeab9d (patch)
tree2902866fd33db3ef4d9596a1e76c1fd609f085c4
parentf8af94a2124d61e33f71f67b4ae282475314da25 (diff)
downloadCMake-9ef82d95d8bab39b354c09139c94a39d49aeab9d.zip
CMake-9ef82d95d8bab39b354c09139c94a39d49aeab9d.tar.gz
CMake-9ef82d95d8bab39b354c09139c94a39d49aeab9d.tar.bz2
FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC
Update the change from commit f7f3d8987a (FindBLAS: Add dependency of OpenBLAS on OpenMP for BLA_STATIC, 2020-11-10, v3.20.0-rc1~492^2): * If C is not enabled, find CXX OpenMP libraries instead. * Do not use BLA_STATIC's custom CMAKE_FIND_LIBRARY_SUFFIXES for OpenMP. It can break projects that already call `find_package(OpenMP)` and expect a shared library. Whether OpenMP is static is orthogonal to whether BLAS is static. Fixes: #22039 Issue: #16221
-rw-r--r--Modules/FindBLAS.cmake13
1 files changed, 11 insertions, 2 deletions
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 4cf812b..b4650b2 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -619,8 +619,17 @@ if(BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
endif()
set(_threadlibs "${CMAKE_THREAD_LIBS_INIT}")
if(BLA_STATIC)
- find_package(OpenMP COMPONENTS C)
- list(PREPEND _threadlibs "${OpenMP_C_LIBRARIES}")
+ set(_blas_STATIC_CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES}")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES "${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}")
+ if (CMAKE_C_COMPILER_LOADED)
+ find_package(OpenMP COMPONENTS C)
+ list(PREPEND _threadlibs "${OpenMP_C_LIBRARIES}")
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ find_package(OpenMP COMPONENTS CXX)
+ list(PREPEND _threadlibs "${OpenMP_CXX_LIBRARIES}")
+ endif()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES "${_blas_STATIC_CMAKE_FIND_LIBRARY_SUFFIXES}")
+ unset(_blas_STATIC_CMAKE_FIND_LIBRARY_SUFFIXES)
endif()
check_blas_libraries(
BLAS_LIBRARIES