summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
blob: a54a5a694bfabd819efc95cd2ceb24f10d980927 (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
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright 2013-2024 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 PyFenicsDolfinx(PythonPackage):
    """Python interface to the next generation FEniCS problem solving
    environment"""

    homepage = "https://github.com/FEniCS/dolfinx"
    url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz"
    git = "https://github.com/FEniCS/dolfinx.git"
    maintainers("chrisrichardson", "garth-wells", "nate-sime", "jhale")

    license("LGPL-3.0-only")

    version("main", branch="main")
    version("0.7.2", sha256="7d9ce1338ce66580593b376327f23ac464a4ce89ef63c105efc1a38e5eae5c0b")
    version("0.6.0", sha256="eb8ac2bb2f032b0d393977993e1ab6b4101a84d54023a67206e3eac1a8d79b80")
    version("0.5.1", sha256="a570e3f6ed8e7c570e7e61d0e6fd44fa9dad2c5f8f1f48a6dc9ad22bacfbc973")
    version("0.5.0", sha256="503c70c01a44d1ffe48e052ca987693a49f8d201877652cabbe2a44eb3b7c040")
    version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f")

    depends_on("cmake@3.19:", type="build")
    depends_on("hdf5", type="build")
    depends_on("pkgconfig", type="build")

    depends_on("python@3.8:", when="@0.6.1:", type=("build", "run"))
    depends_on("python@3.8:3.10", when="@0.5:0.6.0", type=("build", "run"))
    depends_on("python@3.7:3.10", when="@0.4", type=("build", "run"))

    depends_on("fenics-dolfinx@main", when="@main")
    depends_on("fenics-dolfinx@0.7.2", when="@0.7.2")
    depends_on("fenics-dolfinx@0.6.0", when="@0.6.0")
    depends_on("fenics-dolfinx@0.5.1", when="@0.5.1")
    depends_on("fenics-dolfinx@0.5.0", when="@0.5.0")
    depends_on("fenics-dolfinx@0.4.1", when="@0.4.1")

    depends_on("py-fenics-basix@main", type=("build", "run"), when="@main")
    depends_on("fenics-basix@main", type=("build", "link"), when="@main")
    depends_on("fenics-basix@0.7", type=("build", "link"), when="@0.7")
    depends_on("fenics-basix@0.6.0:0.6", type=("build", "link"), when="@0.6.0:0.6")
    depends_on("fenics-basix@0.5.1:0.5", type=("build", "link"), when="@0.5.0:0.5")
    depends_on("fenics-basix@0.4.2", type=("build", "link"), when="@0.4.1")

    depends_on("py-fenics-ffcx@main", type=("build", "run"), when="@main")
    depends_on("py-fenics-ffcx@0.7", type=("build", "run"), when="@0.7")
    depends_on("py-fenics-ffcx@0.6", type=("build", "run"), when="@0.6")
    depends_on("py-fenics-ffcx@0.5.0.post0", type=("build", "run"), when="@0.5.0:0.5")
    depends_on("py-fenics-ffcx@0.4.2", type=("build", "run"), when="@0.4.1")

    depends_on("py-fenics-ufl@main", type=("build", "run"), when="@main")
    depends_on("py-fenics-ufl@2023.2", type=("build", "run"), when="@0.7")
    depends_on("py-fenics-ufl@2023.1", type=("build", "run"), when="@0.6")
    depends_on("py-fenics-ufl@2022.2.0", type=("build", "run"), when="@0.5.0:0.5")
    depends_on("py-fenics-ufl@2022.1.0", type=("build", "run"), when="@0.4.1")

    depends_on("py-numpy@1.21:", type=("build", "run"))
    depends_on("py-mpi4py", type=("build", "run"))
    depends_on("py-petsc4py", type=("build", "run"))
    depends_on("py-cffi", type=("build", "run"))

    depends_on("py-nanobind@1.8:", when="@0.8:", type="build")
    depends_on("py-scikit-build-core+pyproject@0.5:", when="@0.8:", type="build")

    depends_on("py-pybind11@2.7.0:", when="@:0.7", type=("build", "run"))
    depends_on("py-setuptools@42:", when="@:0.7", type="build")
    depends_on("xtensor@0.23.10:", type="build", when="@:0.5")

    build_directory = "python"