From 0a91d2411a9c6293daae23669d6e2483628ce38a Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Sun, 1 Oct 2023 21:57:55 -0700 Subject: cabana: add v0.6 (#40168) --- var/spack/repos/builtin/packages/cabana/package.py | 29 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'var') 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 -- cgit v1.2.3-60-g2f50