From: maier Date: Mon, 15 Oct 2012 20:38:30 +0000 (+0000) Subject: Add support for hdf5 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3458db9daadb9a54407a9d65e8554db8f7bb615a;p=dealii-svn.git Add support for hdf5 git-svn-id: https://svn.dealii.org/branches/branch_cmake@27131 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/cmake/configure/configure_hdf5.cmake b/deal.II/cmake/configure/configure_hdf5.cmake new file mode 100644 index 0000000000..62f8502ae7 --- /dev/null +++ b/deal.II/cmake/configure/configure_hdf5.cmake @@ -0,0 +1,56 @@ +##### +## +## Copyright (C) 2012 by the deal.II authors +## +## This file is part of the deal.II library. +## +## +## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later +## version of the LGPL license. +## +## Author: Matthias Maier +## +##### + +# +# Configuration for the netcdf library: +# + + +MACRO(FEATURE_HDF5_FIND_EXTERNAL var) + FIND_PACKAGE(HDF5) + + IF(HDF5_FOUND) + SET(${var} TRUE) + ENDIF() +ENDMACRO() + + +MACRO(FEATURE_HDF5_CONFIGURE_EXTERNAL var) + INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIRS}) + LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${HDF5_LIBRARIES}) + + SET(DEAL_II_HAVE_HDF5 TRUE) + + SET(${var} TRUE) +ENDMACRO() + + +SET(FEATURE_HDF5_CUSTOM_ERROR_MESSAGE TRUE) + + +MACRO(FEATURE_HDF5_ERROR_MESSAGE) + MESSAGE(FATAL_ERROR "\n" + "Could not find the hdf5 library!\n\n" + "Please ensure that the hdf5 library is installed on your computer.\n" + "If the library is not at a default location, either provide some hints\n" + "for the autodetection:\n" + " $ HDF5_DIR=\"...\" cmake <...>\n" + " $ cmake -DHDF5_DIR=\"...\" <...>\n" + "or set the relevant variables by hand in ccmake.\n\n" + ) +ENDMACRO() + + +CONFIGURE_FEATURE(HDF5) + diff --git a/deal.II/cmake/modules/FindHDF5.cmake b/deal.II/cmake/modules/FindHDF5.cmake new file mode 100644 index 0000000000..08ac55da00 --- /dev/null +++ b/deal.II/cmake/modules/FindHDF5.cmake @@ -0,0 +1,65 @@ +##### +## +## Copyright (C) 2012 by the deal.II authors +## +## This file is part of the deal.II library. +## +## +## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later +## version of the LGPL license. +## +## Author: Matthias Maier +## +##### + +# +# Try to find the HDF5 library +# +# This module exports +# +# HDF5_LIBRARIES +# HDF5_INCLUDE_DIRS +# + +INCLUDE(FindPackageHandleStandardArgs) + +FIND_PATH(HDF5_INCLUDE_DIR hdf5.h + HINTS + ${HDF5_DIR} + PATH_SUFFIXES + hdf5 include/hdf5 include + ) + +FIND_LIBRARY(HDF5_LIBRARY + NAMES hdf5 + PATH_SUFFIXES lib${LIB_SUFFIX} lib64 lib +) + +FIND_LIBRARY(HDF5_HL_LIBRARY + NAMES hdf5_hl + PATH_SUFFIXES lib${LIB_SUFFIX} lib64 lib +) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF5 DEFAULT_MSG + HDF5_INCLUDE_DIR + HDF5_LIBRARY + HDF5_HL_LIBRARY + ) + +SET(HDF5_INCLUDE_DIRS + ${HDF5_INCLUDE_DIR} + ) + +SET(HDF5_LIBRARIES + ${HDF5_LIBRARY} + ${HDF5_HL_LIBRARY} + ) + +IF(HDF5_FOUND) + MARK_AS_ADVANCED( + HDF5_INCLUDE_DIR + HDF5_LIBRARY + HDF5_HL_LIBRARY + ) +ENDIF() + diff --git a/deal.II/cmake/modules/FindMETIS.cmake b/deal.II/cmake/modules/FindMETIS.cmake index 285ba64563..48603bd9d8 100644 --- a/deal.II/cmake/modules/FindMETIS.cmake +++ b/deal.II/cmake/modules/FindMETIS.cmake @@ -22,7 +22,7 @@ SET_IF_EMPTY(METIS_DIR "$ENV{METIS_DIR}") # # TODO: Metis is usually pretty self contained. So no external dependencies -# so far... BUt there could be dependencies on pcre and mpi... +# so far... But there could be dependencies on pcre and mpi... # FIND_PATH(METIS_INCLUDE_DIR metis.h diff --git a/deal.II/include/deal.II/base/config.h.in b/deal.II/include/deal.II/base/config.h.in index 9c1205a3d0..a69a8ea912 100644 --- a/deal.II/include/deal.II/base/config.h.in +++ b/deal.II/include/deal.II/base/config.h.in @@ -62,6 +62,14 @@ #cmakedefine HAVE_FUNCTIONPARSER +/*************************************** + * Configured in configure_hdf5.cmake: * + **************************************/ + +/* Defined if deal.II was configured with hdf5 support */ +#cmakedefine DEAL_II_HAVE_HDF5 + + /***************************************** * Configured in configure_lapack.cmake: * *****************************************/