ecCodes/2.35.1-cpeGNU-24.03 (ecCodes-2.35.1-cpeGNU-24.03.eb)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider ecCodes/2.35.1-cpeGNU-24.03
.
EasyConfig:
# Contributed by Sebastan Keller and Luca Marsella (CSCS)
# Modified for use on LUMI by Kurt Lust (kurt.lust@uantwerpen.be)
# for the LUMI consortium.
easyblock = 'CMakeMake'
local_JasPer_version = '4.0.0' # https://github.com/jasper-software/jasper/releases
local_libaec_version = '1.0.6' # https://gitlab.dkrz.de/k202009/libaec/-/tags
local_libjpegturbo_version = '3.0.1' # https://github.com/libjpeg-turbo/libjpeg-turbo/releases
local_libpng_version = '1.6.40' # http://www.libpng.org/pub/png/libpng.html
local_ecCodes_version = '2.35.1' # https://confluence.ecmwf.int/display/ECC/Releases
name = 'ecCodes'
version = local_ecCodes_version
homepage = 'https://confluence.ecmwf.int/display/ECC/ecCodes+Home'
whatis = [
'Description: ecCodes is a ECMWF package providing an API for decoding and encoding messages'
]
description = """
ecCodes is a package developed by ECMWF which provides an application
programming interface and a set of tools for decoding and encoding messages
in the following formats: WMO FM-92 GRIB edition 1 and edition 2, WMO FM-94 BUFR
edition 3 and edition 4, WMO GTS abbreviated header (only decoding).
The Python interfaces are not included in this module as since ecCodes 2.13.0,
the Python 3 interface is distributed separately on PyPi.
"""
toolchain = {'name': 'cpeGNU', 'version': '24.03'}
toolchainopts = {'openmp': True, 'verbose': False}
# https://confluence.ecmwf.int/download/attachments/45757960/eccodes-2.23.0-Source.tar.gz?api=v2
source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/']
sources = ['%(namelower)s-%(version)s-Source.tar.gz']
checksums = ['b1a74ce1ddfe2752e16a794b6a9b76de655138761d6d571e2554b70ec75d712e']
builddependencies = [ # Create a reproducible build environment.
('buildtools', '%(toolchain_version)s', '', True), # For CMake among others.
('craype-network-none', EXTERNAL_MODULE),
('craype-accel-host', EXTERNAL_MODULE),
]
dependencies = [
('cray-hdf5', EXTERNAL_MODULE),
('cray-netcdf', EXTERNAL_MODULE),
('JasPer', local_JasPer_version),
('libaec', local_libaec_version), # Instead of Szip
('libjpeg-turbo', local_libjpegturbo_version),
('libpng', local_libpng_version), # Also pulls in zlib
]
configopts = '-DCMAKE_INSTALL_LIBDIR=lib '
configopts += '-DENABLE_ECCODES_OMP_THREADS=ON '
configopts += '-DENABLE_AEC=ON '
configopts += '-DENABLE_JPG=ON -DENABLE_JPG_JASPER=ON '
configopts += '-DENABLE_PNG=ON '
configopts += '-DENABLE_PYTHON=OFF '
configopts += '-DENABLE_MEMFS=OFF ' # Turning this on requires Python, though it does seem to work with the system Python.
preconfigopts = 'module unload cray-libsci rocm && '
prebuildopts = preconfigopts
postinstallcmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s && ' +
'cp ../%(namelower)s-%(version)s-Source/LICENSE %(installdir)s/share/licenses/%(name)s && ' +
'chmod 664 %(installdir)s/share/licenses/%(name)s/LICENSE'
]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['bufr_copy', 'bufr_dump', 'bufr_filter', 'bufr_ls',
'codes_count', 'codes_info', 'codes_split_file',
'grib_copy', 'grib_dump', 'grib_filter', 'grib_ls']],
'dirs': [],
}
sanity_check_commands = [
'codes_info',
]
moduleclass = 'data'