From 327a7368e91cb1763531e0154ccabf04005a090c Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Fri, 18 Oct 2019 13:26:56 -0700 Subject: ADIOS2: Dataspaces, libffi, libfabric (#13230) * DataSpaces: 1.8.0 Add a newer release of DataSpaces for ADIOS2. Also add missing `-fPIC` flags since this is a static library. * ADIOS2: Dataspaces, libffi, libfabric Add missing dependencies to ADIOS2. Without explicit control, those dependencies might get picked up from the system environment and will cause unstable builds. * Hide transitive SST dependencies * ADIOS2: Simplify SST CMake Flags As proposed by Chuck --- var/spack/repos/builtin/packages/adios2/package.py | 24 ++++++++++++++++++++++ .../repos/builtin/packages/dataspaces/package.py | 2 ++ 2 files changed, 26 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index b1bc7c11da..4be02170f4 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -51,6 +51,8 @@ class Adios2(CMakePackage): description='Enable the SST staging engine') variant('dataman', default=True, description='Enable the DataMan engine for WAN transports') + variant('dataspaces', default=False, + description='Enable support for DATASPACES') variant('ssc', default=True, description='Enable the SSC staging engine') variant('hdf5', default=False, @@ -76,9 +78,15 @@ class Adios2(CMakePackage): depends_on('cmake@3.6.0:', type='build') depends_on('pkgconfig', type='build') + depends_on('libffi', when='+sst') # optional in DILL + depends_on('libfabric@1.6.0:', when='+sst') # optional in EVPath and SST + # depends_on('bison', when='+sst') # optional in FFS, broken package + # depends_on('flex', when='+sst') # optional in FFS, depends on BISON + depends_on('mpi', when='+mpi') depends_on('zeromq', when='+dataman') depends_on('zeromq', when='@2.4: +ssc') + depends_on('dataspaces@1.8.0:', when='+dataspaces') depends_on('hdf5', when='+hdf5') depends_on('hdf5+mpi', when='+hdf5+mpi') @@ -139,6 +147,22 @@ class Adios2(CMakePackage): args.append('-DADIOS2_USE_SSC={0}'.format( 'ON' if '+ssc' in spec else 'OFF')) + if self.spec.version >= Version('2.5.0'): + args.append('-DADIOS2_USE_DataSpaces={0}'.format( + 'ON' if '+dataspaces' in spec else 'OFF')) + + if '+sst' in spec: + args.extend([ + # Broken dependency package + '-DCMAKE_DISABLE_FIND_PACKAGE_BISON=TRUE', + # Depends on ^ + '-DCMAKE_DISABLE_FIND_PACKAGE_FLEX=TRUE', + + # Not yet packaged + '-DCMAKE_DISABLE_FIND_PACKAGE_CrayDRC=TRUE', + '-DCMAKE_DISABLE_FIND_PACKAGE_NVSTREAM=TRUE' + ]) + if spec.satisfies('~shared'): args.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL={0}'.format( 'ON' if '+pic' in spec else 'OFF')) diff --git a/var/spack/repos/builtin/packages/dataspaces/package.py b/var/spack/repos/builtin/packages/dataspaces/package.py index 5bfa513dde..d227d4ea3c 100644 --- a/var/spack/repos/builtin/packages/dataspaces/package.py +++ b/var/spack/repos/builtin/packages/dataspaces/package.py @@ -23,6 +23,7 @@ class Dataspaces(AutotoolsPackage): git = "https://github.com/melrom/dataspaces.git" version('develop', branch='master') + version('1.8.0', sha256='7f204bb3c03c2990f5a2d76a29185466b584793c63ada03e5e694627e6060605') version('1.6.2', sha256='3c43d551c1e8198a4ab269c83928e1dc6f8054e6d41ceaee45155d91a48cf9bf') variant('dimes', @@ -57,6 +58,7 @@ class Dataspaces(AutotoolsPackage): args = [] cookie = self.spec.variants['gni-cookie'].value ptag = self.spec.variants['ptag'].value + args.append('CFLAGS={0}'.format(self.compiler.pic_flag)) if self.spec.satisfies('+dimes'): args.append('--enable-dimes') if self.spec.satisfies('+cray-drc'): -- cgit v1.2.3-70-g09d2