UnifyCR: update dependencies and build options (#12216)
* UnifyCR: update dependencies and build options This adds some specifics about dependencies and conflicts and adds additional build options and variants. UnifyCR now also has limited fortran support. * Remove debug statements condition on Spack debug Change debug print statements to now be turned on when the -g cflag is found in the flags the user sets.
This commit is contained in:
parent
9e08c7ff47
commit
226f23bc43
@ -17,13 +17,17 @@ class Unifycr(AutotoolsPackage):
|
|||||||
homepage = "https://github.com/LLNL/UnifyCR"
|
homepage = "https://github.com/LLNL/UnifyCR"
|
||||||
git = "https://github.com/LLNL/UnifyCR.git"
|
git = "https://github.com/LLNL/UnifyCR.git"
|
||||||
url = "https://github.com/LLNL/UnifyCR/releases/download/v0.2.0/unifycr-0.2.0.tar.gz"
|
url = "https://github.com/LLNL/UnifyCR/releases/download/v0.2.0/unifycr-0.2.0.tar.gz"
|
||||||
|
maintainers = ['CamStan']
|
||||||
|
|
||||||
version('develop', branch='dev', preferred=True)
|
version('develop', branch='dev', preferred=True)
|
||||||
version('0.2.0', sha256='7439b0e885234bc64e8cbb449d8abfadd386692766b6f00647a7b6435efb2066')
|
version('0.2.0', sha256='7439b0e885234bc64e8cbb449d8abfadd386692766b6f00647a7b6435efb2066')
|
||||||
|
|
||||||
variant('debug', default='False', description='Enable debug build options')
|
|
||||||
variant('hdf5', default='False', description='Build with parallel HDF5 (install with `^hdf5~mpi` for serial)')
|
variant('hdf5', default='False', description='Build with parallel HDF5 (install with `^hdf5~mpi` for serial)')
|
||||||
|
variant('fortran', default='False', description='Build with gfortran support')
|
||||||
variant('numa', default='False', description='Build with NUMA')
|
variant('numa', default='False', description='Build with NUMA')
|
||||||
|
variant('pmpi', default='False', description='Enable transparent mount/unmount at MPI_Init/Finalize')
|
||||||
|
variant('pmi', default='False', description='Enable PMI2 build options')
|
||||||
|
variant('pmix', default='False', description='Enable PMIx build options')
|
||||||
|
|
||||||
depends_on('autoconf', type='build')
|
depends_on('autoconf', type='build')
|
||||||
depends_on('automake', type='build')
|
depends_on('automake', type='build')
|
||||||
@ -32,26 +36,43 @@ class Unifycr(AutotoolsPackage):
|
|||||||
depends_on('pkgconfig', type='build')
|
depends_on('pkgconfig', type='build')
|
||||||
|
|
||||||
# Required dependencies
|
# Required dependencies
|
||||||
|
depends_on('flatcc')
|
||||||
# Latest version of GOTCHA has API changes that break UnifyCR.
|
# Latest version of GOTCHA has API changes that break UnifyCR.
|
||||||
# Updates to UnifyCR are coming in order to fix this.
|
# Updates to UnifyCR are coming in order to fix this.
|
||||||
depends_on('flatcc')
|
|
||||||
depends_on('gotcha@0.0.2')
|
depends_on('gotcha@0.0.2')
|
||||||
depends_on('leveldb')
|
depends_on('leveldb')
|
||||||
depends_on('margo')
|
depends_on('margo')
|
||||||
|
depends_on('mercury+bmi+sm')
|
||||||
depends_on('mpi')
|
depends_on('mpi')
|
||||||
|
|
||||||
# Optional dependencies
|
# Optional dependencies
|
||||||
depends_on('hdf5', when='+hdf5')
|
depends_on('hdf5', when='+hdf5')
|
||||||
depends_on('numactl', when='+numa')
|
depends_on('numactl', when='+numa')
|
||||||
|
|
||||||
# we depend on numactl, which doesn't currently build on darwin
|
conflicts('^mercury~bmi')
|
||||||
|
conflicts('^mercury~sm')
|
||||||
|
# UnifyCR depends on numactl, which doesn't currently build on darwin.
|
||||||
conflicts('platform=darwin', when='+numa')
|
conflicts('platform=darwin', when='+numa')
|
||||||
|
# Known compatibility issues with ifort and xlf. Fixes coming.
|
||||||
|
conflicts('%intel', when='+fortran')
|
||||||
|
conflicts('%xl', when='+fortran')
|
||||||
|
|
||||||
# Parallel disabled to prevent tests from being run out-of-order when
|
# Parallel disabled to prevent tests from being run out-of-order when
|
||||||
# installed with the --test={root, all} option.
|
# installed with the --test={root, all} option.
|
||||||
parallel = False
|
parallel = False
|
||||||
|
debug_build = False
|
||||||
build_directory = 'spack-build'
|
build_directory = 'spack-build'
|
||||||
|
|
||||||
|
# Only builds properly with debug symbols when flag_handler =
|
||||||
|
# build_system_flags.
|
||||||
|
# Override the default behavior in order to set debug_build which is used
|
||||||
|
# to set the --disable-silent-rules option when configuring.
|
||||||
|
def flag_handler(self, name, flags):
|
||||||
|
if name in ('cflags', 'cppflags'):
|
||||||
|
if '-g' in flags:
|
||||||
|
self.debug_build = True
|
||||||
|
return (None, None, flags)
|
||||||
|
|
||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
args = []
|
args = []
|
||||||
@ -67,10 +88,19 @@ def hdf5_compiler_path(name):
|
|||||||
lambda x: spec['numactl'].prefix))
|
lambda x: spec['numactl'].prefix))
|
||||||
args.extend(self.with_or_without('hdf5', hdf5_compiler_path))
|
args.extend(self.with_or_without('hdf5', hdf5_compiler_path))
|
||||||
|
|
||||||
if '+debug' in spec:
|
if '+fortran' in spec:
|
||||||
args.append('--enable-debug')
|
args.append('--enable-fortran')
|
||||||
|
|
||||||
if spack.config.get('config:debug'):
|
if '+pmpi' in spec:
|
||||||
|
args.append('--enable-mpi-mount')
|
||||||
|
|
||||||
|
if '+pmi' in spec:
|
||||||
|
args.append('--enable-pmi')
|
||||||
|
|
||||||
|
if '+pmix' in spec:
|
||||||
|
args.append('--enable-pmix')
|
||||||
|
|
||||||
|
if self.debug_build:
|
||||||
args.append('--disable-silent-rules')
|
args.append('--disable-silent-rules')
|
||||||
else:
|
else:
|
||||||
args.append('--enable-silent-rules')
|
args.append('--enable-silent-rules')
|
||||||
|
Loading…
Reference in New Issue
Block a user