* adios: conform to pep8

* adios: added versions 1.11.0 and 1.12.0

* adios: added variant no_mpi to explicitly disable mpi support

* adios: add new variant mxml

adios v1.12.0 onwards contains an xml library built within.
To build with an external mxml, a new variant must be used

* adios: new variant for sz transform

* adios: flexpath and dataspaces staging variants

Two new variants for staging: flexpath and dataspaces.
New variant 'staging' that will enable both

* adios: dependency on libtool:2.4.2 since adios does not build with newer libtool 2.4.6

* adios: better description for variant no-mpi

* adios: new variant for netcdf

as requested by @mamelara from LBL

* adios: renamed variant 'no_mpi' to 'serial'

* adios: removed variant mxml

* adios: corrected implementation of the mpi dependency, along with its relation with the 'serial' variant

Added conflicts between 'serial' and other variants

* adios: added 'else' clause when variants are not added

* adios: replaced variant 'serial' with 'mpi'

* adios: Added configure option to explicitly disable variants that are not enabled.

* adios: setting default zfp to true

* adios: fixed flake8 errors

* adios: removed some old comments

* adios: setting default sz to False.

It is recommended to set default to False when dependency is on develop (sz@develop).

* adios: removing dependency on develop for sz and setting default sz to true

* adios: updated url to latest release.

Just keeping it clean
This commit is contained in:
Kshitij Mehta 2017-08-07 15:36:16 -04:00 committed by Adam J. Stewart
parent a5e44504b0
commit 13cd98ac4a

View File

@ -22,7 +22,6 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
@ -34,11 +33,13 @@ class Adios(AutotoolsPackage):
"""
homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
url = "https://github.com/ornladios/ADIOS/archive/v1.11.1.tar.gz"
url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz"
version('develop', git='https://github.com/ornladios/ADIOS.git',
branch='master')
version('1.12.0', '84a1c71b6698009224f6f748c5257fc9')
version('1.11.1', '5639bfc235e50bf17ba9dafb14ea4185')
version('1.11.0', '5eead5b2ccf962f5e6d5f254d29d5238')
version('1.10.0', 'eff450a4c0130479417cfd63186957f3')
version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678')
@ -55,29 +56,37 @@ class Adios(AutotoolsPackage):
variant('zlib', default=True, description='Enable zlib transform support')
variant('bzip2', default=False, description='Enable bzip2 transform support')
variant('szip', default=False, description='Enable szip transform support')
variant('zfp', default=False, description='Enable ZFP transform support')
variant('zfp', default=True, description='Enable ZFP transform support')
variant('sz', default=True, description='Enable SZ transform support')
# transports and serial file converters
variant('hdf5', default=False, description='Enable parallel HDF5 transport and serial bp2h5 converter')
# Lots of setting up here for this package
# module swap PrgEnv-intel PrgEnv-$COMP
# module load cray-hdf5/1.8.14
# module load python/2.7.10
variant('netcdf', default=False, description='Enable netcdf support')
variant('flexpath', default=False, description='Enable flexpath transport')
variant('dataspaces', default=False, description='Enable dataspaces transport')
variant('staging', default=False, description='Enable dataspaces and flexpath staging transports')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('libtool@:2.4.2', type='build')
depends_on('python', type='build')
depends_on('mpi', when='+mpi')
depends_on('mxml@2.9:')
# optional transformations
depends_on('zlib', when='+zlib')
depends_on('bzip2', when='+bzip2')
depends_on('szip', when='+szip')
depends_on('sz', when='+sz')
depends_on('zfp@:0.5.0', when='+zfp')
# optional transports & file converters
depends_on('hdf5@1.8:+mpi', when='+hdf5')
depends_on('netcdf', when='+netcdf')
depends_on('libevpath', when='+flexpath')
depends_on('libevpath', when='+staging')
depends_on('dataspaces+mpi', when='+dataspaces')
depends_on('dataspaces+mpi', when='+staging')
for p in ['+hdf5', '+netcdf', '+flexpath', '+dataspaces', '+staging']:
conflicts(p, when='~mpi')
build_directory = 'spack-build'
@ -105,16 +114,16 @@ def configure_args(self):
extra_args = [
# required, otherwise building its python bindings will fail
'CFLAGS={0}'.format(self.compiler.pic_flag),
# always build external MXML, even in ADIOS 1.10.0+
'--with-mxml={0}'.format(spec['mxml'].prefix)
'CFLAGS={0}'.format(self.compiler.pic_flag)
]
if '+shared' in spec:
extra_args.append('--enable-shared')
if '+mpi' in spec:
extra_args.append('--with-mpi')
extra_args.append('--with-mpi=%s' % spec['mpi'].prefix)
else:
extra_args.append('--without-mpi')
if '+infiniband' in spec:
extra_args.append('--with-infiniband')
else:
@ -125,15 +134,47 @@ def configure_args(self):
else:
extra_args.append('--disable-fortran')
# Transforms
if '+zlib' in spec:
extra_args.append('--with-zlib=%s' % spec['zlib'].prefix)
else:
extra_args.append('--without-zlib')
if '+bzip2' in spec:
extra_args.append('--with-bzip2=%s' % spec['bzip2'].prefix)
else:
extra_args.append('--without-bzip2')
if '+szip' in spec:
extra_args.append('--with-szip=%s' % spec['szip'].prefix)
else:
extra_args.append('--without-szip')
if '+zfp' in spec:
extra_args.append('--with-zfp=%s' % spec['zfp'].prefix)
else:
extra_args.append('--without-zfp')
if '+sz' in spec:
extra_args.append('--with-sz=%s' % spec['sz'].prefix)
else:
extra_args.append('--without-sz')
# External I/O libraries
if '+hdf5' in spec:
extra_args.append('--with-phdf5=%s' % spec['hdf5'].prefix)
else:
extra_args.append('--without-phdf5')
if '+netcdf' in spec:
extra_args.append('--with-netcdf=%s' % spec['netcdf'].prefix)
else:
extra_args.append('--without-netcdf')
# Staging transports
if '+flexpath' in spec or '+staging' in spec:
extra_args.append('--with-flexpath=%s' % spec['libevpath'].prefix)
else:
extra_args.append('--without-flexpath')
if '+dataspaces' in spec or '+staging' in spec:
extra_args.append('--with-dataspaces=%s'
% spec['dataspaces'].prefix)
else:
extra_args.append('--without-dataspaces')
return extra_args