Skip to content

Commit 4b5512a

Browse files
committed
Drop LAPACK requirement and let Suitesparse use OpenBLAS
1 parent 8b7964c commit 4b5512a

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

CMake/External_SuiteSparse.cmake

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,31 @@ if (BUILD_CXSPARSE_ONLY)
2929
)
3030

3131
elseif (NOT WIN32 AND NOT BUILD_CXSPARSE_ONLY)
32-
33-
find_package(LAPACK)
32+
find_package(LAPACK QUIET)
3433
if (NOT LAPACK_FOUND)
35-
list (APPEND MISSING_DEPS "lapack")
36-
endif()
37-
38-
find_package(BLAS)
39-
if (NOT BLAS_FOUND)
40-
add_package_dependency(
41-
PACKAGE SuiteSparse
42-
PACKAGE_DEPENDENCY OpenBLAS
43-
PACKAGE_DEPENDENCY_ALIAS OpenBLAS
44-
)
34+
if(fletch_ENABLE_OpenBLAS)
35+
# If we are building OpenBLAS, make sure we have a fortran compiler.
36+
enable_language(Fortran)
37+
add_package_dependency(
38+
PACKAGE SuiteSparse
39+
PACKAGE_DEPENDENCY OpenBLAS
40+
PACKAGE_DEPENDENCY_ALIAS OpenBLAS
41+
)
42+
get_system_library_name(openblas openblas_libname)
43+
set(BLAS_LIBRARIES ${fletch_BUILD_INSTALL_PREFIX}/lib/${openblas_libname})
44+
set(env ${CMAKE_COMMAND} -E env)
45+
message("env = ${env}")
46+
set(env_var LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${fletch_BUILD_INSTALL_PREFIX}/lib)
47+
message("env_var = ${env_var}")
48+
set(ENV_CMD ${env} ${env_var})
49+
50+
else()
51+
find_package(BLAS QUIET)
52+
if (NOT BLAS_FOUND)
53+
message(FATAL_ERROR "Building SuiteSparse requires LAPACK or BLAS. \
54+
Please install or enable OpenBLAS in the Fletch CMake config.")
55+
endif()
56+
endif()
4557
endif()
4658

4759
if (MISSING_DEPS)
@@ -89,7 +101,7 @@ elseif (NOT WIN32 AND NOT BUILD_CXSPARSE_ONLY)
89101
-P ${fletch_SOURCE_DIR}/Patches/SuiteSparse/Patch.cmake
90102

91103
CONFIGURE_COMMAND ""
92-
BUILD_COMMAND ${MAKE_EXECUTABLE} -j1
104+
BUILD_COMMAND ${ENV_CMD} ${MAKE_EXECUTABLE} -j1
93105
INSTALL_COMMAND ${MAKE_EXECUTABLE} install
94106
)
95107

0 commit comments

Comments
 (0)