File: HDF5

package info (click to toggle)
mpqc3 0.0~git20170114-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 148,788 kB
  • ctags: 40,140
  • sloc: cpp: 545,687; ansic: 13,220; perl: 5,065; fortran: 1,990; lisp: 1,269; python: 717; yacc: 392; sh: 304; f90: 238; lex: 184; xml: 182; makefile: 106
file content (71 lines) | stat: -rw-r--r-- 1,886 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# -*- mode: cmake -*-

set(EXTERNAL_SOURCE_DIR ${PROJECT_SOURCE_DIR}/external)
set(EXTERNAL_BUILD_DIR ${PROJECT_BINARY_DIR}/external/build)

include(ExternalProject)

find_package(HDF5)

if (HDF5_FOUND)
  include_directories(${HDF5_INCLUDE_DIRS})
  #set(HDF5_LIBRARIES "${HDF5_LIBRARIES_RELEASE}")
endif()

if (NOT HDF5_FOUND)

  if (MPQC_EXPERT)

    message("** HDF5 was not found or explicitly set")
    message("** Downloading and building HDF5 is explicitly disabled in EXPERT mode")

  else()
    
    set(HDF5_URL http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.12/src/hdf5-1.8.12.tar.bz2)
    #set(HDF5_URL_HASH MD5=75829af785e54332cdef6ad5a4a96607)
    set(HDF5_URL_HASH MD5=03ad766d225f5e872eb3e5ce95524a08)


    if (EXISTS ${EXTERNAL_SOURCE_DIR}/hdf5.tar.gz)
      set(HDF5_URL ${EXTERNAL_SOURCE_DIR}/hdf5.tar.gz)
      set(HDF5_URL_HASH "")
      message("** HDF5 will be built from ${HDF5_URL}")
    endif()

    ExternalProject_Add(
      hdf5
      PREFIX ${EXTERNAL_BUILD_DIR}/hdf5
      URL ${HDF5_URL}
      URL_HASH ${HDF5_URL_HASH}
      BUILD_IN_SOURCE 1
      CONFIGURE_COMMAND ./configure
      --prefix=${EXTERNAL_BUILD_DIR}/hdf5
      --enable-threadsafe
      --enable-unsupported
      --with-pthread
      CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} CPPFLAGS=-D_GNU_SOURCE
      BUILD_COMMAND make
      INSTALL_COMMAND make install
      )

    add_dependencies(External hdf5)
    include_directories(${EXTERNAL_BUILD_DIR}/hdf5/include)
    set(HDF5_LIBRARIES ${EXTERNAL_BUILD_DIR}/hdf5/lib/libhdf5.a)

  endif(MPQC_EXPERT)

endif(NOT HDF5_FOUND)

# HDF5 libs
if (HDF5_LIBRARIES)
  set(HAVE_HDF5 TRUE)
  find_library(LIBZ NAMES z)
  if (LIBZ)
    list(APPEND HDF5_LIBRARIES ${LIBZ})
  endif()
  find_library(LIBSZ NAMES sz)
  if (LIBSZ)
    list(APPEND HDF5_LIBRARIES ${LIBSZ})
  endif()
  message(STATUS "HDF5 libraries: ${HDF5_LIBRARIES}")
endif()