cabana: add v0.6 (#40168)
This commit is contained in:
		| @@ -19,6 +19,7 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): | |||||||
|     tags = ["e4s", "ecp"] |     tags = ["e4s", "ecp"] | ||||||
| 
 | 
 | ||||||
|     version("master", branch="master") |     version("master", branch="master") | ||||||
|  |     version("0.6.0", sha256="a88a3f80215998169cdbd37661c0c0af57e344af74306dcd2b61983d7c69e6e5") | ||||||
|     version("0.5.0", sha256="b7579d44e106d764d82b0539285385d28f7bbb911a572efd05c711b28b85d8b1") |     version("0.5.0", sha256="b7579d44e106d764d82b0539285385d28f7bbb911a572efd05c711b28b85d8b1") | ||||||
|     version("0.4.0", sha256="c347d23dc4a5204f9cc5906ccf3454f0b0b1612351bbe0d1c58b14cddde81e85") |     version("0.4.0", sha256="c347d23dc4a5204f9cc5906ccf3454f0b0b1612351bbe0d1c58b14cddde81e85") | ||||||
|     version("0.3.0", sha256="fb67ab9aaf254b103ae0eb5cc913ddae3bf3cd0cf6010e9686e577a2981ca84f") |     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("heffte", default=False, description="Build with heFFTe support") | ||||||
|     variant("hypre", default=False, description="Build with HYPRE support") |     variant("hypre", default=False, description="Build with HYPRE support") | ||||||
|     variant("silo", default=False, description="Build with SILO 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("testing", default=False, description="Build unit tests") | ||||||
|     variant("examples", default=False, description="Build tutorial examples") |     variant("examples", default=False, description="Build tutorial examples") | ||||||
|     variant("performance_testing", default=False, description="Build performance tests") |     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.9:", type="build", when="@:0.4.0") | ||||||
|     depends_on("cmake@3.16:", type="build", when="@0.5.0:") |     depends_on("cmake@3.16:", type="build", when="@0.5.0:") | ||||||
|     depends_on("googletest", type="test", when="+testing") |     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: |     for _version in _versions: | ||||||
|         _kk_version = _versions[_version] |         _kk_version = _versions[_version] | ||||||
|         for _backend in _kokkos_backends: |         for _backend in _kokkos_backends: | ||||||
| @@ -74,14 +77,17 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): | |||||||
|     depends_on("arborx", when="@0.3.0:+arborx") |     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.0:", when="@0.4.0:+hypre") | ||||||
|     depends_on("hypre-cmake@2.22.1:", when="@0.5.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. |     # compatibilty to later minor versions. | ||||||
|     depends_on("heffte@2.0.0", when="@0.4.0+heffte") |     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.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("silo", when="@0.5.0:+silo") | ||||||
|  |     depends_on("hdf5", when="@0.6.0:+hdf5") | ||||||
|     depends_on("mpi", when="+mpi") |     depends_on("mpi", when="+mpi") | ||||||
| 
 | 
 | ||||||
|     conflicts("+cajita ~mpi") |     conflicts("+cajita ~mpi") | ||||||
|  |     conflicts("+grid ~mpi") | ||||||
| 
 | 
 | ||||||
|     conflicts("+rocm", when="@:0.2.0") |     conflicts("+rocm", when="@:0.2.0") | ||||||
|     conflicts("+sycl", when="@:0.3.0") |     conflicts("+sycl", when="@:0.3.0") | ||||||
| @@ -90,7 +96,7 @@ def cmake_args(self): | |||||||
|         options = [self.define_from_variant("BUILD_SHARED_LIBS", "shared")] |         options = [self.define_from_variant("BUILD_SHARED_LIBS", "shared")] | ||||||
| 
 | 
 | ||||||
|         enable = ["CAJITA", "TESTING", "EXAMPLES", "PERFORMANCE_TESTING"] |         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 |         # These variables were removed in 0.3.0 (where backends are | ||||||
|         # automatically used from Kokkos) |         # automatically used from Kokkos) | ||||||
| @@ -102,9 +108,24 @@ def cmake_args(self): | |||||||
|         else: |         else: | ||||||
|             require += ["MPI"] |             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 category, cname in zip([enable, require], ["ENABLE", "REQUIRE"]): | ||||||
|             for var in category: |             for var in category: | ||||||
|                 cbn_option = "Cabana_{0}_{1}".format(cname, var) |                 cbn_option = "Cabana_{0}_{1}".format(cname, var) | ||||||
|                 options.append(self.define_from_variant(cbn_option, var.lower())) |                 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 |         return options | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sam Reeve
					Sam Reeve