petsc: fix conditional activation of parmetis (#16533)

This commit is contained in:
Greg Becker 2020-05-31 12:13:10 -07:00 committed by GitHub
parent 23a5f3f200
commit b1bd777403
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -216,7 +216,7 @@ def mpi_dependent_options(self):
# enabled. This generates a list of any such errors.
errors = [
error_message_fmt.format(library=x)
for x in ('hdf5', 'hypre', 'parmetis', 'mumps', 'superlu-dist')
for x in ('hdf5', 'hypre', 'mumps', 'superlu-dist')
if ('+' + x) in self.spec]
if errors:
errors = ['incompatible variants given'] + errors
@ -296,15 +296,18 @@ def install(self, spec, prefix):
'--with-scalapack=0'
])
# Activates library support if needed
# Activates library support if needed (i.e. direct dependency)
for library in ('cuda', 'metis', 'hypre', 'parmetis',
'mumps', 'trilinos', 'fftw', 'valgrind'):
# Cannot check `library in spec` because of transitive deps
# Cannot check variants because parmetis keys on +metis
library_requested = library in spec.dependencies_dict()
options.append(
'--with-{library}={value}'.format(
library=library,
value=('1' if '+' + library in spec else '0'))
value=('1' if library_requested else '0'))
)
if '+' + library in spec:
if library_requested:
options.append(
'--with-{library}-dir={path}'.format(
library=library, path=spec[library].prefix)