ADIOS 2.4.0: Add new Deps (#12414)
* ADIOS 2.4.0: Add new Deps Version 2.4.0 of ADIOS2 added new dependencies that are not yet listed as `depends_on` and/or disabled otherwise. Add them now to avoid picking them up from system paths, e.g. `libpng`. * ADIOS2: Variant Defaults Change * Python: False by default * ADIOS1: only used prior to 2.3.0
This commit is contained in:
parent
283f355b10
commit
ce15510566
1 changed files with 40 additions and 9 deletions
|
@ -24,14 +24,21 @@ class Adios2(CMakePackage):
|
|||
|
||||
variant('shared', default=True,
|
||||
description='Also build shared libraries')
|
||||
variant('pic', default=True,
|
||||
description='Enable position independent code '
|
||||
'(for usage of static in shared downstream deps)')
|
||||
variant('mpi', default=True,
|
||||
description='Enable MPI')
|
||||
|
||||
# transforms
|
||||
variant('blosc', default=True,
|
||||
description='Enable Blosc transforms')
|
||||
variant('bzip2', default=True,
|
||||
description='Enable BZip2 compression')
|
||||
description='Enable BZip2 transforms')
|
||||
variant('zfp', default=True,
|
||||
description='Enable ZFP compression')
|
||||
description='Enable ZFP transforms')
|
||||
variant('png', default=True,
|
||||
description='Enable ZFP transforms')
|
||||
|
||||
# sz is broken in 2.2.0: https://github.com/ornladios/ADIOS2/issues/705
|
||||
# variant('sz', default=True,
|
||||
|
@ -45,9 +52,10 @@ class Adios2(CMakePackage):
|
|||
variant('hdf5', default=False,
|
||||
description='Enable the HDF5 engine')
|
||||
variant('adios1', default=False,
|
||||
description='Enable the ADIOS 1.x engine')
|
||||
description='Enable the ADIOS 1.x engine '
|
||||
'(in 2.3.0+ integrated in BPFile engine)')
|
||||
# language bindings
|
||||
variant('python', default=True,
|
||||
variant('python', default=False,
|
||||
description='Enable the Python >= 2.7 bindings')
|
||||
variant('fortran', default=True,
|
||||
description='Enable the Fortran bindings')
|
||||
|
@ -57,9 +65,15 @@ class Adios2(CMakePackage):
|
|||
conflicts('%intel@:15')
|
||||
conflicts('%pgi@:14')
|
||||
|
||||
# shared libs must have position-independent code
|
||||
conflicts('+shared ~pic')
|
||||
|
||||
# DataMan needs dlopen
|
||||
conflicts('+dataman', when='~shared')
|
||||
|
||||
# BPFile engine was emulated via a ADIOS1 engine prior to v2.3.0
|
||||
conflicts('+adios1', when='@2.3.0:')
|
||||
|
||||
depends_on('cmake@3.6.0:', type='build')
|
||||
depends_on('pkgconfig', type='build', when='@2.2.0:')
|
||||
# The included ffs requires bison and flex but using them makes
|
||||
|
@ -72,10 +86,13 @@ class Adios2(CMakePackage):
|
|||
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
depends_on('hdf5+mpi', when='+hdf5+mpi')
|
||||
depends_on('adios', when='+adios1')
|
||||
depends_on('adios+mpi', when='+adios1+mpi')
|
||||
depends_on('adios', when='@:2.2.99 +adios1')
|
||||
depends_on('adios+mpi', when='@:2.2.99 +adios1+mpi')
|
||||
|
||||
depends_on('c-blosc', when='@2.4.0: +blosc')
|
||||
depends_on('bzip2', when='+bzip2')
|
||||
depends_on('libpng@1.6:', when='@2.4.0: +png')
|
||||
# depends_on('mgard', when='@2.3.0: +mgard')
|
||||
depends_on('zfp', when='+zfp')
|
||||
# depends_on('sz@:1.4.12', when='+sz')
|
||||
|
||||
|
@ -92,13 +109,14 @@ def cmake_args(self):
|
|||
spec = self.spec
|
||||
|
||||
args = [
|
||||
'-DADIOS2_BUILD_SHARED_LIBS:BOOL={0}'.format(
|
||||
'-DBUILD_SHARED_LIBS:BOOL={0}'.format(
|
||||
'ON' if '+shared' in spec else 'OFF'),
|
||||
'-DADIOS2_BUILD_TESTING=OFF',
|
||||
'-DADIOS2_USE_MPI={0}'.format(
|
||||
'ON' if '+mpi' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_BZip2={0}'.format(
|
||||
'ON' if '+bzip2' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_MGARD=OFF',
|
||||
'-DADIOS2_USE_ZFP={0}'.format(
|
||||
'ON' if '+zfp' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_SZ={0}'.format(
|
||||
|
@ -109,13 +127,26 @@ def cmake_args(self):
|
|||
'ON' if '+dataman' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_HDF5={0}'.format(
|
||||
'ON' if '+hdf5' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_ADIOS1={0}'.format(
|
||||
'ON' if '+adios1' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_Python={0}'.format(
|
||||
'ON' if '+python' in spec else 'OFF'),
|
||||
'-DADIOS2_USE_Fortran={0}'.format(
|
||||
'ON' if '+fortran' in spec else 'OFF')
|
||||
]
|
||||
|
||||
# option removed and integrated in internal BPFile engine
|
||||
if self.spec.version < Version('2.3.0'):
|
||||
args.append('-DADIOS2_USE_ADIOS1={0}'.format(
|
||||
'ON' if '+adios1' in spec else 'OFF'))
|
||||
|
||||
if self.spec.version >= Version('2.4.0'):
|
||||
args.append('-DADIOS2_USE_Blosc={0}'.format(
|
||||
'ON' if '+blosc' in spec else 'OFF'))
|
||||
args.append('-DADIOS2_USE_PNG={0}'.format(
|
||||
'ON' if '+png' in spec else 'OFF'))
|
||||
|
||||
if spec.satisfies('~shared'):
|
||||
args.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL={0}'.format(
|
||||
'ON' if '+pic' in spec else 'OFF'))
|
||||
if spec.satisfies('+python'):
|
||||
args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s'
|
||||
% self.spec['python'].command.path)
|
||||
|
|
Loading…
Reference in a new issue