From 0d38955a2d01e36f0c5318964230d7230e65ed68 Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 7 Apr 2026 16:23:32 +0200 Subject: [PATCH] Fix generation of amg_config.h with CMAKE --- CMakeLists.txt | 7 +++++++ cmake/readAMGConst.cmake | 14 ++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 cmake/readAMGConst.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c53de8f..3c55fb11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -305,6 +305,13 @@ if(MPI_FOUND) #include_directories("${MPI_INCLUDE_DIR}") endif() +# Find AMG constants +include(${CMAKE_CURRENT_LIST_DIR}/cmake/readAMGConst.cmake) +_amg_read_const() + +if ("${PSB_LPK_SIZE}" EQUAL 8) + set(CXXMATCHBOXBIT "#define AMG_MATCHBOXP_BIT64") +endif() #------------------------------------------ diff --git a/cmake/readAMGConst.cmake b/cmake/readAMGConst.cmake new file mode 100644 index 00000000..2c60716f --- /dev/null +++ b/cmake/readAMGConst.cmake @@ -0,0 +1,14 @@ + +macro(_amg_read_const) +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/amgprec/amg_base_prec_type.F90" _amg_const_mod) +string(REGEX MATCH "amg_version_major_[ \t]+=[ \t]+([0-9]+)" _amg_version_major_match "${_amg_const_mod}") +set(AMGMAJOR "${CMAKE_MATCH_1}") +string(REGEX MATCH "amg_version_minor_[ \t]+=[ \t]+([0-9]+)" _amg_version_minor_match "${_amg_const_mod}") +set(AMGMINOR "${CMAKE_MATCH_1}") +string(REGEX MATCH "amg_patchlevel_[ \t]+=[ \t]+([0-9]+)" _amg_patchlevel_match "${_amg_const_mod}") +set(AMGPATCH "${CMAKE_MATCH_1}") +string(REGEX MATCH "amg_version_string_[ \t]+=[ \t]+([^ \t]+)" _amg_version_string_match "${_amg_const_mod}") +set(AMGSTRING "${CMAKE_MATCH_1}") + +endmacro(_amg_read_const) +