# IT4Innovations
# LK 2023

easyblock = 'ConfigureMake'

name = 'PMIx'
version = '4.2.6'

homepage = 'https://pmix.org/'
description = """Process Management for Exascale Environments
PMI Exascale (PMIx) represents an attempt to
provide an extended version of the PMI standard specifically designed
to support clusters up to and including exascale sizes. The overall
objective of the project is not to branch the existing pseudo-standard
definitions - in fact, PMIx fully supports both of the existing PMI-1
and PMI-2 APIs - but rather to (a) augment and extend those APIs to
eliminate some current restrictions that impact scalability, and (b)
provide a reference implementation of the PMI-server that demonstrates
the desired level of scalability.
"""

toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
sources = ['%(namelower)s-%(version)s.tar.bz2']
checksums = ['10b0d5a7fca70272e9427c677557578ac452cea02aeb00e30dec2116d20c3cd0']

builddependencies = [('binutils', '2.39')]

dependencies = [
    ('zlib', '1.2.12'),
    ('libevent', '2.1.12'),
    ('hwloc', '2.8.0'),
]

configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
configopts += ' --with-hwloc=$EBROOTHWLOC'
configopts += ' --enable-pmix-binaries'

buildopts = 'V=1'

sanity_check_paths = {
    'files': ['bin/pevent', 'bin/plookup', 'bin/pmix_info', 'bin/pps'],
    'dirs': ['etc', 'include', 'lib', 'share']
}

moduleclass = 'lib'
