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()
|