From ae629d9b424dfbe82de723f75da942673cb06dff Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Fri, 8 Nov 2013 14:01:29 +0000 Subject: [PATCH] better fix for petsc 3.4 --- CMakeLists.txt | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cb575640b..e6791f01cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -869,19 +869,25 @@ if(HAVE_SOLVER) # old-style PETSc installations (using PETSC_DIR and PETSC_ARCH) message(STATUS "Using PETSc dir: ${ENV_PETSC_DIR}") message(STATUS "Using PETSc arch: ${ENV_PETSC_ARCH}") + # find includes by parsing the petscvariables file file(STRINGS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables PETSC_VARIABLES NEWLINE_CONSUME) - # find include directories - list(APPEND EXTERNAL_INCLUDES ${ENV_PETSC_DIR}/include) - #if(NOT HAVE_MPI) # necessary for PETSC >= 3.4 - # list(APPEND EXTERNAL_INCLUDES ${ENV_PETSC_DIR}/include/mpiuni) - #endif(NOT HAVE_MPI) - list(APPEND EXTERNAL_INCLUDES ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/include) - string(REGEX MATCH "PACKAGES_INCLUDES = [^\n\r]*" PETSC_PACKAGES_INCLUDES + # try to find PETSC_CC_INCLUDES for PETSc >= 3.4 + string(REGEX MATCH "PETSC_CC_INCLUDES = [^\n\r]*" PETSC_PACKAGES_INCLUDES ${PETSC_VARIABLES}) if(PETSC_PACKAGES_INCLUDES) + string(REPLACE "PETSC_CC_INCLUDES = " "" PETSC_PACKAGES_INCLUDES + ${PETSC_PACKAGES_INCLUDES}) + else(PETSC_PACKAGES_INCLUDES) + # try to find PETSC_PACKAGES_INCLUDES in older versions + list(APPEND EXTERNAL_INCLUDES ${ENV_PETSC_DIR}/include) + list(APPEND EXTERNAL_INCLUDES ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/include) + string(REGEX MATCH "PACKAGES_INCLUDES = [^\n\r]*" PETSC_PACKAGES_INCLUDES + ${PETSC_VARIABLES}) string(REPLACE "PACKAGES_INCLUDES = " "" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) + endif(PETSC_PACKAGES_INCLUDES) + if(PETSC_PACKAGES_INCLUDES) if(PETSC_PACKAGES_INCLUDES) string(REPLACE "-I" "" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) string(REPLACE " " ";" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) -- GitLab