| # 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(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_VERSION_OK) | |
| mark_as_advanced(METIS_INCLUDES METIS_LIBRARIES) |