Skip to content

[ecCodes] [package list]

ecCodes/2.26.0-cpeGNU-22.08 (ecCodes-2.26.0-cpeGNU-22.08.eb)

This software is archived in the LUMI-EasyBuild-contrib GitHub repository as easybuild/easyconfigs/__archive__/e/ecCodes/ecCodes-2.26.0-cpeGNU-22.08.eb. The corresponding module would be ecCodes/2.26.0-cpeGNU-22.08.

# 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 =       '3.0.4'         # https://github.com/jasper-software/jasper/releases
local_libaec_version =       '1.0.6'         # https://gitlab.dkrz.de/k202009/libaec/-/tags
local_libjpegturbo_version = '2.1.3'         # https://github.com/libjpeg-turbo/libjpeg-turbo/releases
local_libpng_version =       '1.6.37'        # http://www.libpng.org/pub/png/libpng.html

name =    'ecCodes'
version = '2.26.0'

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).
"""

toolchain = {'name': 'cpeGNU', 'version': '22.08'}
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 =   ['392f632612e16a8c0bb0b8f6d627cbc3f54e56f51ace05bceac368377ab52e49']

builddependencies = [ # Create a reproducible build environment.
    ('buildtools',   '%(toolchain_version)s',   '', True), # For CMake among others.
]

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.

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'

[ecCodes] [package list]