bml: add magma and cusolver build options (#49652)

This commit is contained in:
Joshua Finkelstein 2025-04-14 01:38:37 -06:00 committed by GitHub
parent 74f78bd24f
commit 620d5c7ef8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -14,7 +14,7 @@ class Bml(CMakePackage):
url = "https://github.com/lanl/bml/archive/refs/tags/v2.2.0.tar.gz"
git = "https://github.com/lanl/bml.git"
maintainers("jeanlucf22")
maintainers("jeanlucf22", "finkeljos")
license("BSD-3-Clause")
@ -31,19 +31,33 @@ class Bml(CMakePackage):
version("1.2.2", sha256="babc2fd0229397e418be00f3691277e86f549b5a23cadbcee66078595e9176a0")
version("1.1.0", sha256="a90ede19d80ed870f0bf1588875a9f371484d89006a7296010d8d791da3eac33")
variant("shared", default=True, description="Build shared libs")
variant("mpi", default=True, description="Build with MPI Support")
conflicts("+mpi", when="@:1.2.2")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("fortran", type="build") # generated
depends_on("blas")
depends_on("lapack")
variant("shared", default=True, description="Build shared libs")
variant("mpi", default=True, description="Build with MPI Support")
depends_on("mpi", when="+mpi")
depends_on("python", type="build")
conflicts("+mpi", when="@:1.2.2")
variant("magma", default=False, description="Build with magma support")
depends_on("magma", when="+magma")
conflicts("+magma", when="@1.1.0:2.2.0", msg="Must use master branch of bml")
variant(
"cusolver",
default=False,
when="+magma",
description="Use cusolver diagonalization instead internal magma one.",
)
depends_on("cuda", when="+cusolver")
def setup_build_environment(self, env):
if "+magma" in self.spec:
env.set("MAGMA_ROOT", self.spec["magma"].prefix)
def cmake_args(self):
args = [self.define_from_variant("BUILD_SHARED_LIBS", "shared")]
@ -55,4 +69,16 @@ def cmake_args(self):
args.append("-DCMAKE_Fortran_COMPILER=%s" % spec["mpi"].mpifc)
else:
args.append("-DBML_MPI=False")
# if using magma variant
if "+magma" in self.spec:
args.append("-DBML_MAGMA=True")
# cmake doesnt find lapack lib without explicilty setting it.
args.append("-DBLAS_LIBRARIES=%s" % self.spec["blas"].libs)
args.append("-DLAPACK_LIBRARIES=%s" % self.spec["lapack"].libs)
# if using cusolver variant, magma required to use cusolver
if "+cusolver" in self.spec:
args.append("-DBML_CUSOLVER=True")
return args