Skip to content
Snippets Groups Projects
Commit 6ebe6222 authored by Jonathan Lambrechts's avatar Jonathan Lambrechts
Browse files

CMakeList : find petsc (and slepc) without PETSC_ARCH/PETS_DIR

(SLEPC_ARCH SLEPC_DIR) when symlinks exist in standard path
(e.g /usr/lib/libpetsc.so /usr/include/petsc/petsc.h). This is the case
for debian/ubuntu pacakages.
parent 8abb6e9b
No related branches found
No related tags found
No related merge requests found
...@@ -621,12 +621,6 @@ endif(ENABLE_TAUCS) ...@@ -621,12 +621,6 @@ endif(ENABLE_TAUCS)
if(ENABLE_PETSC) if(ENABLE_PETSC)
set(ENV_PETSC_DIR $ENV{PETSC_DIR}) set(ENV_PETSC_DIR $ENV{PETSC_DIR})
set(ENV_PETSC_ARCH $ENV{PETSC_ARCH}) set(ENV_PETSC_ARCH $ENV{PETSC_ARCH})
if(NOT ENV_PETSC_DIR)
message("WARNING: Export PETSC_DIR before calling cmake")
endif(NOT ENV_PETSC_DIR)
if(NOT ENV_PETSC_ARCH)
message("WARNING: Export PETSC_ARCH before calling cmake")
endif(NOT ENV_PETSC_ARCH)
if(EXISTS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables) if(EXISTS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables)
set_config_option(HAVE_PETSC "PETSc") set_config_option(HAVE_PETSC "PETSc")
file(STRINGS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables file(STRINGS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables
...@@ -653,22 +647,8 @@ if(ENABLE_PETSC) ...@@ -653,22 +647,8 @@ if(ENABLE_PETSC)
${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib "") ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib "")
# petsc 3.1 creates only one library (libpetsc) # petsc 3.1 creates only one library (libpetsc)
if(NOT PETSC_LIBS) if(NOT PETSC_LIBS)
find_library(PETSC_LIBS petsc PATHS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib) find_library(PETSC_LIBS petsc PATHS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib PATH_SUFFIXES)
endif(NOT PETSC_LIBS) endif(NOT PETSC_LIBS)
# find slepc
if(ENABLE_SLEPC)
set(ENV_SLEPC_DIR $ENV{SLEPC_DIR})
if(NOT ENV_SLEPC_DIR)
message("WARNING: Export SLEPC_DIR before calling cmake")
endif(NOT ENV_SLEPC_DIR)
find_library(SLEPC_LIB slepc PATHS ${ENV_SLEPC_DIR}/${ENV_PETSC_ARCH}/lib)
if(SLEPC_LIB)
set_config_option(HAVE_SLEPC "SLEPc")
list(APPEND EXTERNAL_LIBRARIES ${SLEPC_LIB})
list(APPEND EXTERNAL_INCLUDES ${ENV_SLEPC_DIR}/include
${ENV_SLEPC_DIR}/${ENV_PETSC_ARCH}/include)
endif(SLEPC_LIB)
endif(ENABLE_SLEPC)
list(APPEND EXTERNAL_LIBRARIES ${PETSC_LIBS}) list(APPEND EXTERNAL_LIBRARIES ${PETSC_LIBS})
# find additional libraries to link with # find additional libraries to link with
string(REGEX MATCH "PACKAGES_LIBS = [^\n\r]*" PLIBS ${PETSC_VARIABLES}) string(REGEX MATCH "PACKAGES_LIBS = [^\n\r]*" PLIBS ${PETSC_VARIABLES})
...@@ -683,8 +663,38 @@ if(ENABLE_PETSC) ...@@ -683,8 +663,38 @@ if(ENABLE_PETSC)
string(STRIP ${LLIBS} LLIBS) string(STRIP ${LLIBS} LLIBS)
list(APPEND EXTERNAL_LIBRARIES "${LLIBS}") list(APPEND EXTERNAL_LIBRARIES "${LLIBS}")
endif(LLIBS) endif(LLIBS)
else(EXISTS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables)
find_library(PETSC_LIBS petsc)
find_path(PETSC_INC "petsc.h" PATH_SUFFIXES include/petsc)
if(PETSC_LIBS AND PETSC_INC)
set_config_option(HAVE_PETSC "PETSc")
list(APPEND EXTERNAL_LIBRARIES ${PETSC_LIBS})
list(APPEND EXTERNAL_INCLUDES ${PETSC_INC})
endif(PETSC_LIBS AND PETSC_INC)
endif(EXISTS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables) endif(EXISTS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables)
if(NOT HAVE_PETSC AND NOT ENV_PETSC_DIR)
message("WARNING: Export PETSC_DIR before calling cmake")
endif(NOT HAVE_PETSC AND NOT ENV_PETSC_DIR)
if(NOT HAVE_PETSC AND NOT ENV_PETSC_ARCH)
message("WARNING: Export PETSC_ARCH before calling cmake")
endif(NOT HAVE_PETSC AND NOT ENV_PETSC_ARCH)
endif(ENABLE_PETSC) endif(ENABLE_PETSC)
# find slepc
if(ENABLE_SLEPC AND HAVE_PETSC)
set(ENV_SLEPC_DIR $ENV{SLEPC_DIR})
find_library(SLEPC_LIB slepc PATHS ${ENV_SLEPC_DIR}/${ENV_PETSC_ARCH}/lib)
if(SLEPC_LIB)
find_path(SLPEC_INC "slepc.h" PATHS ${ENV_SLEPC_DIR}/${ENV_SLEPC_ARCH} PATH_SUFFIXES include include/slepc)
if(SLEPC_INC)
set_config_option(HAVE_SLEPC "SLEPc")
list(APPEND EXTERNAL_LIBRARIES ${SLEPC_LIB})
list(APPEND EXTERNAL_INCLUDES ${SLEPC_INC})
endif(SLEPC_INC)
endif(SLEPC_LIB)
if(NOT HAVE_SLEPC AND NOT ENV_SLEPC_DIR)
message("WARNING: Export SLEPC_DIR before calling cmake")
endif(NOT HAVE_SLEPC AND NOT ENV_SLEPC_DIR)
endif(ENABLE_SLEPC AND HAVE_PETSC)
if(ENABLE_OCC) if(ENABLE_OCC)
if(WIN32) if(WIN32)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment