summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/mfem/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/mfem/package.py')
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index 4744e8bceb..f4821e63c2 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -309,15 +309,19 @@ class Mfem(Package, CudaPackage, ROCmPackage):
depends_on("gslib@1.0.7:", when="@4.3.0:+gslib")
depends_on("suite-sparse", when="+suite-sparse")
depends_on("superlu-dist", when="+superlu-dist")
+ # Propagate 'cuda_arch' to 'superlu-dist' without propagating the '+cuda'
+ # variant so we can build 'mfem+cuda+superlu-dist ^superlu-dist~cuda':
for sm_ in CudaPackage.cuda_arch_values:
depends_on(
"superlu-dist+cuda cuda_arch={0}".format(sm_),
- when="+superlu-dist+cuda cuda_arch={0}".format(sm_),
+ when="+superlu-dist+cuda cuda_arch={0} ^superlu-dist+cuda".format(sm_),
)
+ # Propagate 'amdgpu_target' to 'superlu-dist' without propagating the '+rocm'
+ # variant so we can build 'mfem+rocm+superlu-dist ^superlu-dist~rocm':
for gfx in ROCmPackage.amdgpu_targets:
depends_on(
"superlu-dist+rocm amdgpu_target={0}".format(gfx),
- when="+superlu-dist+rocm amdgpu_target={0}".format(gfx),
+ when="+superlu-dist+rocm amdgpu_target={0} ^superlu-dist+rocm".format(gfx),
)
depends_on("strumpack@3.0.0:", when="+strumpack~shared")
depends_on("strumpack@3.0.0:+shared", when="+strumpack+shared")