summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/pika/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/pika/package.py')
-rw-r--r--var/spack/repos/builtin/packages/pika/package.py54
1 files changed, 49 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/pika/package.py b/var/spack/repos/builtin/packages/pika/package.py
index ae1d771176..3d2793568b 100644
--- a/var/spack/repos/builtin/packages/pika/package.py
+++ b/var/spack/repos/builtin/packages/pika/package.py
@@ -19,6 +19,19 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
license("BSL-1.0")
+ version("0.30.1", sha256="b0f3689a3edd30f8d674e19b5134fc5013813f843c45797c1015163e51989ac0")
+ version("0.30.0", sha256="1798bf7de2505bc707bf95716fda8de5630b2e2ae54a6c4ef59f9931394d31cc")
+ version("0.29.0", sha256="2c61079f52f3e135a8d0845a993e6e4fb64031fbee9b5cef0ead57efb6175e3c")
+ version("0.28.0", sha256="a64ebac04135c0c8d392ddcd8d683fe02e2c0782abfe130754244d58f27ae6cf")
+ version("0.27.0", sha256="4a58dc4014edc2074399e4a6ecfa244537c89ce1319b3e14ff3dfe617fb9f9e8")
+ version("0.26.1", sha256="d7cc842238754019abdb536e22325e9a57186cd2ac8cc9c7140a5385f9d730f6")
+ version("0.26.0", sha256="bbec5472c71006c1f55e7946c8dc517dae76c41cacb36fa98195312c74a1bb9a")
+ version("0.25.0", sha256="6646e12f88049116d84ce0caeedaa039a13caaa0431964caea4660b739767b2e")
+ version("0.24.0", sha256="3b97c684107f892a633f598d94bcbd1e238d940e88e1c336f205e81b99326cc3")
+ version("0.23.0", sha256="d1981e198ac4f8443770cebbeff7a132b8f6c1a42e32b0b06fea02cc9df99595")
+ version("0.22.2", sha256="eeffa8584336b239aca167f0056e815b1b6d911e46cbb3cd6b8b811d101c1052")
+ version("0.22.1", sha256="b0de0649bee336847622f97b59b34a80cb3cfd9a931bbdb38299bc4904f19b92")
+ version("0.22.0", sha256="75f8932f3a233958c69802b483335eeeb39032ea66f12442f6f77048e259bdea")
version("0.21.0", sha256="0ab24966e6ae026b355147f02354af4bd2117c342915fe844addf8e493735a33")
version("0.20.0", sha256="f338cceea66a0e3954806b2aca08f6560bba524ecea222f04bc18b483851c877")
version("0.19.1", sha256="674675abf0dd4c6f5a0b2fa3db944b277ed65c62f654029d938a8cab608a9c1d")
@@ -44,8 +57,13 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
version("0.1.0", sha256="aa0ae2396cd264d821a73c4c7ecb118729bb3de042920c9248909d33755e7327")
version("main", branch="main")
+ depends_on("cxx", type="build")
+
generator("ninja")
+ variant("shared", default=True, description="Build shared libraries")
+ conflicts("~shared", when="@:0.25")
+
cxxstds = ("17", "20", "23")
variant(
"cxxstd",
@@ -54,11 +72,12 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
description="Use the specified C++ standard when building",
)
+ mallocs = ("system", "jemalloc", "mimalloc", "tbbmalloc", "tcmalloc")
variant(
"malloc",
default="mimalloc",
description="Define which allocator will be linked in",
- values=("system", "jemalloc", "mimalloc", "tbbmalloc", "tcmalloc"),
+ values=mallocs,
)
default_generic_coroutines = True
@@ -76,6 +95,13 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
variant("apex", default=False, description="Enable APEX support", when="@0.2:")
variant("tracy", default=False, description="Enable Tracy support", when="@0.7:")
variant(
+ "sanitizers",
+ default=False,
+ description="Enable support for sanitizers. "
+ "Specific sanitizers must be explicitly enabled with -fsanitize=*.",
+ )
+ variant("valgrind", default=False, description="Enable support for valgrind")
+ variant(
"stdexec",
default=False,
description="Use stdexec for sender/receiver functionality",
@@ -83,7 +109,6 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
)
# Build dependencies
- depends_on("git", type="build")
depends_on("cmake@3.18:", type="build")
depends_on("cmake@3.22:", when="@0.8:", type="build")
@@ -94,9 +119,11 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
conflicts("%clang@:8", when="@0.2:")
conflicts("+stdexec", when="cxxstd=17")
conflicts("cxxstd=23", when="^cmake@:3.20.2")
- # CUDA version <= 11 does not support C++20 and newer
+ conflicts("cxxstd=20", when="+cuda ^cmake@:3.25.1")
+ conflicts("cxxstd=23", when="+cuda")
+ # nvcc version <= 11 does not support C++20 and newer
for cxxstd in filter(lambda x: x != "17", cxxstds):
- conflicts(f"cxxstd={cxxstd}", when="^cuda@:11")
+ requires("%nvhpc", when=f"cxxstd={cxxstd} ^cuda@:11")
# Other dependencies
depends_on("boost@1.71:")
@@ -104,19 +131,31 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
# https://github.com/pika-org/pika/issues/686
conflicts("^fmt@10:", when="@:0.15 +cuda")
conflicts("^fmt@10:", when="@:0.15 +rocm")
+ # https://github.com/pika-org/pika/pull/1074
+ conflicts("^fmt@11:", when="@:0.23")
+ depends_on("spdlog@1.9.2:", when="@0.25:")
depends_on("hwloc@1.11.5:")
+ # https://github.com/pika-org/pika/issues/1223
+ conflicts("^hwloc@2.11:", when="@:0.27 target=aarch64:")
depends_on("gperftools", when="malloc=tcmalloc")
depends_on("jemalloc", when="malloc=jemalloc")
depends_on("mimalloc", when="malloc=mimalloc")
depends_on("tbb", when="malloc=tbbmalloc")
+ for malloc in filter(lambda x: x != "system", mallocs):
+ conflicts("^apex +gperftools", when=f"+apex malloc={malloc}")
+ conflicts("^apex +jemalloc", when=f"+apex malloc={malloc}")
depends_on("apex", when="+apex")
depends_on("cuda@11:", when="+cuda")
depends_on("hip@5.2:", when="@0.8: +rocm")
+ # https://github.com/pika-org/pika/issues/1238
+ conflicts("%gcc@13:", when="+rocm")
depends_on("hipblas", when="@:0.8 +rocm")
depends_on("mpi", when="+mpi")
- depends_on("stdexec", when="+stdexec")
+ with when("+stdexec"):
+ depends_on("stdexec")
+ depends_on("stdexec@24.09:", when="@0.29:")
depends_on("rocblas", when="+rocm")
depends_on("rocsolver", when="@0.5: +rocm")
depends_on("tracy-client", when="+tracy")
@@ -124,6 +163,8 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
depends_on("whip@0.1: +rocm", when="@0.9: +rocm")
depends_on("whip@0.1: +cuda", when="@0.9: +cuda")
+ depends_on("valgrind", when="+valgrind")
+
with when("+rocm"):
for val in ROCmPackage.amdgpu_targets:
depends_on(f"whip@0.1: amdgpu_target={val}", when=f"@0.9: amdgpu_target={val}")
@@ -174,6 +215,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
spec, args = self.spec, []
args += [
+ self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define("PIKA_WITH_CXX_STANDARD", spec.variants["cxxstd"].value),
self.define_from_variant("PIKA_WITH_EXAMPLES", "examples"),
self.define_from_variant("PIKA_WITH_MALLOC", "malloc"),
@@ -182,6 +224,8 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
self.define_from_variant("PIKA_WITH_MPI", "mpi"),
self.define_from_variant("PIKA_WITH_APEX", "apex"),
self.define_from_variant("PIKA_WITH_TRACY", "tracy"),
+ self.define_from_variant("PIKA_WITH_SANITIZERS", "sanitizers"),
+ self.define_from_variant("PIKA_WITH_VALGRIND", "valgrind"),
self.define("PIKA_WITH_TESTS", self.run_tests),
self.define_from_variant("PIKA_WITH_GENERIC_CONTEXT_COROUTINES", "generic_coroutines"),
self.define("BOOST_ROOT", spec["boost"].prefix),