summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorSamuel K. GutiƩrrez <samuel@lanl.gov>2023-07-20 13:07:36 -0600
committerGitHub <noreply@github.com>2023-07-20 12:07:36 -0700
commit26a74bb3bca700522dfd4b75976254fe29517cb0 (patch)
tree927ad0214ac5b4f3c790d65f94982e64a5d9af28 /var
parentd2566e3d626344078c7db568edd7f1835f8d7d9b (diff)
downloadspack-26a74bb3bca700522dfd4b75976254fe29517cb0.tar.gz
spack-26a74bb3bca700522dfd4b75976254fe29517cb0.tar.bz2
spack-26a74bb3bca700522dfd4b75976254fe29517cb0.tar.xz
spack-26a74bb3bca700522dfd4b75976254fe29517cb0.zip
Add Quo-Vadis package. (#38998)
Signed-off-by: Samuel K. Gutierrez <samuel@lanl.gov>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/quo-vadis/package.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/quo-vadis/package.py b/var/spack/repos/builtin/packages/quo-vadis/package.py
new file mode 100644
index 0000000000..029b4926c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quo-vadis/package.py
@@ -0,0 +1,55 @@
+# Copyright 2013-2023 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 QuoVadis(CMakePackage):
+ """A cross-stack coordination layer to dynamically
+ map runtime components to hardware resources"""
+
+ homepage = "https://github.com/hpc/quo-vadis"
+ git = "https://github.com/hpc/quo-vadis.git"
+
+ maintainers("samuelkgutierrez")
+
+ version("master", branch="master")
+
+ variant("fortran", default=True, description="Build with Fortran bindings")
+ variant("mpi", default=True, description="Build with MPI support")
+ variant("mpipat", default=False, description="Affirm MPI processes are threads")
+ variant("omp", default=True, description="Build with OpenMP support")
+
+ variant(
+ "gpu",
+ values=("nvidia", "amd", "none"),
+ default="none",
+ multi=True,
+ description="Build with GPU support",
+ )
+
+ depends_on("libzmq")
+
+ with when("+mpi"):
+ depends_on("mpi")
+
+ with when("gpu=nvidia"):
+ depends_on("libpciaccess")
+ depends_on("cuda")
+
+ with when("gpu=amd"):
+ depends_on("libpciaccess")
+ depends_on("rocm-smi-lib")
+
+ def cmake_args(self):
+ spec = self.spec
+
+ return [
+ self.define_from_variant("QV_FORTRAN_SUPPORT", "fortran"),
+ self.define_from_variant("QV_MPI_SUPPORT", "mpi"),
+ self.define_from_variant("QV_MPI_PROCESSES_ARE_THREADS", "mpipat"),
+ self.define_from_variant("QV_OMP_SUPPORT", "omp"),
+ self.define("QV_GPU_SUPPORT", not spec.satisfies("gpu=none")),
+ ]