easyblock = 'CMakeMake'

name = 'ecCodes'
version = '2.22.1'

homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
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': 'gompi', 'version': '2021b'}
toolchainopts = {'usempi': False, 'openmp': True}

source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/']
sources = ['eccodes-%(version)s-Source.tar.gz']
checksums = ['75c7ee96469bb30b0c8f7edbdc4429ece4415897969f75c36173545242bc9e85']

builddependencies = [('CMake', '3.21.1')]

dependencies = [
    ('netCDF', '4.8.1'),
    ('JasPer', '2.0.33'),
    ('libjpeg-turbo', '2.0.6'),
    ('libpng', '1.6.37'),
    ('zlib', '1.2.11'),
]

# Python bindings are now provided by a separate package 'eccodes-python'
configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON "
configopts += "-DENABLE_JPG=ON -DENABLE_JPG_LIBJASPER=ON "
configopts += "-DENABLE_ECCODES_OMP_THREADS=ON"

local_exes = ['%s_%s' % (a, b)
              for a in ['bufr', 'grib', 'gts', 'metar']
              for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']]
local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']]

sanity_check_paths = {
    'files': ['bin/%s' % x for x in local_exes] +
             ['lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
    'dirs': ['include'],
}

moduleclass = 'tools'
