diff --git a/CMakeLists.txt b/CMakeLists.txt index 58f587b35e829f4726635741f61883dc2d77e5fd..eaafb9f3fc69e24b63e3b3175e19f8375c2e0e77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,7 +144,6 @@ if(NOT TURTLE_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) endif() message("Checking Armadillo dependencies") -option(DOWNLOAD_OPENBLAS OFF) find_package(LAPACK) find_package(BLAS) if(NOT LAPACK_FOUND AND NOT BLAS_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) diff --git a/DownloadOpenBLAS.cmake b/DownloadOpenBLAS.cmake index 225a9029ff6ea5681e5bfa808866f031c73ea7f3..6ed2511ece221f95c1304c15a979e916d668f842 100644 --- a/DownloadOpenBLAS.cmake +++ b/DownloadOpenBLAS.cmake @@ -20,29 +20,30 @@ FetchContent_Populate(OpenBLAS) ################## # Build OpenBLAS # ################## -execute_process( - COMMAND cmake -j ${N_CORES} . - WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} - RESULT_VARIABLE rv -) -if(NOT rv STREQUAL "0") - message("OpenBLAS build: cmake .: ${rv}") -endif() - -execute_process( - COMMAND cmake --build . -j ${N_CORES} --config Release - WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} - RESULT_VARIABLE rv -) -if(NOT rv STREQUAL "0") - message("OpenBLAS build: cmake --build . -j ${N_CORES}: ${rv}") -endif() - -set(BLAS_DIR external_dependencies/OpenBLAS) -message("BLAS_DIR " ${BLAS_DIR}) -find_package(BLAS) +#execute_process( +# COMMAND cmake -j ${N_CORES} . +# WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} +# RESULT_VARIABLE rv +#) +#if(NOT rv STREQUAL "0") +# message("OpenBLAS build: cmake .: ${rv}") +#endif() +# +#execute_process( +# COMMAND cmake --build . -j ${N_CORES} --config Release +# WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} +# RESULT_VARIABLE rv +#) +#if(NOT rv STREQUAL "0") +# message("OpenBLAS build: cmake --build . -j ${N_CORES}: ${rv}") +#endif() + +set(OpenBLAS_DIR ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/OpenBLAS) +find_package(OpenBLAS) if(NOT BLAS_FOUND) message(FATAL_ERROR "OpenBLAS was not downloaded successfully!") +else() + message("OpenBLAS libraries: "${BLAS_LIBRARIES}) endif() diff --git a/FindOpenBLAS.cmake b/FindOpenBLAS.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7ba8459167926b851958f0dac78875e85552d675 --- /dev/null +++ b/FindOpenBLAS.cmake @@ -0,0 +1,65 @@ +message("FindOpenBLAS starting...") + +SET(Open_BLAS_INCLUDE_SEARCH_PATHS + ${OpenBLAS_INCLUDE_DIRECTORY} + $ENV{OpenBLAS_INCLUDE_DIRECTORY} + /usr/include + /usr/include/openblas + /usr/include/openblas-base + /usr/local/include + /usr/local/include/openblas + /usr/local/include/openblas-base + /opt/OpenBLAS/include + ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/OpenBLAS + ) + +SET(Open_BLAS_LIB_SEARCH_PATHS + ${OpenBLAS_LIBRARY_DIRECTORY} + $ENV{OpenBLAS_LIBRARY_DIRECTORY} + /lib/ + /lib/openblas-base + /lib64/ + /usr/lib + /usr/lib/openblas-base + /usr/lib64 + /usr/local/lib + /usr/local/lib64 + /opt/OpenBLAS/lib + ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/OpenBLAS/lib + ) + +FIND_PATH(OpenBLAS_INCLUDE_DIR + NAMES + cblas.h + + PATHS + ${Open_BLAS_INCLUDE_SEARCH_PATHS} +) + +FIND_LIBRARY(OpenBLAS_LIBRARIES + NAMES + openblas + + PATHS + ${Open_BLAS_LIB_SEARCH_PATHS} +) + +# Set OpenBLAS_Found +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + OpenBLAS + + FAIL_MESSAGE + "OpenBLAS was NOT found!" + + REQUIRED_VARS + OpenBLAS_INCLUDE_DIR + OpenBLAS_LIBRARY_DIR +) + +IF (OpenBLAS_FOUND) + MESSAGE(STATUS "Found OpenBLAS libraries: ${OpenBLAS_LIBRARIES}") + MESSAGE(STATUS "Found OpenBLAS include: ${OpenBLAS_INCLUDE_DIR}") + ELSE() + MESSAGE("Could not find OpenBLAS") +ENDIF()