summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorkwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com>2021-11-02 16:31:50 -0500
committerGitHub <noreply@github.com>2021-11-02 17:31:50 -0400
commitf1afd5ff27d127c2bf66f457905e741375248226 (patch)
tree04ff2a58f6095643339a36b7764458328343aa6b /var
parentc9f8dd93f33b41ce9249c9f6b6a72a49ea1bb4ed (diff)
downloadspack-f1afd5ff27d127c2bf66f457905e741375248226.tar.gz
spack-f1afd5ff27d127c2bf66f457905e741375248226.tar.bz2
spack-f1afd5ff27d127c2bf66f457905e741375248226.tar.xz
spack-f1afd5ff27d127c2bf66f457905e741375248226.zip
Add and propagate CUDA variants for DAV SDK (#26476)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py42
1 files changed, 33 insertions, 9 deletions
diff --git a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
index 04fe0eee7e..5b29673f28 100644
--- a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
+++ b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
@@ -6,7 +6,7 @@
from spack import *
-class EcpDataVisSdk(BundlePackage):
+class EcpDataVisSdk(BundlePackage, CudaPackage):
"""ECP Data & Vis SDK"""
homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
@@ -67,16 +67,29 @@ class EcpDataVisSdk(BundlePackage):
if when:
base_variant = when
+ def is_boolean(variant):
+ return '=' not in variant
+
# Propagate variants to dependecy
for v_when, v_then in propagate.items():
- depends_on('{0} +{1}'.format(spec, v_then),
- when='{0} +{1}'.format(base_variant, v_when))
- depends_on('{0} ~{1}'.format(spec, v_then),
- when='{0} ~{1}'.format(base_variant, v_when))
+ if is_boolean(v_when):
+ depends_on('{0} +{1}'.format(spec, v_then),
+ when='{0} +{1}'.format(base_variant, v_when))
+ depends_on('{0} ~{1}'.format(spec, v_then),
+ when='{0} ~{1}'.format(base_variant, v_when))
+ else:
+ depends_on('{0} {1}'.format(spec, v_then),
+ when='{0} {1}'.format(base_variant, v_when))
+
+ def exclude_variants(variants, exclude):
+ return [variant for variant in variants if variant not in exclude]
############################################################
# Dependencies
############################################################
+ cuda_arch_variants = ['cuda_arch={0}'.format(x)
+ for x in CudaPackage.cuda_arch_values]
+
dav_sdk_depends_on('adios2+shared+mpi+fortran+python+blosc+sst+ssc+dataman',
when='+adios2',
propagate=['hdf5', 'sz', 'zfp'])
@@ -98,18 +111,27 @@ class EcpDataVisSdk(BundlePackage):
dav_sdk_depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray',
when='+ascent')
+
dav_sdk_depends_on('catalyst', when='+catalyst')
depends_on('py-cinemasci', when='+cinema')
# +adios2 is not yet enabled in the paraview package
- dav_sdk_depends_on('paraview+shared+mpi+python3+kits',
- when='+paraview',
+ paraview_base_spec = 'paraview+mpi+python3+kits'
+ # Want +shared when not using cuda
+ dav_sdk_depends_on(paraview_base_spec + '+shared ~cuda',
+ when='+paraview ~cuda',
propagate=['hdf5'])
+ # Can't have +shared when using cuda, propagate cuda_arch_variants
+ dav_sdk_depends_on(paraview_base_spec + '~shared +cuda',
+ when='+paraview +cuda',
+ propagate=cuda_arch_variants)
dav_sdk_depends_on('visit', when='+visit')
- dav_sdk_depends_on('vtk-m+shared+mpi+openmp+rendering', when='+vtkm')
+ dav_sdk_depends_on('vtk-m+shared+mpi+openmp+rendering',
+ when='+vtkm',
+ propagate=['cuda'] + cuda_arch_variants)
# +python is currently broken in sz
# dav_sdk_depends_on('sz+shared+fortran+python+random_access',
@@ -117,4 +139,6 @@ class EcpDataVisSdk(BundlePackage):
when='+sz',
propagate=['hdf5'])
- dav_sdk_depends_on('zfp', when='+zfp')
+ dav_sdk_depends_on('zfp',
+ when='+zfp',
+ propagate=['cuda'] + cuda_arch_variants)