summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorH. Joe Lee <hyoklee@hdfgroup.org>2024-09-30 11:46:01 -0500
committerGitHub <noreply@github.com>2024-09-30 18:46:01 +0200
commit5f333c3632a389065fbd4592c20788a68f59b526 (patch)
treed8d07d3102f7aa2fbe8da55c203a7c25c8d50329 /var
parent59b5cb0962979033cd2b06174566855d7edf843a (diff)
downloadspack-5f333c3632a389065fbd4592c20788a68f59b526.tar.gz
spack-5f333c3632a389065fbd4592c20788a68f59b526.tar.bz2
spack-5f333c3632a389065fbd4592c20788a68f59b526.tar.xz
spack-5f333c3632a389065fbd4592c20788a68f59b526.zip
hermes-shm: new package (#46601)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hermes-shm/package.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/hermes-shm/package.py b/var/spack/repos/builtin/packages/hermes-shm/package.py
new file mode 100644
index 0000000000..7ab7292ac8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hermes-shm/package.py
@@ -0,0 +1,86 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.package import *
+
+
+class HermesShm(CMakePackage):
+ """Hermes Shared Memory contains a variety of data structures
+ and synchronization primitives which are compatible with shared memory.
+ """
+
+ homepage = "https://github.com/grc-iit/hermes-shm/wiki"
+ git = "https://github.com/grc-iit/hermes-shm.git"
+
+ maintainers("lukemartinlogan", "hyoklee")
+
+ version("master", branch="master")
+ version(
+ "1.1.0",
+ url="https://github.com/grc-iit/hermes-shm/archive/refs/tags/v1.1.0.tar.gz",
+ sha256="2270d629373447a2872d7109b5a5e66027dc8d8178d3ba84eb48a875f49b6bdf",
+ )
+ version(
+ "1.0.0",
+ url="https://github.com/lukemartinlogan/hermes_shm/archive/refs/tags/v1.0.0.tar.gz",
+ sha256="a79f01d531ce89985ad59a2f62b41d74c2385e48d929e2f4ad895ae34137573b",
+ )
+
+ # Main variants
+ variant("mochi", default=True, description="Build with mochi-thallium support")
+ variant("cereal", default=True, description="Build with cereal support")
+ variant("boost", default=True, description="Build with boost support")
+ variant("mpiio", default=True, description="Build with MPI support")
+ variant("vfd", default=False, description="Build with HDF5 support")
+ variant("zmq", default=False, description="Build ZeroMQ tests")
+ variant("adios", default=False, description="Build Adios support")
+
+ # Required deps
+ depends_on("catch2@3.0.1")
+ depends_on("yaml-cpp")
+ depends_on("doxygen@1.9.3", type="build")
+ depends_on("libelf")
+
+ # Machine variants
+ variant("ares", default=False, description="Build in ares")
+ depends_on("libfabric fabrics=sockets,tcp,udp,verbs,mlx,rxm,rxd,shm", when="+ares")
+
+ # Main dependencies
+ depends_on("mochi-thallium+cereal@0.10.1", when="+mochi")
+ depends_on("cereal", when="+cereal")
+ depends_on(
+ "boost@1.7: +context +fiber +coroutine +regex +system \
+ +filesystem +serialization +pic +math",
+ when="+boost",
+ )
+ depends_on("mpi", when="+mpiio")
+ depends_on("hdf5@1.14.0", when="+vfd")
+ depends_on("libzmq", "+zmq")
+ depends_on("adios2", when="+adios")
+
+ # Compress variant
+ variant("compress", default=False, description="Build with compression support")
+ with when("+compress"):
+ depends_on("lzo")
+ depends_on("bzip2")
+ depends_on("zstd")
+ depends_on("lz4")
+ depends_on("zlib")
+ depends_on("xz")
+ depends_on("brotli")
+ depends_on("snappy")
+ depends_on("c-blosc2")
+
+ # Encryption variant
+ variant("encrypt", default=False, description="Build with encryption support")
+ depends_on("openssl", when="+encrypt")
+
+ def cmake_args(self):
+ return [
+ self.define_from_variant("HERMES_ENABLE_VFD", "vfd"),
+ self.define_from_variant("HERMES_ENABLE_COMPRESSION", "compress"),
+ self.define_from_variant("HERMES_ENABLE_ENCRYPTION", "encrypt"),
+ self.define_from_variant("HERMES_RPC_THALLIUM", "mochi"),
+ self.define_from_variant("HERMES_ENABLE_ZMQ_TESTS", "zmq"),
+ ]