Skip to content
Snippets Groups Projects
Commit 3300c1cf authored by Christoph Grüninger's avatar Christoph Grüninger
Browse files

Merge branch 'feature/#5-use-spqr-only-for-suitesparse-4.3' into 'master'

[CMake] Check for SuiteSparse >= 4.3 for using SPQR

Fixes dune-istl#5

See merge request !78
parents f04ac18e 2a09d199
Branches
Tags
1 merge request!78[CMake] Check for SuiteSparse >= 4.3 for using SPQR
......@@ -182,6 +182,35 @@ foreach(_component ${SUITESPARSE_COMPONENTS})
${_component}_LIBRARY)
endforeach()
# check version, for SPQR we need at least SuiteSparse 4.3
if(SuiteSparse_SPQR_FOUND)
include(CheckCSourceCompiles)
include(CMakePushCheckState)
cmake_push_check_state()
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${SUITESPARSE_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${SUITESPARSE_LIBRARY})
# check whether version is at least 4.3
check_c_source_compiles("
#include <SuiteSparse_config.h>
int main(void)
{
#ifndef SUITESPARSE_HAS_VERSION_FUNCTION
#error SuiteSparse <= 4.2.0 too old, required version 4.3 or newer for SPQR.
#endif
#if SUITESPARSE_VERSION <= 4003
#error SuiteSparse too old, required version 4.3 or newer for SPQR.
#endif
return 0;
}"
SUITESPARSE_MIN_VERSION_4_3)
if(NOT SUITESPARSE_MIN_VERSION_4_3)
set(SuiteSparse_SPQR_FOUND FALSE)
set(HAVE_SUITESPARSE_SPQR FALSE)
endif()
cmake_pop_check_state()
endif()
list(APPEND SUITESPARSE_LIBRARY ${SUITESPARSE_CONFIG_LIB})
# make them unique
......@@ -210,6 +239,7 @@ mark_as_advanced(
SUITESPARSE_INCLUDE_DIR
SUITESPARSE_LIBRARY
SUITESPARSE_CONFIG_LIB
SUITESPARSE_MIN_VERSION_4_3
WILL_USE_CHOLMOD
WILL_USE_UMFPACK)
......
......@@ -132,7 +132,8 @@
/* Define to ENABLE_SUITESPARSE if the SuiteSparse's RBIO library is available */
#cmakedefine HAVE_SUITESPARSE_RBIO ENABLE_SUITESPARSE
/* Define to ENABLE_SUITESPARSE if the SuiteSparse's SPQR library is available */
/* Define to ENABLE_SUITESPARSE if the SuiteSparse's SPQR library is available
and if it's version is at least 4.3 */
#cmakedefine HAVE_SUITESPARSE_SPQR ENABLE_SUITESPARSE
/* Define to ENABLE_SUITESPARSE if the SuiteSparse's UMFPACK library is available */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment