# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
set shortversion [join [lrange [split ${version} .] 0 1] .]
maintainers {mmoll @mamoll} openmaintainer
description HDF5 general purpose library and file format for storing\
long_description HDF5 is a data model, library, and file format for storing\
and managing data. It supports an unlimited variety of\
datatypes, and is designed for flexible and efficient I/O\
and for high volume and complex data. HDF5 is portable and\
is extensible, allowing applications to evolve in their use\
of HDF5. The HDF5 Technology suite includes tools and\
applications for managing, manipulating, viewing, and\
analyzing data in the HDF5 format.
homepage https://portal.hdfgroup.org/display/HDF5
https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${shortversion}/hdf5-${version}/src
checksums rmd160 1880b8688015540abb5d6a73221775d780c07155 \
sha256 68d6ea8843d2a106ec6a7828564c1689c7a85714a35d8efafa2fee20ca366f44 \
patchfiles patch-tools-src-misc-h5cc.in.diff
# llvm-gcc-4.2 produced code fails type conversion tests
# Upstream suggestion is use -O0. Clang-produced code passes all tests.
compiler.blacklist llvm-gcc-4.2
# #pragma pack() results in "too many #pragma options align=reset"
compiler.blacklist-append gcc-3.3 gcc-4.0 gcc-4.2 apple-gcc-4.2
if {[vercmp ${xcodeversion} 4.0] < 0} {
# configure.cxx is still /usr/bin/llvm-g++-4.2
compiler.blacklist-append clang
# Use lib/hdf5 rather than hdf5/lib plugin directory
configure.args --with-zlib=yes \
--enable-build-mode=production --disable-fortran \
--disable-cxx --disable-hl --enable-shared --enable-static \
--disable-parallel --disable-threadsafe \
--with-default-plugindir=${prefix}/lib/hdf5
# http://mail.hdfgroup.org/pipermail/hdf-forum_hdfgroup.org/2010-March/002682.html
default_variants +cxx +hl
if {[variant_isset universal]} {
foreach arch ${universal_archs_to_use} {
lappend dirs ${worksrcpath}-${arch}
reinplace -E {s|-arch [a-z0-9_]+||g} \
${dir}/tools/src/misc/h5cc \
${dir}/src/libhdf5.settings \
reinplace -W ${dir} {s|ccache ||} tools/src/misc/h5cc c++/src/h5c++
xinstall -d ${destroot}${prefix}/share/hdf5/
xinstall -m 444 ${worksrcpath}/COPYING\
${destroot}${prefix}/share/hdf5/