summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/h5utils/package.py
blob: 276261437106545997793058f8b430a1c47f40c8 (plain) (blame)
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
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack.package import *


class H5utils(AutotoolsPackage):
    """h5utils is a set of utilities for visualization and conversion of
    scientific data in the free, portable HDF5 format."""

    homepage = "http://ab-initio.mit.edu/wiki/index.php/H5utils"
    url = "https://github.com/NanoComp/h5utils/releases/download/1.13.1/h5utils-1.13.1.tar.gz"

    license("GPL-2.0-only")

    version("1.13.1", sha256="c5a76f064d6daa3e65583dce2b61202510e67cf6590f076af9a8aa72511d7d65")
    version(
        "1.12.1",
        sha256="7e6db86fee00a8008f78b2be921177042c661203c0936b078fcc8f9c71e4a883",
        url="https://github.com/NanoComp/h5utils/archive/refs/tags/1.12.1.tar.gz",
    )

    variant("png", default=True, description="Enable PNG support")
    variant("vis5d", default=False, description="Enable Vis5d support")
    variant("octave", default=False, description="Enable GNU Octave support")
    variant("hdf4", default=False, description="Enable HDF4 support")
    variant("math", default=False, description="Build h5math")

    # Required dependencies
    depends_on("hdf5")

    # Optional dependencies
    depends_on("libpng", when="+png")
    depends_on("libpng@:1.5.0", when="@1.12.1+png")
    # depends_on('vis5d',       when='+vis5d')  # TODO: Add a vis5d package
    depends_on("octave", when="+octave")
    depends_on("hdf", when="+hdf4")
    depends_on("libmatheval", when="+math")

    def configure_args(self):
        spec = self.spec
        args = []

        if "+vis5d" in spec:
            args.append("--with-v5d={0}".format(spec["vis5d"].prefix))
        else:
            args.append("--without-v5d")

        if "+octave" in spec:
            args.append("--with-octave")
        else:
            args.append("--without-octave")

        if "+hdf" in spec:
            args.append("--with-hdf4")
        else:
            args.append("--without-hdf4")

        return args