ecp-data-vis-sdk: Combine the vis and io SDK packages (#20737)
This better enables the collective set to be deployed togethor satisfying eachothers dependencies
This commit is contained in:
parent
f6dd85b2b0
commit
08e5baccef
3 changed files with 111 additions and 73 deletions
111
var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
Normal file
111
var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class EcpDataVisSdk(BundlePackage):
|
||||||
|
"""ECP Data & Vis SDK"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
|
||||||
|
|
||||||
|
tags = ['ecp']
|
||||||
|
maintainers = ['chuckatkins']
|
||||||
|
|
||||||
|
version('1.0')
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Variants
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# I/O
|
||||||
|
variant('adios2', default=True, description="Enable ADIOS2")
|
||||||
|
variant('darshan', default=True, description="Enable Darshan")
|
||||||
|
variant('faodel', default=False, description="Enable FAODEL")
|
||||||
|
variant('hdf5', default=True, description="Enable HDF5")
|
||||||
|
variant('pnetcdf', default=True, description="Enable PNetCDF")
|
||||||
|
variant('unifyfs', default=True, description="Enable UnifyFS")
|
||||||
|
variant('veloc', default=True, description="Enable VeloC")
|
||||||
|
|
||||||
|
# Vis
|
||||||
|
variant('ascent', default=False, description="Enable Ascent")
|
||||||
|
variant('cinema', default=True, description="Enable Cinema")
|
||||||
|
variant('paraview', default=False, description="Enable ParaView")
|
||||||
|
variant('sz', default=True, description="Enable SZ")
|
||||||
|
variant('vtkm', default=False, description="Enable VTK-m")
|
||||||
|
variant('zfp', default=True, description="Enable ZFP")
|
||||||
|
|
||||||
|
# Outstanding build issues
|
||||||
|
# variant('catalyst', default=False, description="Enable Catalyst")
|
||||||
|
# variant('visit', default=False, description="Enable VisIt")
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# This is a messy workaround until the clingo concretizer can be required.
|
||||||
|
# The intent is to map package variants to dependency variants:
|
||||||
|
# Package variants a, and b, mapping to dependency variants A and B
|
||||||
|
# produce the following set of dependencies:
|
||||||
|
# depends_on('foo+A+B', when='+a+b')
|
||||||
|
# depends_on('foo+A~B', when='+a~b')
|
||||||
|
# depends_on('foo~A+B', when='~a+b')
|
||||||
|
# depends_on('foo~A~B', when='~a~b')
|
||||||
|
# The clingo concretizer will allow that to be expressed much simpler by
|
||||||
|
# only considering defaults once everything else is resolved:
|
||||||
|
# depends_on('foo')
|
||||||
|
# depends_on('foo+A', when='+a')
|
||||||
|
# depends_on('foo+B', when='+b')
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# Helper function to generate dependencies on the Cartesian product of
|
||||||
|
# variants. If a dictionary is passed then it provides a mapping of
|
||||||
|
# package variant name to dependency variant name. Otherwise assume they
|
||||||
|
# are the same variant name in both the package and dependency
|
||||||
|
def variants2deps(dep_spec, pkg_spec, variants):
|
||||||
|
if not type(variants) is dict:
|
||||||
|
variants = dict([(v, v) for v in variants])
|
||||||
|
n = len(variants)
|
||||||
|
for i in range(0, pow(2, n)):
|
||||||
|
state = ['+' if d == '1' else '~' for d in format(i, '0' + str(n) + 'b')]
|
||||||
|
[pkg_vars, dep_vars] = [''.join(v) for v in zip(
|
||||||
|
*[(s + pv, s + dv) for s, (pv, dv) in zip(state, variants.items())])]
|
||||||
|
depends_on(dep_spec + dep_vars, when=(pkg_spec + pkg_vars))
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Dependencies
|
||||||
|
############################################################
|
||||||
|
variants2deps('adios2+shared+mpi+fortran+python+blosc+sst+ssc+dataman',
|
||||||
|
'+adios2', ['hdf5', 'sz', 'zfp'])
|
||||||
|
|
||||||
|
depends_on('darshan-runtime+mpi', when='+darshan')
|
||||||
|
depends_on('darshan-util', when='+darshan')
|
||||||
|
|
||||||
|
variants2deps('faodel+shared+mpi network=libfabric', '+faodel', ['hdf5'])
|
||||||
|
|
||||||
|
depends_on('hdf5 +shared+mpi', when='+hdf5')
|
||||||
|
# +fortran breaks the concretizer... Needs new concretizer
|
||||||
|
# depends_on('hdf5 +shared+mpi+fortran', when='+hdf5')
|
||||||
|
|
||||||
|
depends_on('parallel-netcdf+shared+fortran', when='+pnetcdf')
|
||||||
|
|
||||||
|
variants2deps('unifyfs+fortran', '+unifyfs', ['hdf5'])
|
||||||
|
|
||||||
|
depends_on('veloc', when='+veloc')
|
||||||
|
|
||||||
|
depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray', when='+ascent')
|
||||||
|
depends_on('catalyst', when='+catalyst')
|
||||||
|
|
||||||
|
depends_on('py-cinema-lib', when='+cienma')
|
||||||
|
depends_on('py-cinemasci', when='+cienma')
|
||||||
|
|
||||||
|
variants2deps('paraview+shared+mpi+python3+kits', '+paraview', ['hdf5'])
|
||||||
|
# +adios2 is not yet enabled in the paraview package
|
||||||
|
# depends_on('paraview+adios2', when='+paraview +adios2')
|
||||||
|
|
||||||
|
depends_on('visit', when='+visit')
|
||||||
|
|
||||||
|
depends_on('vtk-m+shared+mpi+openmp+rendering', when='+vtkm')
|
||||||
|
|
||||||
|
variants2deps('sz+shared+fortran+python+random_access', '+sz', ['hdf5'])
|
||||||
|
|
||||||
|
depends_on('zfp', when='+zfp')
|
|
@ -1,34 +0,0 @@
|
||||||
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
|
||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
||||||
|
|
||||||
from spack import *
|
|
||||||
|
|
||||||
|
|
||||||
class EcpIoSdk(BundlePackage):
|
|
||||||
"""ECP I/O Services SDK"""
|
|
||||||
|
|
||||||
homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
|
|
||||||
git = "https://github.com/chuckatkins/ecp-data-viz-sdk.git"
|
|
||||||
|
|
||||||
maintainers = ['chuckatkins']
|
|
||||||
|
|
||||||
version('1.0', branch='master')
|
|
||||||
|
|
||||||
variant('adios2', default=True, description="Enable ADIOS2")
|
|
||||||
variant('darshan', default=True, description="Enable Darshan")
|
|
||||||
variant('faodel', default=False, description="Enable FAODEL")
|
|
||||||
variant('hdf5', default=True, description="Enable HDF5")
|
|
||||||
variant('pnetcdf', default=True, description="Enable PNetCDF")
|
|
||||||
variant('unifyfs', default=True, description="Enable UnifyFS")
|
|
||||||
variant('veloc', default=True, description="Enable VeloC")
|
|
||||||
|
|
||||||
depends_on('adios2+shared+mpi+fortran+python+zfp+sz+blosc+hdf5+sst+ssc+dataman', when='+adios2')
|
|
||||||
depends_on('darshan-runtime+mpi', when='+darshan')
|
|
||||||
depends_on('darshan-util', when='+darshan')
|
|
||||||
depends_on('faodel+shared+mpi+hdf5 network=libfabric', when='+faodel')
|
|
||||||
depends_on('hdf5+shared+mpi+fortran', when='+hdf5')
|
|
||||||
depends_on('parallel-netcdf+shared+fortran', when='+pnetcdf')
|
|
||||||
depends_on('unifyfs+fortran+hdf5', when='+unifyfs')
|
|
||||||
depends_on('veloc', when='+veloc')
|
|
|
@ -1,39 +0,0 @@
|
||||||
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
|
||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
||||||
|
|
||||||
from spack import *
|
|
||||||
|
|
||||||
|
|
||||||
class EcpVizSdk(BundlePackage):
|
|
||||||
"""ECP Viz & Analysis SDK"""
|
|
||||||
|
|
||||||
homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
|
|
||||||
git = "https://github.com/chuckatkins/ecp-data-viz-sdk.git"
|
|
||||||
|
|
||||||
maintainers = ['chuckatkins']
|
|
||||||
|
|
||||||
version('1.0', branch='master')
|
|
||||||
|
|
||||||
variant('ascent', default=False, description="Enable Ascent")
|
|
||||||
# variant('catalyst', default=False, description="Enable Catalyst")
|
|
||||||
variant('paraview', default=False, description="Enable ParaView")
|
|
||||||
variant('sz', default=False, description="Enable SZ")
|
|
||||||
variant('vtkm', default=False, description="Enable VTK-m")
|
|
||||||
variant('zfp', default=False, description="Enable ZFP")
|
|
||||||
|
|
||||||
# Outstanding build issues
|
|
||||||
# variant('visit', default=False, description="Enable VisIt")
|
|
||||||
|
|
||||||
# Missing spack package
|
|
||||||
# variant('cinema', default=False, description="Enable Cinema")
|
|
||||||
# variant('rover', default=False, description="Enable ROVER")
|
|
||||||
|
|
||||||
depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray', when='+ascent')
|
|
||||||
depends_on('catalyst', when='+catalyst')
|
|
||||||
depends_on('paraview+shared+mpi+python3+hdf5+kits', when='+paraview')
|
|
||||||
depends_on('visit', when='+visit')
|
|
||||||
depends_on('vtk-m+shared+mpi+openmp+rendering', when='+vtkm')
|
|
||||||
depends_on('sz+shared+fortran+hdf5+python+random_access', when='+sz')
|
|
||||||
depends_on('zfp', when='+zfp')
|
|
Loading…
Reference in a new issue