| diff -urN pastix.orig/CMakeLists.txt pastix/CMakeLists.txt |
| --- pastix.orig/CMakeLists.txt 2021-04-19 20:21:34.300303200 +0200 |
| +++ pastix/CMakeLists.txt 2021-04-19 20:22:51.998513000 +0200 |
| @@ -138,7 +138,7 @@ |
| option(PASTIX_ORDERING_SCOTCH |
| "Enable Scotch Ordering" ON) |
| option(PASTIX_ORDERING_METIS |
| - "Enable Metis ordering" OFF) |
| + "Enable Metis ordering" OFF) |
| cmake_dependent_option(PASTIX_ORDERING_PTSCOTCH |
| "Activate the PT-scotch ordering (requires PASTIX_ORDERING_SCOTCH)" OFF |
| "PASTIX_WITH_MPI;PASTIX_ORDERING_SCOTCH" OFF) |
| @@ -348,7 +348,7 @@ |
| endif() |
| |
| if (PASTIX_ORDERING_SCOTCH) |
| - find_package(SCOTCH) |
| + find_package(SCOTCH REQUIRED) |
| |
| if (SCOTCH_FOUND) |
| cmake_dependent_option(PASTIX_ORDERING_SCOTCH_MT |
| @@ -368,7 +368,7 @@ |
| # PaStiX might depend on Metis/ParMetis |
| #-------------------------------------- |
| if (PASTIX_ORDERING_METIS) |
| - find_package(METIS) |
| + find_package(METIS REQUIRED) |
| |
| if (METIS_FOUND) |
| # Check coherency for integer size |
| diff -urN pastix.orig/cmake_modules/morse_cmake/modules/find/FindMETIS.cmake pastix/cmake_modules/morse_cmake/modules/find/FindMETIS.cmake |
| --- pastix.orig/cmake_modules/morse_cmake/modules/find/FindMETIS.cmake 2021-04-19 20:21:34.708067800 +0200 |
| +++ pastix/cmake_modules/morse_cmake/modules/find/FindMETIS.cmake 2021-04-19 20:26:47.109556000 +0200 |
| @@ -74,16 +74,14 @@ |
| # check a function to validate the find |
| if(METIS_LIBRARIES) |
| |
| - # check if static or dynamic lib |
| - morse_check_static_or_dynamic(METIS METIS_LIBRARIES) |
| - if(METIS_STATIC) |
| - set(STATIC "_STATIC") |
| - else() |
| - set(STATIC "") |
| + # Metis may depend on the M library and the static compilation does |
| + # not include the dependency, so we enforce it |
| + find_package(M QUIET) |
| + if ( M_FOUND ) |
| + set( METIS_LIBRARIES "${METIS_LIBRARIES};${M_LIBRARIES}" ) |
| endif() |
| |
| - # set required libraries for link |
| - morse_set_required_test_lib_link(METIS) |
| + morse_cmake_required_set(METIS) |
| |
| # test link |
| unset(METIS_WORKS CACHE) |
| @@ -100,9 +98,7 @@ |
| message(STATUS "Check in CMakeFiles/CMakeError.log to figure out why it fails") |
| endif() |
| endif() |
| - set(CMAKE_REQUIRED_INCLUDES) |
| - set(CMAKE_REQUIRED_FLAGS) |
| - set(CMAKE_REQUIRED_LIBRARIES) |
| + morse_cmake_required_unset() |
| |
| list(GET METIS_LIBRARIES 0 first_lib) |
| get_filename_component(first_lib_path "${first_lib}" DIRECTORY) |
| @@ -120,13 +116,15 @@ |
| |
| endif(METIS_LIBRARIES) |
| |
| -# Check the size of METIS_Idx |
| -# --------------------------------- |
| -set(CMAKE_REQUIRED_INCLUDES ${METIS_INCLUDE_DIRS}) |
| |
| -include(CheckCSourceRuns) |
| -#stdio.h and stdint.h should be included by metis.h directly |
| -set(METIS_C_TEST_METIS_Idx_4 " |
| +if (METIS_WORKS) |
| + morse_cmake_required_set(METIS) |
| + |
| + # Check the size of METIS_Idx |
| + # --------------------------------- |
| + include(CheckCSourceRuns) |
| + #stdio.h and stdint.h should be included by metis.h directly |
| + set(METIS_C_TEST_METIS_Idx_4 " |
| #include <stdio.h> |
| #include <stdint.h> |
| #include <metis.h> |
| @@ -138,7 +136,7 @@ |
| } |
| ") |
| |
| -set(METIS_C_TEST_METIS_Idx_8 " |
| + set(METIS_C_TEST_METIS_Idx_8 " |
| #include <stdio.h> |
| #include <stdint.h> |
| #include <metis.h> |
| @@ -149,20 +147,22 @@ |
| return 1; |
| } |
| ") |
| -unset(METIS_Idx_4 CACHE) |
| -unset(METIS_Idx_8 CACHE) |
| -check_c_source_runs("${METIS_C_TEST_METIS_Idx_4}" METIS_Idx_4) |
| -check_c_source_runs("${METIS_C_TEST_METIS_Idx_8}" METIS_Idx_8) |
| -if(NOT METIS_Idx_4) |
| - if(NOT METIS_Idx_8) |
| - set(METIS_INTSIZE -1) |
| + unset(METIS_Idx_4 CACHE) |
| + unset(METIS_Idx_8 CACHE) |
| + check_c_source_runs("${METIS_C_TEST_METIS_Idx_4}" METIS_Idx_4) |
| + check_c_source_runs("${METIS_C_TEST_METIS_Idx_8}" METIS_Idx_8) |
| + if(NOT METIS_Idx_4) |
| + if(NOT METIS_Idx_8) |
| + set(METIS_INTSIZE -1) |
| + else() |
| + set(METIS_INTSIZE 8) |
| + endif() |
| else() |
| - set(METIS_INTSIZE 8) |
| + set(METIS_INTSIZE 4) |
| endif() |
| -else() |
| - set(METIS_INTSIZE 4) |
| + |
| + morse_cmake_required_unset() |
| endif() |
| -set(CMAKE_REQUIRED_INCLUDES "") |
| |
| # check that METIS has been found |
| # --------------------------------- |