| # Pastix requires METIS or METIS (partitioning and reordering tools) |
| |
| if (METIS_INCLUDES AND METIS_LIBRARIES) |
| set(METIS_FIND_QUIETLY TRUE) |
| endif (METIS_INCLUDES AND METIS_LIBRARIES) |
| |
| find_path(METIS_INCLUDES |
| NAMES |
| metis.h |
| PATHS |
| $ENV{METISDIR} |
| ${INCLUDE_INSTALL_DIR} |
| 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(STATUS "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_VERSION_OK) |
| |
| mark_as_advanced(METIS_INCLUDES METIS_LIBRARIES) |