diff options
author | kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com> | 2021-11-02 16:31:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-02 17:31:50 -0400 |
commit | f1afd5ff27d127c2bf66f457905e741375248226 (patch) | |
tree | 04ff2a58f6095643339a36b7764458328343aa6b /var | |
parent | c9f8dd93f33b41ce9249c9f6b6a72a49ea1bb4ed (diff) | |
download | spack-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.py | 42 |
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) |