From f7b82fc0ee925ce0004fab0eb6c30caacbc454e9 Mon Sep 17 00:00:00 2001 From: hollowsunhc <128929460+hollowsunhc@users.noreply.github.com> Date: Fri, 15 Mar 2024 23:32:36 -0400 Subject: [PATCH] fix: Provide MKL Paths with MKLConfig.cmake --- CMakeLists.txt | 16 +++++++++++++--- cmake/SuiteSparse-config-install.cmake.in | 19 ++++++++++++++++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f154e6c..ac8584df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,9 +269,19 @@ if(WITH_OPENBLAS) set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS BLAS::BLAS) endif() elseif(WITH_MKL) - hunter_add_package(mkl) - set(BLA_VENDOR "Intel10_64lp") - find_package(BLAS REQUIRED) + if(HUNTER_ENABLED) + hunter_add_package(mkl) + set(BLA_VENDOR "Intel10_64lp") + find_package(BLAS REQUIRED) + else() + find_package(MKL CONFIG HINTS $ENV{MKLROOT}) + if(MKL_FOUND) + get_property(BLAS_INCLUDE_DIRS TARGET MKL::MKL PROPERTY INTERFACE_INCLUDE_DIRECTORIES) + get_property(BLAS_LIBRARIES TARGET MKL::MKL PROPERTY INTERFACE_LINK_LIBRARIES) + else() + find_package(BLAS REQUIRED) + endif() + endif() find_package(LAPACK REQUIRED) set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in index d5f6e7c3..fad6f2da 100644 --- a/cmake/SuiteSparse-config-install.cmake.in +++ b/cmake/SuiteSparse-config-install.cmake.in @@ -18,9 +18,22 @@ else() # use config file which provides LAPACK (and BLAS) for us find_dependency(LAPACK CONFIG) else() - # try to find BLAS and LAPACK with modules - find_dependency(BLAS) - find_dependency(LAPACK) + set(_SuiteSparse_WITH_MKL @WITH_MKL@) + set(_SuiteSparse_HUNTER_ENABLED @HUNTER_ENABLED@) + if (_SuiteSparse_WITH_MKL) + if (_SuiteSparse_HUNTER_ENABLED) + # try to find BLAS and LAPACK with modules + find_dependency(BLAS) + find_dependency(LAPACK) + else() + find_package(MKL CONFIG HINTS $ENV{MKLROOT}) + endif() + else() + # try to find BLAS and LAPACK with modules + find_dependency(BLAS) + find_dependency(LAPACK) + endif() + endif() endif()