From: David Wells Date: Wed, 24 Aug 2022 19:35:42 +0000 (-0400) Subject: Fix PETSc version detection. X-Git-Tag: v9.5.0-rc1~1002^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F14215%2Fhead;p=dealii.git Fix PETSc version detection. New versions of PETSc now define PETSC_VERSION_LT etc. in one line, so our detection of PETSC_VERSION_MAJOR will now also pick up that usage. Get around this by making the regex more correct. --- diff --git a/cmake/modules/FindPETSC.cmake b/cmake/modules/FindPETSC.cmake index 95643882ac..ea13227625 100644 --- a/cmake/modules/FindPETSC.cmake +++ b/cmake/modules/FindPETSC.cmake @@ -95,23 +95,23 @@ DEAL_II_FIND_PATH(PETSC_INCLUDE_DIR_COMMON petscversion.h SET(PETSC_PETSCVERSION_H "${PETSC_INCLUDE_DIR_COMMON}/petscversion.h") IF(EXISTS ${PETSC_PETSCVERSION_H}) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_MAJOR_STRING - REGEX "#define.*PETSC_VERSION_MAJOR") - STRING(REGEX REPLACE "^.*PETSC_VERSION_MAJOR.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_MAJOR[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_MAJOR[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_MAJOR "${PETSC_VERSION_MAJOR_STRING}" ) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_MINOR_STRING - REGEX "#define.*PETSC_VERSION_MINOR") - STRING(REGEX REPLACE "^.*PETSC_VERSION_MINOR.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_MINOR[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_MINOR[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_MINOR "${PETSC_VERSION_MINOR_STRING}" ) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_SUBMINOR_STRING - REGEX "#define.*PETSC_VERSION_SUBMINOR") - STRING(REGEX REPLACE "^.*PETSC_VERSION_SUBMINOR.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_SUBMINOR[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_SUBMINOR[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_SUBMINOR "${PETSC_VERSION_SUBMINOR_STRING}" ) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_PATCH_STRING - REGEX "#define.*PETSC_VERSION_PATCH") - STRING(REGEX REPLACE "^.*PETSC_VERSION_PATCH.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_PATCH[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_PATCH[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_PATCH "${PETSC_VERSION_PATCH_STRING}" ) SET(PETSC_VERSION