123 lines
4.6 KiB
Diff
123 lines
4.6 KiB
Diff
diff -Naur armadillo-9.900.2/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake armadillo-9.900.2-flexiblas/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake
|
|
--- armadillo-9.900.2/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake 1970-01-01 10:00:00.000000000 +1000
|
|
+++ armadillo-9.900.2-flexiblas/cmake_aux/Modules/ARMA_FindFlexiBLAS.cmake 2020-08-05 19:53:10.573438536 +1000
|
|
@@ -0,0 +1,48 @@
|
|
+set(FlexiBLAS_NAMES)
|
|
+set(FlexiBLAS_NAMES ${FlexiBLAS_NAMES} flexiblas)
|
|
+
|
|
+set(FlexiBLAS_TMP_LIBRARY)
|
|
+set(FlexiBLAS_TMP_LIBRARIES)
|
|
+
|
|
+
|
|
+foreach (FlexiBLAS_NAME ${FlexiBLAS_NAMES})
|
|
+ find_library(${FlexiBLAS_NAME}_LIBRARY
|
|
+ NAMES ${FlexiBLAS_NAME}
|
|
+ PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 /opt/local/lib
|
|
+ )
|
|
+
|
|
+ set(FlexiBLAS_TMP_LIBRARY ${${FlexiBLAS_NAME}_LIBRARY})
|
|
+
|
|
+ if(FlexiBLAS_TMP_LIBRARY)
|
|
+ set(FlexiBLAS_TMP_LIBRARIES ${FlexiBLAS_TMP_LIBRARIES} ${FlexiBLAS_TMP_LIBRARY})
|
|
+ endif()
|
|
+endforeach()
|
|
+
|
|
+
|
|
+# use only one library
|
|
+
|
|
+if(FlexiBLAS_TMP_LIBRARIES)
|
|
+ list(GET FlexiBLAS_TMP_LIBRARIES 0 FlexiBLAS_LIBRARY)
|
|
+endif()
|
|
+
|
|
+
|
|
+if(FlexiBLAS_LIBRARY)
|
|
+ set(FlexiBLAS_LIBRARIES ${FlexiBLAS_LIBRARY})
|
|
+ set(FlexiBLAS_FOUND "YES")
|
|
+else()
|
|
+ set(FlexiBLAS_FOUND "NO")
|
|
+endif()
|
|
+
|
|
+
|
|
+if(FlexiBLAS_FOUND)
|
|
+ if (NOT FlexiBLAS_FIND_QUIETLY)
|
|
+ message(STATUS "Found FlexiBLAS: ${FlexiBLAS_LIBRARIES}")
|
|
+ endif()
|
|
+else()
|
|
+ if(FlexiBLAS_FIND_REQUIRED)
|
|
+ message(FATAL_ERROR "Could not find FlexiBLAS")
|
|
+ endif()
|
|
+endif()
|
|
+
|
|
+
|
|
+# mark_as_advanced(FlexiBLAS_LIBRARY)
|
|
diff -Naur armadillo-9.900.2/CMakeLists.txt armadillo-9.900.2-flexiblas/CMakeLists.txt
|
|
--- armadillo-9.900.2/CMakeLists.txt 2016-06-17 02:21:12.000000000 +1000
|
|
+++ armadillo-9.900.2-flexiblas/CMakeLists.txt 2020-08-05 19:52:44.000439011 +1000
|
|
@@ -134,6 +134,10 @@
|
|
|
|
option(DETECT_HDF5 "Detect HDF5 and include HDF5 support, if found" ON)
|
|
|
|
+option(ALLOW_FLEXIBLAS_LINUX "Allow detection of FlexiBLAS on Linux (EXPERIMENTAL)" OFF)
|
|
+## Example use on the command line:
|
|
+## cmake -D ALLOW_FLEXIBLAS_LINUX=true .
|
|
+
|
|
option(ALLOW_OPENBLAS_MACOS "Allow detection of OpenBLAS on macOS" OFF)
|
|
## Example use on the command line:
|
|
## cmake -D ALLOW_OPENBLAS_MACOS=true .
|
|
@@ -171,6 +175,7 @@
|
|
message(STATUS "CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}" )
|
|
message(STATUS "BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}" )
|
|
message(STATUS "DETECT_HDF5 = ${DETECT_HDF5}" )
|
|
+message(STATUS "ALLOW_FLEXIBLAS_LINUX = ${ALLOW_FLEXIBLAS_LINUX}" )
|
|
message(STATUS "ALLOW_OPENBLAS_MACOS = ${ALLOW_OPENBLAS_MACOS}" )
|
|
message(STATUS "ALLOW_BLAS_LAPACK_MACOS = ${ALLOW_BLAS_LAPACK_MACOS}" )
|
|
message(STATUS "BUILD_SMOKE_TEST = ${BUILD_SMOKE_TEST}" )
|
|
@@ -259,15 +264,39 @@
|
|
include(ARMA_FindBLAS)
|
|
include(ARMA_FindLAPACK)
|
|
|
|
- message(STATUS " MKL_FOUND = ${MKL_FOUND}" )
|
|
- message(STATUS " ACMLMP_FOUND = ${ACMLMP_FOUND}" )
|
|
- message(STATUS " ACML_FOUND = ${ACML_FOUND}" )
|
|
- message(STATUS "OpenBLAS_FOUND = ${OpenBLAS_FOUND}")
|
|
- message(STATUS " ATLAS_FOUND = ${ATLAS_FOUND}" )
|
|
- message(STATUS " BLAS_FOUND = ${BLAS_FOUND}" )
|
|
- message(STATUS " LAPACK_FOUND = ${LAPACK_FOUND}" )
|
|
+ if(ALLOW_FLEXIBLAS_LINUX AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux"))
|
|
+ include(ARMA_FindFlexiBLAS)
|
|
+ endif()
|
|
+
|
|
+ message(STATUS " MKL_FOUND = ${MKL_FOUND}" )
|
|
+ message(STATUS " ACMLMP_FOUND = ${ACMLMP_FOUND}" )
|
|
+ message(STATUS " ACML_FOUND = ${ACML_FOUND}" )
|
|
+ message(STATUS " OpenBLAS_FOUND = ${OpenBLAS_FOUND}" )
|
|
+ message(STATUS " ATLAS_FOUND = ${ATLAS_FOUND}" )
|
|
+ message(STATUS " BLAS_FOUND = ${BLAS_FOUND}" )
|
|
+ message(STATUS " LAPACK_FOUND = ${LAPACK_FOUND}" )
|
|
|
|
- if(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND)
|
|
+ if(FlexiBLAS_FOUND)
|
|
+
|
|
+ message(STATUS "FlexiBLAS_FOUND = ${FlexiBLAS_FOUND}" )
|
|
+
|
|
+ set(ARMA_USE_LAPACK true)
|
|
+ set(ARMA_USE_BLAS true)
|
|
+
|
|
+ set(ARMA_LIBS ${ARMA_LIBS} ${FlexiBLAS_LIBRARIES})
|
|
+
|
|
+ message(STATUS "")
|
|
+ message(STATUS "*** Using FlexiBLAS to provide BLAS and LAPACK functions.")
|
|
+ message(STATUS "*** If using FlexiBLAS causes problems, please file a bug")
|
|
+ message(STATUS "*** report with the FlexiBLAS developers:")
|
|
+ message(STATUS "*** https://www.mpi-magdeburg.mpg.de/projects/flexiblas")
|
|
+ message(STATUS "")
|
|
+ message(STATUS "*** To disable detection of FlexiBLAS,")
|
|
+ message(STATUS "*** rerun cmake with FlexiBLAS detection disabled:")
|
|
+ message(STATUS "*** cmake -D ALLOW_FLEXIBLAS_LINUX=false .")
|
|
+ message(STATUS "")
|
|
+
|
|
+ elseif(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND)
|
|
|
|
set(ARMA_USE_LAPACK true)
|
|
set(ARMA_USE_BLAS true)
|