diff options
author | Josh Essman <68349992+joshessman-llnl@users.noreply.github.com> | 2020-10-20 16:26:34 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-20 16:26:34 -0500 |
commit | cee5c2e75504cd6e33394d5d9551289c9c33e2e6 (patch) | |
tree | b87c51eaea922b3dbbeac28b0fa9f77c6b1f5ae5 | |
parent | fa9ad0a3da3dc5851155119287cfe4763cadfbeb (diff) | |
download | spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.tar.gz spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.tar.bz2 spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.tar.xz spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.zip |
mfem: Fix support for SUNDIALS and PETSc features (#19326)
* mfem: specify PETSC_DIR, link correct sundials libraries
* fix: only use PETSC_DIR directly for static builds
* fix: only use sundials nvecmpiplusx for MFEM 4.2+
-rw-r--r-- | var/spack/repos/builtin/packages/mfem/package.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index d59db3d4f6..28287c48ee 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -474,10 +474,14 @@ class Mfem(Package): ld_flags_from_library_list(spec[sun_spec].libs)] if '+petsc' in spec: - options += [ - 'PETSC_OPT=%s' % spec['petsc'].headers.cpp_flags, - 'PETSC_LIB=%s' % - ld_flags_from_library_list(spec['petsc'].libs)] + if '+shared' in spec: + options += [ + 'PETSC_OPT=%s' % spec['petsc'].headers.cpp_flags, + 'PETSC_LIB=%s' % + ld_flags_from_library_list(spec['petsc'].libs)] + else: + options += [ + 'PETSC_DIR=%s' % spec['petsc'].prefix] if '+pumi' in spec: pumi_libs = ['pumi', 'crv', 'ma', 'mds', 'apf', 'pcu', 'gmi', @@ -676,9 +680,12 @@ class Mfem(Package): @property def sundials_components(self): """Return the SUNDIALS components needed by MFEM.""" - sun_comps = 'arkode,cvode,nvecserial,kinsol' + sun_comps = 'arkode,cvodes,nvecserial,kinsol' if '+mpi' in self.spec: - sun_comps += ',nvecparhyp,nvecparallel' + if self.spec.satisfies('@4.2:'): + sun_comps += ',nvecparallel,nvecmpiplusx' + else: + sun_comps += ',nvecparhyp,nvecparallel' return sun_comps @property |