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:
		 Axel Huebl
					Axel Huebl
				
			
				
					committed by
					
						 Adam J. Stewart
						Adam J. Stewart
					
				
			
			
				
	
			
			
			 Adam J. Stewart
						Adam J. Stewart
					
				
			
						parent
						
							283f355b10
						
					
				
				
					commit
					ce15510566
				
			| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user