diff --git a/cmake/AmiciFindBLAS.cmake b/cmake/AmiciFindBLAS.cmake index 51d9c9b257..e0553b81c5 100644 --- a/cmake/AmiciFindBLAS.cmake +++ b/cmake/AmiciFindBLAS.cmake @@ -12,18 +12,33 @@ set_property(CACHE BLAS PROPERTY STRINGS "CBLAS" "MKL" "ACCELERATE") if(${BLAS} STREQUAL "MKL" OR DEFINED ENV{MKLROOT}) if(DEFINED ENV{MKLROOT}) - # This is set by Environment Modules - message(STATUS "Using MKL_INCDIR and MKL_LIB from environment module") set(BLAS "MKL" CACHE STRING "BLAS library to use" FORCE) - set(BLAS_INCLUDE_DIRS - "$ENV{MKL_INCDIR}" - CACHE STRING "" FORCE) - set(BLAS_LIBRARIES - "$ENV{MKL_LIB}" - CACHE STRING "" FORCE) + + # Was MKLROOT set by /opt/intel/oneapi/setvars.sh? then cmake will find it + message(STATUS "Trying to find BLAS based on MKLROOT=$ENV{MKLROOT}") + # give the user the option to override the BLA_VENDOR + if(NOT DEFINED BLA_VENDOR) + set(BLA_VENDOR Intel10_64lp) + endif() + message(STATUS "Trying FindBLAS with BLA_VENDOR=${BLA_VENDOR}") + find_package(BLAS) + if(BLAS_FOUND) + message(STATUS "Found BLAS via FindBLAS and MKLROOT") + else() + # This is set by Environment Modules and might not be compatible with + # FindBLAS + message(STATUS "Using MKL_INCDIR and MKL_LIB from environment module") + set(BLAS_INCLUDE_DIRS + "$ENV{MKL_INCDIR}" + CACHE STRING "" FORCE) + set(BLAS_LIBRARIES + "$ENV{MKL_LIB}" + CACHE STRING "" FORCE) + endif() else() + message(STATUS "BLAS is set to MKL, but MKLROOT is not set.") set(BLAS_INCLUDE_DIRS "" CACHE STRING "") @@ -42,6 +57,7 @@ elseif( if(APPLE AND (NOT DEFINED BLA_VENDOR OR BLA_VENDOR STREQUAL "All")) set(BLA_VENDOR Apple) + message(STATUS "Trying FindBLAS with BLA_VENDOR=${BLA_VENDOR}") find_package(BLAS) if(BLAS_FOUND) message(STATUS "Found Apple Accelerate BLAS") @@ -59,6 +75,7 @@ elseif( endif() if(NOT BLAS_FOUND) + message(STATUS "Trying FindBLAS with BLA_VENDOR=${BLA_VENDOR}") find_package(BLAS) if(BLAS_FOUND) message(STATUS "Found BLAS via FindBLAS") @@ -79,17 +96,17 @@ endif() # Create an imported target if(NOT TARGET BLAS::BLAS) add_library(BLAS INTERFACE) - set_target_properties(BLAS PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${BLAS_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${BLAS_LIBRARIES}") + set_target_properties( + BLAS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${BLAS_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${BLAS_LIBRARIES}") add_library(BLAS::BLAS ALIAS BLAS) if("${PROJECT_NAME}" STREQUAL "amici") - install(TARGETS BLAS EXPORT BLAS) - export(EXPORT BLAS NAMESPACE BLAS::) - install( - EXPORT BLAS - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Amici" - NAMESPACE BLAS::) + install(TARGETS BLAS EXPORT BLAS) + export(EXPORT BLAS NAMESPACE BLAS::) + install( + EXPORT BLAS + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Amici" + NAMESPACE BLAS::) endif() # legacy python package environment variables: diff --git a/cmake/cmakelang-tools.cmake b/cmake/cmakelang-tools.cmake index ad489500bc..5796938d2c 100644 --- a/cmake/cmakelang-tools.cmake +++ b/cmake/cmakelang-tools.cmake @@ -9,7 +9,9 @@ set(ALL_CMAKE_FILES tests/cpp/unittests/CMakeLists.txt ${CMAKE_MODULE_PATH}/cmakelang-tools.cmake ${CMAKE_MODULE_PATH}/clang-tools.cmake + ${CMAKE_MODULE_PATH}/AmiciFindBLAS.cmake ${CMAKE_MODULE_PATH}/version.cmake) + list(JOIN ALL_CMAKE_FILES " " ALL_CMAKE_FILES) # --- cmake-format ---