acts-algebra-plugins: new package (#44861)
This commit adds the `acts-algebra-plugins` package which provides the Acts project with linear algebra functionality.
This commit is contained in:
parent
491cb278f3
commit
02ff3d7b1e
@ -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
|
Loading…
Reference in New Issue
Block a user