diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/pika/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/pika/package.py | 54 |
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), |