diff options
author | Stephen Nicholas Swatman <stephen@v25.nl> | 2024-07-04 16:51:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-04 09:51:18 -0500 |
commit | 02ff3d7b1e5fd12dc3e3783dce0a7fe32015ad6a (patch) | |
tree | 397b3b48f0312e40841072bf87592a00d0b58c63 | |
parent | 491cb278f3496ce135a15c2998fdd945b87b15c6 (diff) | |
download | spack-02ff3d7b1e5fd12dc3e3783dce0a7fe32015ad6a.tar.gz spack-02ff3d7b1e5fd12dc3e3783dce0a7fe32015ad6a.tar.bz2 spack-02ff3d7b1e5fd12dc3e3783dce0a7fe32015ad6a.tar.xz spack-02ff3d7b1e5fd12dc3e3783dce0a7fe32015ad6a.zip |
acts-algebra-plugins: new package (#44861)
This commit adds the `acts-algebra-plugins` package which provides the
Acts project with linear algebra functionality.
-rw-r--r-- | var/spack/repos/builtin/packages/acts-algebra-plugins/package.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/acts-algebra-plugins/package.py b/var/spack/repos/builtin/packages/acts-algebra-plugins/package.py new file mode 100644 index 0000000000..b597348c01 --- /dev/null +++ b/var/spack/repos/builtin/packages/acts-algebra-plugins/package.py @@ -0,0 +1,66 @@ +# 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 ActsAlgebraPlugins(CMakePackage): + """A portable linear algebra library with multiple backends that is part of + the Acts ecosystem.""" + + homepage = "https://github.com/acts-project/algebra-plugins" + url = "https://github.com/acts-project/algebra-plugins/archive/refs/tags/v0.24.0.tar.gz" + + maintainers("stephenswat", "wdconinc") + + license("MPL-2.0", checked_by="stephenswat") + + version("0.24.0", sha256="f44753e62b1ba29c28ab86b282ab67ac6028a0f9fe41e599b7fc6fc50b586b62") + + variant( + "cxxstd", + default="17", + values=("17", "20", "23"), + multi=False, + description="C++ standard used", + ) + variant("eigen", default=False, description="Enables the Eigen plugin") + variant("smatrix", default=False, description="Enables the SMatrix plugin") + variant("vecmem", default=False, description="Enables the vecmem plugin") + variant("vc", default=False, description="Enables the Vc plugin") + variant("fastor", default=False, description="Enables the Fastor plugin") + + depends_on("cmake@3.14:", type="build") + depends_on("vecmem@1.5.0:", when="+vecmem") + depends_on("eigen@3.4.0:", when="+eigen") + depends_on("vc@1.4.3:", when="+vc") + depends_on("root@6.18.0:", when="+smatrix") + depends_on("fastor@0.6.4:", when="+fastor") + + with when("+smatrix"): + depends_on("root cxxstd=17", when="cxxstd=17") + depends_on("root cxxstd=20", when="cxxstd=20") + conflicts("cxxstd=23") + + def cmake_args(self): + args = [ + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), + self.define("ALGEBRA_PLUGINS_USE_SYSTEM_LIBS", True), + self.define_from_variant("ALGEBRA_PLUGINS_INCLUDE_EIGEN", "eigen"), + self.define_from_variant("ALGEBRA_PLUGINS_SETUP_EIGEN3", "eigen"), + self.define_from_variant("ALGEBRA_PLUGINS_INCLUDE_SMATRIX", "smatrix"), + self.define_from_variant("ALGEBRA_PLUGINS_INCLUDE_VC", "vc"), + self.define_from_variant("ALGEBRA_PLUGINS_SETUP_VC", "vc"), + self.define_from_variant("ALGEBRA_PLUGINS_INCLUDE_VECMEM", "vecmem"), + self.define_from_variant("ALGEBRA_PLUGINS_SETUP_VECMEM", "vecmem"), + self.define_from_variant("ALGEBRA_PLUGINS_INCLUDE_FASTOR", "fastor"), + self.define_from_variant("ALGEBRA_PLUGINS_SETUP_FASTOR", "fastor"), + self.define("ALGEBRA_PLUGINS_BUILD_TESTING", False), + self.define("ALGEBRA_PLUGINS_SETUP_GOOGLETEST", False), + self.define("ALGEBRA_PLUGINS_SETUP_BENCHMARK", False), + self.define("ALGEBRA_PLUGINS_BUILD_BENCHMARKS", False), + ] + + return args |