Disactivate Metis when IPK/LPK size differs from METIS_REAL size

pull/28/head
Luca Pepè Sciarria 1 year ago
parent 1629d97107
commit 17e4965d4d

@ -400,11 +400,6 @@ if(METIS_FOUND)
set(HEADER_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/util/psb_metis_int.h.in") set(HEADER_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/util/psb_metis_int.h.in")
set(HEADER_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/psb_metis_int.h") set(HEADER_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/psb_metis_int.h")
# Configure the header file
configure_file(${HEADER_TEMPLATE} ${HEADER_OUTPUT} @ONLY)
# Check for real sizes using try_compile # Check for real sizes using try_compile
include(CheckCSourceCompiles) include(CheckCSourceCompiles)
@ -433,11 +428,11 @@ if(METIS_FOUND)
string(STRIP "${type_size}" type_size) string(STRIP "${type_size}" type_size)
if (type_name STREQUAL "float") if (type_name STREQUAL "float")
set(PSB_METIS_REAL_32 "${type_size}" PARENT_SCOPE) set(PSB_METIS_REAL_32 "${type_size}" PARENT_SCOPE)
add_definitions(-DPSB_METIS_REAL_32) # add_definitions(-DPSB_METIS_REAL_32)
set(CREALMETIS "#define PSB_METIS_REAL_32" PARENT_SCOPE) set(CREALMETIS "#define PSB_METIS_REAL_32" PARENT_SCOPE)
elseif (type_name STREQUAL "double") elseif (type_name STREQUAL "double")
set(PSB_METIS_REAL_64 "${type_size}" PARENT_SCOPE) set(PSB_METIS_REAL_64 "${type_size}" PARENT_SCOPE)
add_definitions(-DPSB_METIS_REAL_64) #add_definitions(-DPSB_METIS_REAL_64)
set(CREALMETIS "#define PSB_METIS_REAL_64" PARENT_SCOPE) set(CREALMETIS "#define PSB_METIS_REAL_64" PARENT_SCOPE)
endif() endif()
else() else()
@ -449,9 +444,6 @@ if(METIS_FOUND)
check_metis_real_type(float) check_metis_real_type(float)
check_metis_real_type(double) check_metis_real_type(double)
# Set HAVE_METIS if METIS is found
#add_compile_options(-DPSB_HAVE_METIS)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_HAVE_METIS")
@ -473,6 +465,7 @@ if(METIS_FOUND)
if(METIS_INDEX STREQUAL "64") if(METIS_INDEX STREQUAL "64")
# Mismatch between METIS size and PSBLAS LPK # Mismatch between METIS size and PSBLAS LPK
message(FATAL " Mismatch between metis ${METIS_INDEX} size and psblas LPK size ${LPK_SIZE}") message(FATAL " Mismatch between metis ${METIS_INDEX} size and psblas LPK size ${LPK_SIZE}")
set(METIS_FOUND FALSE)
endif() endif()
endif() endif()
@ -480,13 +473,21 @@ if(METIS_FOUND)
if(METIS_INDEX STREQUAL "32") if(METIS_INDEX STREQUAL "32")
# Mismatch between METIS size and PSBLAS LPK # Mismatch between METIS size and PSBLAS LPK
message(FATAL " Mismatch between metis ${METIS_INDEX} size and psblas LPK size ${LPK_SIZE}") message(FATAL " Mismatch between metis ${METIS_INDEX} size and psblas LPK size ${LPK_SIZE}")
set(METIS_FOUND FALSE)
endif() endif()
endif() endif()
if(METIS_FOUND)
set(CHAVEMETIS "#define PSB_HAVE_METIS") set(CHAVEMETIS "#define PSB_HAVE_METIS")
set(CINTMETIS "#define PSB_METIS_${METIS_INDEX}") set(CINTMETIS "#define PSB_METIS_${METIS_INDEX}")
# set(CREALMETIS "#define PSB_METIS_REAL_${LPK_SIZE}") # set(CREALMETIS "#define PSB_METIS_REAL_${LPK_SIZE}")
# Configure the header file
configure_file(${HEADER_TEMPLATE} ${HEADER_OUTPUT} @ONLY)
# Set HAVE_METIS if METIS is found
#add_compile_options(-DPSB_HAVE_METIS)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_HAVE_METIS")
endif()
endif() endif()

Loading…
Cancel
Save