Update recipe for Palace v0.12.0 (#42400)
This commit is contained in:
parent
e77678bd82
commit
8fc76ab325
1 changed files with 32 additions and 10 deletions
|
@ -17,16 +17,12 @@ class Palace(CMakePackage):
|
|||
maintainers("sebastiangrimberg")
|
||||
|
||||
version("develop", branch="main")
|
||||
version("0.12.0", tag="v0.12.0", commit="8c192071206466638d5818048ee712e1fada386f")
|
||||
version("0.11.2", tag="v0.11.2", commit="6c3aa5f84a934a6ddd58022b2945a1bdb5fa329d")
|
||||
|
||||
variant("shared", default=True, description="Enables the build of shared libraries")
|
||||
variant("shared", default=True, description="Build shared libraries")
|
||||
variant("int64", default=False, description="Use 64 bit integers")
|
||||
variant("openmp", default=False, description="Use OpenMP")
|
||||
variant(
|
||||
"gslib",
|
||||
default=True,
|
||||
description="Build with GSLIB library for high-order field interpolation",
|
||||
)
|
||||
variant("openmp", default=False, description="Use OpenMP for shared-memory parallelism")
|
||||
variant(
|
||||
"superlu-dist", default=True, description="Build with SuperLU_DIST sparse direct solver"
|
||||
)
|
||||
|
@ -34,9 +30,16 @@ class Palace(CMakePackage):
|
|||
variant("mumps", default=False, description="Build with MUMPS sparse direct solver")
|
||||
variant("slepc", default=True, description="Build with SLEPc eigenvalue solver")
|
||||
variant("arpack", default=False, description="Build with ARPACK eigenvalue solver")
|
||||
variant("libxsmm", default=True, description="Build with LIBXSMM backend for libCEED")
|
||||
variant("magma", default=True, description="Build with MAGMA backend for libCEED")
|
||||
variant(
|
||||
"gslib",
|
||||
default=True,
|
||||
description="Build with GSLIB library for high-order field interpolation",
|
||||
)
|
||||
|
||||
# Dependencies
|
||||
depends_on("cmake@3.13:", type="build")
|
||||
depends_on("cmake@3.21:", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
depends_on("mpi")
|
||||
depends_on("zlib-api")
|
||||
|
@ -95,8 +98,19 @@ class Palace(CMakePackage):
|
|||
depends_on("arpack-ng+shared", when="+shared")
|
||||
depends_on("arpack-ng~shared", when="~shared")
|
||||
|
||||
# Palace always builds its own internal MFEM, GSLIB
|
||||
with when("+libxsmm"):
|
||||
depends_on("libxsmm@main")
|
||||
depends_on("libxsmm+shared", when="+shared")
|
||||
depends_on("libxsmm~shared", when="~shared")
|
||||
|
||||
with when("+magma"):
|
||||
depends_on("magma")
|
||||
depends_on("magma+shared", when="+shared")
|
||||
depends_on("magma~shared", when="~shared")
|
||||
|
||||
# Palace always builds its own internal MFEM, libCEED, and GSLIB
|
||||
conflicts("mfem")
|
||||
conflicts("libceed")
|
||||
conflicts("gslib")
|
||||
|
||||
# More dependency variant conflicts
|
||||
|
@ -109,12 +123,14 @@ def cmake_args(self):
|
|||
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||
self.define_from_variant("PALACE_WITH_64BIT_INT", "int64"),
|
||||
self.define_from_variant("PALACE_WITH_OPENMP", "openmp"),
|
||||
self.define_from_variant("PALACE_WITH_GSLIB", "gslib"),
|
||||
self.define_from_variant("PALACE_WITH_SUPERLU", "superlu-dist"),
|
||||
self.define_from_variant("PALACE_WITH_STRUMPACK", "strumpack"),
|
||||
self.define_from_variant("PALACE_WITH_MUMPS", "mumps"),
|
||||
self.define_from_variant("PALACE_WITH_SLEPC", "slepc"),
|
||||
self.define_from_variant("PALACE_WITH_ARPACK", "arpack"),
|
||||
self.define_from_variant("PALACE_WITH_LIBXSMM", "libxsmm"),
|
||||
self.define_from_variant("PALACE_WITH_MAGMA", "magma"),
|
||||
self.define_from_variant("PALACE_WITH_GSLIB", "gslib"),
|
||||
self.define("PALACE_BUILD_EXTERNAL_DEPS", False),
|
||||
]
|
||||
|
||||
|
@ -134,6 +150,12 @@ def cmake_args(self):
|
|||
if "+mumps" in self.spec:
|
||||
args += [self.define("MUMPS_REQUIRED_PACKAGES", "LAPACK;BLAS;MPI;MPI_Fortran")]
|
||||
|
||||
# Allow internal libCEED build to find LIBXSMM, MAGMA
|
||||
if "+libxsmm" in self.spec:
|
||||
args += [self.define("LIBXSMM_DIR", self.spec["libxsmm"].prefix)]
|
||||
if "+magma" in self.spec:
|
||||
args += [self.define("MAGMA_DIR", self.spec["magma"].prefix)]
|
||||
|
||||
return args
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
|
Loading…
Reference in a new issue