|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (SUPERLU_INCLUDES AND SUPERLU_LIBRARIES) |
|
|
set(SUPERLU_FIND_QUIETLY TRUE) |
|
|
endif (SUPERLU_INCLUDES AND SUPERLU_LIBRARIES) |
|
|
|
|
|
find_path(SUPERLU_INCLUDES |
|
|
NAMES |
|
|
supermatrix.h |
|
|
PATHS |
|
|
$ENV{SUPERLUDIR} |
|
|
${INCLUDE_INSTALL_DIR} |
|
|
PATH_SUFFIXES |
|
|
superlu |
|
|
SRC |
|
|
) |
|
|
|
|
|
find_library(SUPERLU_LIBRARIES |
|
|
NAMES "superlu_5.2.1" "superlu_5.2" "superlu_5.1.1" "superlu_5.1" "superlu_5.0" "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_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) |
|
|
|
|
|
check_cxx_source_compiles(" |
|
|
typedef int int_t; |
|
|
#include <supermatrix.h> |
|
|
#include <slu_util.h> |
|
|
int main(void) |
|
|
{ |
|
|
GlobalLU_t glu; |
|
|
return 0; |
|
|
}" |
|
|
SUPERLU_HAS_GLOBALLU_T) |
|
|
|
|
|
if(SUPERLU_HAS_GLOBALLU_T) |
|
|
|
|
|
set(SUPERLU_VERSION_VAR "5.0") |
|
|
elseif(SUPERLU_HAS_CLEAN_ENUMS) |
|
|
|
|
|
set(SUPERLU_VERSION_VAR "4.3") |
|
|
elseif(SUPERLU_HAS_GLOBAL_MEM_USAGE_T) |
|
|
|
|
|
set(SUPERLU_VERSION_VAR "4.0") |
|
|
else() |
|
|
set(SUPERLU_VERSION_VAR "3.0") |
|
|
endif() |
|
|
|
|
|
cmake_pop_check_state() |
|
|
|
|
|
if(SuperLU_FIND_VERSION) |
|
|
if(${SUPERLU_VERSION_VAR} VERSION_LESS ${SuperLU_FIND_VERSION}) |
|
|
set(SUPERLU_VERSION_OK FALSE) |
|
|
else() |
|
|
set(SUPERLU_VERSION_OK TRUE) |
|
|
endif() |
|
|
else() |
|
|
set(SUPERLU_VERSION_OK TRUE) |
|
|
endif() |
|
|
|
|
|
endif() |
|
|
|
|
|
include(FindPackageHandleStandardArgs) |
|
|
find_package_handle_standard_args(SUPERLU |
|
|
REQUIRED_VARS SUPERLU_INCLUDES SUPERLU_LIBRARIES SUPERLU_VERSION_OK |
|
|
VERSION_VAR SUPERLU_VERSION_VAR) |
|
|
|
|
|
mark_as_advanced(SUPERLU_INCLUDES SUPERLU_LIBRARIES) |
|
|
|