12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
-
- # Umfpack lib usually requires linking to a blas library.
- # It is up to the user of this module to find a BLAS and link to it.
-
- 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 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)
-
- 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)
- # at least 5.0
- set(SUPERLU_VERSION_VAR "5.0")
- elseif(SUPERLU_HAS_CLEAN_ENUMS)
- # at least 4.3
- set(SUPERLU_VERSION_VAR "4.3")
- elseif(SUPERLU_HAS_GLOBAL_MEM_USAGE_T)
- # at least 4.0
- 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)
|