You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
armadillo/armadillo-flexiblas.patch

123 lines
4.6 KiB

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)