aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmake/FindCholmod.cmake2
-rw-r--r--cmake/FindFFTW.cmake2
-rw-r--r--cmake/FindMetis.cmake38
-rw-r--r--test/CMakeLists.txt3
4 files changed, 40 insertions, 5 deletions
diff --git a/cmake/FindCholmod.cmake b/cmake/FindCholmod.cmake
index 7b3046d45..23239c300 100644
--- a/cmake/FindCholmod.cmake
+++ b/cmake/FindCholmod.cmake
@@ -86,4 +86,4 @@ include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CHOLMOD DEFAULT_MSG
CHOLMOD_INCLUDES CHOLMOD_LIBRARIES)
-mark_as_advanced(CHOLMOD_INCLUDES CHOLMOD_LIBRARIES AMD_LIBRARY COLAMD_LIBRARY SUITESPARSE_LIBRARY)
+mark_as_advanced(CHOLMOD_INCLUDES CHOLMOD_LIBRARIES AMD_LIBRARY COLAMD_LIBRARY SUITESPARSE_LIBRARY CAMD_LIBRARY CCOLAMD_LIBRARY CHOLMOD_METIS_LIBRARY)
diff --git a/cmake/FindFFTW.cmake b/cmake/FindFFTW.cmake
index a9e9925e7..6c4dc9ab4 100644
--- a/cmake/FindFFTW.cmake
+++ b/cmake/FindFFTW.cmake
@@ -115,5 +115,5 @@ include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(FFTW DEFAULT_MSG
FFTW_INCLUDES FFTW_LIBRARIES)
-mark_as_advanced(FFTW_INCLUDES FFTW_LIBRARIES)
+mark_as_advanced(FFTW_INCLUDES FFTW_LIBRARIES FFTW_LIB FFTWF_LIB FFTWL_LIB)
diff --git a/cmake/FindMetis.cmake b/cmake/FindMetis.cmake
index 627c3e9ae..e0040d320 100644
--- a/cmake/FindMetis.cmake
+++ b/cmake/FindMetis.cmake
@@ -10,16 +10,50 @@ find_path(METIS_INCLUDES
PATHS
$ENV{METISDIR}
${INCLUDE_INSTALL_DIR}
- PATH_SUFFIXES
+ PATH_SUFFIXES
+ .
metis
include
)
+macro(_metis_check_version)
+ file(READ "${METIS_INCLUDES}/metis.h" _metis_version_header)
+
+ string(REGEX MATCH "define[ \t]+METIS_VER_MAJOR[ \t]+([0-9]+)" _metis_major_version_match "${_metis_version_header}")
+ set(METIS_MAJOR_VERSION "${CMAKE_MATCH_1}")
+ string(REGEX MATCH "define[ \t]+METIS_VER_MINOR[ \t]+([0-9]+)" _metis_minor_version_match "${_metis_version_header}")
+ set(METIS_MINOR_VERSION "${CMAKE_MATCH_1}")
+ string(REGEX MATCH "define[ \t]+METIS_VER_SUBMINOR[ \t]+([0-9]+)" _metis_subminor_version_match "${_metis_version_header}")
+ set(METIS_SUBMINOR_VERSION "${CMAKE_MATCH_1}")
+ if(NOT METIS_MAJOR_VERSION)
+ message(WARNING "Could not determine Metis version. Assuming version 4.0.0")
+ set(METIS_VERSION 4.0.0)
+ else()
+ set(METIS_VERSION ${METIS_MAJOR_VERSION}.${METIS_MINOR_VERSION}.${METIS_SUBMINOR_VERSION})
+ endif()
+ if(${METIS_VERSION} VERSION_LESS ${Metis_FIND_VERSION})
+ set(METIS_VERSION_OK FALSE)
+ else()
+ set(METIS_VERSION_OK TRUE)
+ endif()
+
+ if(NOT METIS_VERSION_OK)
+ message(STATUS "Metis version ${METIS_VERSION} found in ${METIS_INCLUDES}, "
+ "but at least version ${Metis_FIND_VERSION} is required")
+ endif(NOT METIS_VERSION_OK)
+endmacro(_metis_check_version)
+
+ if(METIS_INCLUDES AND Metis_FIND_VERSION)
+ _metis_check_version()
+ else()
+ set(METIS_VERSION_OK TRUE)
+ endif()
+
find_library(METIS_LIBRARIES metis PATHS $ENV{METISDIR} ${LIB_INSTALL_DIR} PATH_SUFFIXES lib)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(METIS DEFAULT_MSG
- METIS_INCLUDES METIS_LIBRARIES)
+ METIS_INCLUDES METIS_LIBRARIES METIS_VERSION_OK)
mark_as_advanced(METIS_INCLUDES METIS_LIBRARIES)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 62c9c78a6..4521d07e4 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -82,7 +82,7 @@ endif()
find_package(Pastix)
find_package(Scotch)
-find_package(Metis)
+find_package(Metis 5.0 REQUIRED)
if(PASTIX_FOUND)
add_definitions("-DEIGEN_PASTIX_SUPPORT")
include_directories(${PASTIX_INCLUDES})
@@ -299,6 +299,7 @@ ei_add_property(EIGEN_TESTING_SUMMARY "CXX_FLAGS: ${CMAKE_CXX_FLAGS}\n")
ei_add_property(EIGEN_TESTING_SUMMARY "Sparse lib flags: ${SPARSE_LIBS}\n")
option(EIGEN_TEST_EIGEN2 "Run whole Eigen2 test suite against EIGEN2_SUPPORT" OFF)
+mark_as_advanced(EIGEN_TEST_EIGEN2)
if(EIGEN_TEST_EIGEN2)
message(WARNING "The Eigen2 test suite has been removed")
endif()