diff --git a/CMakeLists.txt b/CMakeLists.txt index 7857f8c..5f87f7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,7 +274,11 @@ if(APPLE) set(ARMA_USE_ACCELERATE true) if(ALLOW_OPENBLAS_MACOS) - include(ARMA_FindOpenBLAS) + if(USE_OPENBLAS) + find_package(OpenBLAS) + else() + set(OpenBLAS_FOUND NO) + endif() message(STATUS "OpenBLAS_FOUND = ${OpenBLAS_FOUND}") message(STATUS "") message(STATUS "*** If use of OpenBLAS is causing problems,") @@ -289,8 +293,16 @@ if(APPLE) endif() if(ALLOW_BLAS_LAPACK_MACOS) - include(ARMA_FindBLAS) - include(ARMA_FindLAPACK) + if(USE_SYSTEM_BLAS) + include(ARMA_FindBLAS) + else() + set(BLAS_FOUND NO) + endif() + if(USE_SYSTEM_LAPACK) + include(ARMA_FindLAPACK) + else() + set(LAPACK_FOUND NO) + endif() message(STATUS " BLAS_FOUND = ${BLAS_FOUND}" ) message(STATUS "LAPACK_FOUND = ${LAPACK_FOUND}") message(STATUS "") @@ -329,14 +341,42 @@ if(APPLE) else() - include(ARMA_FindMKL) - include(ARMA_FindOpenBLAS) - include(ARMA_FindATLAS) - include(ARMA_FindBLAS) - include(ARMA_FindLAPACK) + if(USE_MKL) + find_package(MKL) + else() + set(MKL_FOUND NO) + endif() + + if(USE_OPENBLAS) + find_package(OpenBLAS) + else() + set(OpenBLAS_FOUND NO) + endif() + + if(USE_SYSTEM_ATLAS) + include(ARMA_FindATLAS) + else() + set(ATLAS_FOUND NO) + endif() + + if(USE_SYSTEM_BLAS) + include(ARMA_FindBLAS) + else() + set(BLAS_FOUND NO) + endif() + + if(USE_SYSTEM_LAPACK) + include(ARMA_FindLAPACK) + else() + set(LAPACK_FOUND NO) + endif() if(ALLOW_FLEXIBLAS_LINUX AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux")) - include(ARMA_FindFlexiBLAS) + if(USE_SYSTEM_FLEXIBLAS) + include(ARMA_FindFlexiBLAS) + else() + set(FlexiBLAS_FOUND NO) + endif() endif() message(STATUS " MKL_FOUND = ${MKL_FOUND}" ) @@ -470,8 +510,6 @@ if(DETECT_HDF5) # HDF5_INCLUDE_DIRS is the correct include directory. So, in either case we # can use the first element in the list. Issue a status message, too, just # for good measure. - list(GET HDF5_INCLUDE_DIRS 0 ARMA_HDF5_INCLUDE_DIR) - message(STATUS "ARMA_HDF5_INCLUDE_DIR = ${ARMA_HDF5_INCLUDE_DIR}") message(STATUS "") message(STATUS "*** If use of HDF5 is causing problems,") message(STATUS "*** rerun cmake with HDF5 detection disabled:") @@ -480,7 +518,11 @@ if(DETECT_HDF5) endif() endif() -include(ARMA_FindARPACK) +if(USE_SYSTEM_ARPACK) + include(ARMA_FindARPACK) +else() + set(ARPACK_FOUND NO) +endif() message(STATUS "ARPACK_FOUND = ${ARPACK_FOUND}") if(ARPACK_FOUND) @@ -488,7 +530,11 @@ if(ARPACK_FOUND) set(ARMA_LIBS ${ARMA_LIBS} ${ARPACK_LIBRARY}) endif() -include(ARMA_FindSuperLU5) +if(USE_SYSTEM_SUPERLU) + include(ARMA_FindSuperLU5) +else() + set(SuperLU_FOUND NO) +endif() message(STATUS "SuperLU_FOUND = ${SuperLU_FOUND}") if(SuperLU_FOUND) diff --git a/include/armadillo_bits/config.hpp.cmake b/include/armadillo_bits/config.hpp.cmake index 3f7f874..998f6ec 100644 --- a/include/armadillo_bits/config.hpp.cmake +++ b/include/armadillo_bits/config.hpp.cmake @@ -152,7 +152,7 @@ #undef ARMA_USE_HDF5 #define ARMA_USE_HDF5 - #define ARMA_HDF5_INCLUDE_DIR ${ARMA_HDF5_INCLUDE_DIR}/ + // #define ARMA_HDF5_INCLUDE_DIR ${ARMA_HDF5_INCLUDE_DIR}/ #endif #if !defined(ARMA_MAT_PREALLOC) -- 2.36.0