summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Reeve <6740307+streeve@users.noreply.github.com>2023-10-01 21:57:55 -0700
committerGitHub <noreply@github.com>2023-10-02 06:57:55 +0200
commit0a91d2411a9c6293daae23669d6e2483628ce38a (patch)
treeec357eb8648e32ecf4e6b81f7d9bf09c8920c12f
parent5f3af3d5e44f646164eb8b7f5e3d14f0a75af774 (diff)
downloadspack-0a91d2411a9c6293daae23669d6e2483628ce38a.tar.gz
spack-0a91d2411a9c6293daae23669d6e2483628ce38a.tar.bz2
spack-0a91d2411a9c6293daae23669d6e2483628ce38a.tar.xz
spack-0a91d2411a9c6293daae23669d6e2483628ce38a.zip
cabana: add v0.6 (#40168)
-rw-r--r--var/spack/repos/builtin/packages/cabana/package.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py
index afc94278dd..6b6289b981 100644
--- a/var/spack/repos/builtin/packages/cabana/package.py
+++ b/var/spack/repos/builtin/packages/cabana/package.py
@@ -19,6 +19,7 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
tags = ["e4s", "ecp"]
version("master", branch="master")
+ version("0.6.0", sha256="a88a3f80215998169cdbd37661c0c0af57e344af74306dcd2b61983d7c69e6e5")
version("0.5.0", sha256="b7579d44e106d764d82b0539285385d28f7bbb911a572efd05c711b28b85d8b1")
version("0.4.0", sha256="c347d23dc4a5204f9cc5906ccf3454f0b0b1612351bbe0d1c58b14cddde81e85")
version("0.3.0", sha256="fb67ab9aaf254b103ae0eb5cc913ddae3bf3cd0cf6010e9686e577a2981ca84f")
@@ -37,7 +38,9 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
variant("heffte", default=False, description="Build with heFFTe support")
variant("hypre", default=False, description="Build with HYPRE support")
variant("silo", default=False, description="Build with SILO support")
- variant("cajita", default=False, description="Build Cajita subpackage")
+ variant("hdf5", default=False, description="Build with HDF5 support")
+ variant("cajita", default=False, description="Build Cajita subpackage (Grid in 0.6:)")
+ variant("grid", default=False, description="Build Grid subpackage")
variant("testing", default=False, description="Build unit tests")
variant("examples", default=False, description="Build tutorial examples")
variant("performance_testing", default=False, description="Build performance tests")
@@ -45,7 +48,7 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
depends_on("cmake@3.9:", type="build", when="@:0.4.0")
depends_on("cmake@3.16:", type="build", when="@0.5.0:")
depends_on("googletest", type="test", when="+testing")
- _versions = {":0.2": "-legacy", "0.3:": "@3.1:", "0.4:": "@3.2:", "master": "@3.4:"}
+ _versions = {":0.2": "-legacy", "0.3:": "@3.1:", "0.4:": "@3.2:", "0.6:": "@3.7:"}
for _version in _versions:
_kk_version = _versions[_version]
for _backend in _kokkos_backends:
@@ -74,14 +77,17 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
depends_on("arborx", when="@0.3.0:+arborx")
depends_on("hypre-cmake@2.22.0:", when="@0.4.0:+hypre")
depends_on("hypre-cmake@2.22.1:", when="@0.5.0:+hypre")
- # Heffte pinned at 2.x.0 because its cmakefiles can't roll forward
+ # Previous heFFTe pinned at 2.x.0 because its cmakefiles can't roll forward
# compatibilty to later minor versions.
depends_on("heffte@2.0.0", when="@0.4.0+heffte")
depends_on("heffte@2.1.0", when="@0.5.0:+heffte")
+ depends_on("heffte@2.3.0:", when="@0.6.0:+heffte")
depends_on("silo", when="@0.5.0:+silo")
+ depends_on("hdf5", when="@0.6.0:+hdf5")
depends_on("mpi", when="+mpi")
conflicts("+cajita ~mpi")
+ conflicts("+grid ~mpi")
conflicts("+rocm", when="@:0.2.0")
conflicts("+sycl", when="@:0.3.0")
@@ -90,7 +96,7 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
options = [self.define_from_variant("BUILD_SHARED_LIBS", "shared")]
enable = ["CAJITA", "TESTING", "EXAMPLES", "PERFORMANCE_TESTING"]
- require = ["ARBORX", "HEFFTE", "HYPRE", "SILO"]
+ require = ["ARBORX", "HEFFTE", "HYPRE", "SILO", "HDF5"]
# These variables were removed in 0.3.0 (where backends are
# automatically used from Kokkos)
@@ -102,9 +108,24 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
else:
require += ["MPI"]
+ # Cajita was renamed Grid in 0.6
+ if self.spec.satisfies("@0.6.0:"):
+ enable += ["GRID"]
+
for category, cname in zip([enable, require], ["ENABLE", "REQUIRE"]):
for var in category:
cbn_option = "Cabana_{0}_{1}".format(cname, var)
options.append(self.define_from_variant(cbn_option, var.lower()))
+ # Only enable user-requested options.
+ for var in require:
+ enabled_var = "+{0}".format(var.lower())
+ if enabled_var not in self.spec:
+ cbn_disable = "CMAKE_DISABLE_FIND_PACKAGE_{0}".format(var)
+ options.append(self.define(cbn_disable, "ON"))
+
+ # Use hipcc for HIP.
+ if "+rocm" in self.spec:
+ options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
+
return options