From a45c7c185b81744faf141ff4683c47fe769830e2 Mon Sep 17 00:00:00 2001 From: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com> Date: Fri, 11 Feb 2022 02:35:30 -0600 Subject: [PATCH] Ecp sdk update package contraints (#28693) * ECP-SDK: Require HDF5 1.12 * ECP-SDK: Require SDK spec for SDK packages --- .../repos/builtin/packages/adios2/package.py | 2 +- .../repos/builtin/packages/conduit/package.py | 2 +- .../packages/ecp-data-vis-sdk/package.py | 26 +++++++++++++------ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index 593bd00990..fcc9edf3eb 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -95,7 +95,7 @@ class Adios2(CMakePackage): depends_on('libzmq', when='+dataman') depends_on('dataspaces@1.8.0:', when='+dataspaces') - depends_on('hdf5', when='+hdf5') + depends_on('hdf5~mpi', when='+hdf5~mpi') depends_on('hdf5+mpi', when='+hdf5+mpi') depends_on('c-blosc', when='@2.4: +blosc') diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index 300d67dc5e..320b03457e 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -77,7 +77,7 @@ class Conduit(CMakePackage): # set to false for systems that implicitly link mpi variant('blt_find_mpi', default=True, description='Use BLT CMake Find MPI logic') variant("hdf5", default=True, description="Build Conduit HDF5 support") - variant("hdf5_compat", default=True, + variant("hdf5_compat", default=True, when='+hdf5', description="Build Conduit with HDF5 1.8.x (compatibility mode)") variant("silo", default=False, description="Build Conduit Silo support") variant("adios", default=False, description="Build Conduit ADIOS support") 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 fcaeb79b24..d1dfef13a2 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 @@ -30,7 +30,6 @@ class EcpDataVisSdk(BundlePackage, CudaPackage): variant('veloc', default=False, description="Enable VeloC") # Vis - variant('sensei', default=False, description="Enable Sensei") variant('ascent', default=False, description="Enable Ascent") variant('paraview', default=False, description="Enable ParaView") variant('sz', default=False, description="Enable SZ") @@ -41,6 +40,8 @@ class EcpDataVisSdk(BundlePackage, CudaPackage): variant('cinema', default=False, description="Enable Cinema") # Outstanding build issues + variant('sensei', default=False, description="Enable Sensei") + conflicts('+sensei') variant('visit', default=False, description="Enable VisIt") conflicts('+visit') @@ -49,6 +50,16 @@ def dav_sdk_depends_on(spec, when=None, propagate=None): # Do the basic depends_on depends_on(spec, when=when) + # Strip spec string to just the base spec name + # ie. A +c ~b -> A + spec = Spec(spec).name + + if '+' in when and len(when.split()) == 1: + when_not = when.replace('+', '~') + # If the package is in the spec tree then it must + # be enabled in the SDK. + conflicts(when_not, '^' + spec) + # Skip if there is nothing to propagate if not propagate: return @@ -57,10 +68,6 @@ def dav_sdk_depends_on(spec, when=None, propagate=None): if not type(propagate) is dict: propagate = dict([(v, v) for v in propagate]) - # Strip spec string to just the base spec name - # ie. A +c ~b -> A - spec = Spec(spec).name - # Determine the base variant base_variant = '' if when: @@ -100,7 +107,7 @@ def exclude_variants(variants, exclude): when='+faodel', propagate=['hdf5']) - dav_sdk_depends_on('hdf5 +shared+mpi+fortran', when='+hdf5') + dav_sdk_depends_on('hdf5@1.12: +shared+mpi+fortran', when='+hdf5') dav_sdk_depends_on('parallel-netcdf+shared+fortran', when='+pnetcdf') @@ -114,8 +121,11 @@ def exclude_variants(variants, exclude): dav_sdk_depends_on('sensei@develop +vtkio +python ~miniapps', when='+sensei', propagate=dict(propagate_to_sensei)) + # Need to explicitly turn off conduit hdf5_compat in order to build + # hdf5@1.12 which is required for SDK dav_sdk_depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray', when='+ascent') + depends_on('ascent ^conduit ~hdf5_compat', when='+ascent +hdf5') depends_on('py-cinemasci', when='+cinema') @@ -123,8 +133,8 @@ def exclude_variants(variants, exclude): when='+paraview', propagate=['hdf5', 'adios2'] + cuda_arch_variants) # Want +shared when not using cuda - dav_sdk_depends_on('paraview ~shared +cuda', when='+paraview +cuda') - dav_sdk_depends_on('paraview +shared ~cuda', when='+paraview ~cuda') + depends_on('paraview ~shared +cuda', when='+paraview +cuda') + depends_on('paraview +shared ~cuda', when='+paraview ~cuda') dav_sdk_depends_on('visit', when='+visit')