2
# @author Shin'ichiro Nakaoka
4
include(CheckFunctionExists)
6
if(NOT LAPACK_LIBRARY_DIRS)
13
if(NOT LAPACK_LIBRARY)
14
find_library(LAPACK_LIBRARY lapack)
18
get_filename_component(LAPACK_LIBRARY_DIRS ${LAPACK_LIBRARY} PATH)
19
message(STATUS "detected ${LAPACK_LIBRARY}")
24
if(NOT LAPACK_LIBRARIES AND LAPACK_LIBRARY_DIRS)
28
PATHS ${LAPACK_LIBRARY_DIRS}
34
PATHS ${LAPACK_LIBRARY_DIRS}
40
PATH ${LAPACK_LIBRARY_DIRS}
43
if(BLAS_LIBRARY AND LAPACK_LIBRARY)
44
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARY} ${LAPACK_LIBRARY})
49
PATH ${LAPACK_LIBRARY_DIRS}
53
list(APPEND LAPACK_LIBRARIES ${G2C_LIBRARY})
59
if(NOT LAPACK_INCLUDE_DIRS)
62
get_filename_component(BLAS_LIBRARY_DIR ${BLAS_LIBRARY} PATH)
63
string(REGEX REPLACE "/lib/?" "" BLAS_DIR ${BLAS_LIBRARY_DIR})
64
find_file(CBLAS_H_FILE cblas.h
65
PATHS ${BLAS_DIR}/include /usr/local/include /usr/include)
67
get_filename_component(BLAS_INCLUDE_DIR ${CBLAS_H_FILE} PATH)
68
list(APPEND LAPACK_INCLUDE_DIRS ${BLAS_INCLUDE_DIR})
73
get_filename_component(LAPACK_LIBRARY_DIR ${LAPACK_LIBRARY} PATH)
74
string(REGEX REPLACE "/lib/?" "" LAPACK_DIR ${LAPACK_LIBRARY_DIR})
75
find_file(CLAPACK_H_FILE clapack.h
76
PATHS ${LAPACK_DIR}/include /usr/local/include /usr/include)
78
get_filename_component(LAPACK_INCLUDE_DIR ${CLAPACK_H_FILE} PATH)
79
list(APPEND LAPACK_INCLUDE_DIRS ${LAPACK_INCLUDE_DIR})
87
set(LAPACK_FOUND TRUE)
89
set(CMAKE_REQUIRED_INCLUDES ${LAPACK_INCLUDE_DIRS})
90
set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
92
CHECK_FUNCTION_EXISTS(clapack_dgesv clapack_dgesv_found)
93
if(clapack_dgesv_found)
94
set(USE_CLAPACK_INTERFACE TRUE)
95
message(STATUS "use C interface for Lapack")
98
CHECK_FUNCTION_EXISTS(cblas_ddot cblas_ddot_found)
100
set(USE_CBLAS_INTERFACE TRUE)
101
message(STATUS "use c interaface for Blas")
106
set(LAPACK_INCLUDE_DIRS ${LAPACK_INCLUDE_DIRS} CACHE PATH "Directories containing Lapack header files")
107
set(LAPACK_LIBRARY_DIRS ${LAPACK_LIBRARY_DIRS} CACHE PATH "Directories containing Lapack library files")
108
set(LAPACK_LIBRARIES ${LAPACK_LIBRARIES} CACHE PATH "Lapack library files to link")
112
if(NOT Lapack_FIND_QUIETLY)
113
message(STATUS "Found ${LAPACK_LIBRARIES} in ${LAPACK_LIBRARY_DIRS}")
116
if(NOT Lapack_FIND_QUIETLY)
117
if(Lapack_FIND_REQUIRED)
118
message(FATAL_ERROR "Blas and Lapack required, please specify it's location.")