mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-13 01:43:13 +08:00
Extend superlu cmake script to check version
This commit is contained in:
parent
afa11d646d
commit
6fcd316f23
@ -29,7 +29,7 @@ if(UMFPACK_FOUND AND BLAS_FOUND)
|
|||||||
set(UMFPACK_ALL_LIBS ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES})
|
set(UMFPACK_ALL_LIBS ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(SuperLU)
|
find_package(SuperLU 4.0)
|
||||||
if(SUPERLU_FOUND AND BLAS_FOUND)
|
if(SUPERLU_FOUND AND BLAS_FOUND)
|
||||||
add_definitions("-DEIGEN_SUPERLU_SUPPORT")
|
add_definitions("-DEIGEN_SUPERLU_SUPPORT")
|
||||||
include_directories(${SUPERLU_INCLUDES})
|
include_directories(${SUPERLU_INCLUDES})
|
||||||
|
@ -17,10 +17,54 @@ find_path(SUPERLU_INCLUDES
|
|||||||
SRC
|
SRC
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library(SUPERLU_LIBRARIES superlu PATHS $ENV{SUPERLUDIR} ${LIB_INSTALL_DIR} PATH_SUFFIXES lib)
|
find_library(SUPERLU_LIBRARIES NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu" PATHS $ENV{SUPERLUDIR} ${LIB_INSTALL_DIR} PATH_SUFFIXES lib)
|
||||||
|
|
||||||
|
if(SUPERLU_INCLUDES AND SUPERLU_LIBRARIES)
|
||||||
|
|
||||||
|
include(CheckCXXSourceCompiles)
|
||||||
|
include(CMakePushCheckState)
|
||||||
|
cmake_push_check_state()
|
||||||
|
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${SUPERLU_INCLUDES})
|
||||||
|
|
||||||
|
# check whether struct mem_usage_t is globally defined
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
typedef int int_t;
|
||||||
|
#include <supermatrix.h>
|
||||||
|
#include <slu_util.h>
|
||||||
|
int main() {
|
||||||
|
mem_usage_t mem;
|
||||||
|
return 0;
|
||||||
|
}"
|
||||||
|
SUPERLU_HAS_GLOBAL_MEM_USAGE_T)
|
||||||
|
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
typedef int int_t;
|
||||||
|
#include <supermatrix.h>
|
||||||
|
#include <superlu_enum_consts.h>
|
||||||
|
int main() {
|
||||||
|
return SLU_SINGLE;
|
||||||
|
}"
|
||||||
|
SUPERLU_HAS_CLEAN_ENUMS)
|
||||||
|
|
||||||
|
if(SUPERLU_HAS_CLEAN_ENUMS)
|
||||||
|
# at least 4.3
|
||||||
|
set(SUPERLU_VERSION_VAR "4.3")
|
||||||
|
elseif(SUPERLU_HAS_GLOBAL_MEM_USAGE_T)
|
||||||
|
# at least 4.3
|
||||||
|
set(SUPERLU_VERSION_VAR "4.0")
|
||||||
|
else()
|
||||||
|
set(SUPERLU_VERSION_VAR "3.0")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
cmake_pop_check_state()
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(SUPERLU DEFAULT_MSG
|
find_package_handle_standard_args(SUPERLU
|
||||||
SUPERLU_INCLUDES SUPERLU_LIBRARIES)
|
REQUIRED_VARS SUPERLU_INCLUDES SUPERLU_LIBRARIES
|
||||||
|
VERSION_VAR SUPERLU_VERSION_VAR)
|
||||||
|
|
||||||
mark_as_advanced(SUPERLU_INCLUDES SUPERLU_LIBRARIES)
|
mark_as_advanced(SUPERLU_INCLUDES SUPERLU_LIBRARIES)
|
||||||
|
@ -68,7 +68,7 @@ else()
|
|||||||
ei_add_property(EIGEN_MISSING_BACKENDS "UmfPack, ")
|
ei_add_property(EIGEN_MISSING_BACKENDS "UmfPack, ")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(SuperLU)
|
find_package(SuperLU 4.0)
|
||||||
if(SUPERLU_FOUND)
|
if(SUPERLU_FOUND)
|
||||||
add_definitions("-DEIGEN_SUPERLU_SUPPORT")
|
add_definitions("-DEIGEN_SUPERLU_SUPPORT")
|
||||||
include_directories(${SUPERLU_INCLUDES})
|
include_directories(${SUPERLU_INCLUDES})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user