Files
IFEM/cmake/Modules/FindISTL.cmake
2016-09-02 09:30:53 +02:00

39 lines
1.4 KiB
CMake

find_package(PkgConfig)
set(OLD_PKG $ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} $ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/lib/pkgconfig)
pkg_check_modules(ISTL dune-istl)
set(ENV{PKG_CONFIG_PATH} ${OLD_PKG})
list(APPEND ISTL_DEFINITIONS -DHAVE_NULLPTR=1 -DISTL_VERSION="${ISTL_VERSION}")
string(REPLACE "." ";" VERSION_LIST "${ISTL_VERSION}")
if(VERSION_LIST)
list(GET VERSION_LIST 0 DUNE_ISTL_VERSION_MAJOR)
list(GET VERSION_LIST 1 DUNE_ISTL_VERSION_MINOR)
list(GET VERSION_LIST 2 DUNE_ISTL_VERSION_PATCH)
list(APPEND ISTL_DEFINITIONS -DDUNE_ISTL_VERSION_MAJOR=${DUNE_ISTL_VERSION_MAJOR}
-DDUNE_ISTL_VERSION_MINOR=${DUNE_ISTL_VERSION_MINOR}
-DDUNE_ISTL_VERSION_REVISION=${DUNE_ISTL_VERSION_PATCH})
endif()
if(SUPERLU_FOUND)
list(APPEND ISTL_DEFINITIONS -DHAVE_SUPERLU=1 -DSUPERLU_POST_2005_VERSION=1 -DSUPERLU_NTYPE=1 -DSUPERLU_MIN_VERSION_4_3=1)
endif()
if(IFEM_USE_UMFPACK)
find_package(SuiteSparse COMPONENTS umfpack)
endif()
if(SuiteSparse_UMFPACK_FOUND)
list(APPEND ISTL_DEFINITIONS -DHAVE_UMFPACK=1)
list(APPEND ISTL_INCLUDE_DIRS ${UMFPACK_INCLUDE_DIR})
list(APPEND ISTL_LIBRARIES ${UMFPACK_LIBRARY})
endif()
list(APPEND ISTL_INCLUDE_DIRS ${ISTL_INCLUDEDIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ISTL DEFAULT_MSG
ISTL_INCLUDE_DIRS ISTL_LIBRARIES)