Skip to content

Commit

Permalink
Merge pull request easybuilders#21858 from stefan-wolfsheimer/eccodes
Browse files Browse the repository at this point in the history
{lib,tools}GCCcore/13.3.0,gompi/2024a]-libaec-v1.1.3,-ecCodes-v2.38.3
  • Loading branch information
smoors authored Nov 22, 2024
2 parents ee80457 + 45afc08 commit 63974c2
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 0 deletions.
46 changes: 46 additions & 0 deletions easybuild/easyconfigs/e/ecCodes/ecCodes-2.38.3-gompi-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
easyblock = 'CMakeMake'

name = 'ecCodes'
version = '2.38.3'

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': '2024a'}
toolchainopts = {'usempi': False}

source_urls = ['https://github.com/ecmwf/eccodes/archive/refs/tags/']
sources = [{'download_filename': '%(version)s.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}]
checksums = ['2f13adc4fbdfa3ea11f75ce4ed8937bf40a8fcedd760a519b15e4e17dedc9424']

builddependencies = [
('CMake', '3.29.3'),
('ecBuild', '3.8.5'),
]
dependencies = [
('netCDF', '4.9.2'),
('JasPer', '4.2.4'),
('libjpeg-turbo', '3.0.1'),
('libpng', '1.6.43'),
('zlib', '1.3.1'),
('libaec', '1.1.3'),
]

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


sanity_check_paths = {
'files': ['bin/bufr_compare', 'bin/bufr_copy', 'bin/bufr_dump', 'bin/bufr_filter', 'bin/bufr_get', 'bin/bufr_ls',
'bin/grib_compare', 'bin/grib_copy', 'bin/grib_dump', 'bin/grib_filter', 'bin/grib_get', 'bin/grib_ls',
'bin/gts_compare', 'bin/gts_copy', 'bin/gts_dump', 'bin/gts_filter', 'bin/gts_get', 'bin/gts_ls',
'bin/metar_compare', 'bin/metar_copy', 'bin/metar_dump', 'bin/metar_filter', 'bin/metar_get',
'bin/metar_ls', 'bin/codes_count', 'bin/codes_info', 'bin/codes_split_file',
'lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
'dirs': ['include'],
}

moduleclass = 'tools'
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
easyblock = 'CMakeMake'

name = 'libaec'
version = '1.1.3'

homepage = 'https://gitlab.dkrz.de/k202009/libaec'
description = """Libaec provides fast lossless compression of 1 up to 32 bit wide signed or unsigned integers
(samples). The library achieves best results for low entropy data as often encountered in space imaging
instrument data or numerical model output from weather or climate simulations. While floating point representations
are not directly supported, they can also be efficiently coded by grouping exponents and mantissa."""

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}

source_urls = ['https://gitlab.dkrz.de/k202009/%(namelower)s/-/archive/v%(version)s']
sources = [SOURCELOWER_TAR_GZ]
patches = ["libaec-1.1.3_install_binary.patch"]

checksums = ['453de44eb6ea2500843a4cf4d2e97d1be251d2df7beae6c2ebe374edcb11e378',
'52fcdeacd9c27108dffafd8109012902fa63fb2e39803670a3ba16f313628f4c']

builddependencies = [
('CMake', '3.29.3'),
('binutils', '2.42'),
]

sanity_check_paths = {
'files': ['bin/graec', 'include/%(name)s.h', 'include/szlib.h',
'lib/libaec.a', 'lib/libaec.%s' % SHLIB_EXT],
'dirs': [],
}

sanity_check_commands = ['graec --help']

moduleclass = 'lib'
11 changes: 11 additions & 0 deletions easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# The binary is not installed by default which caused the sanity check to fail
# @author Stefan Wolfsheimer, SURF

diff -uNr libaec-v1.1.3.orig/src/CMakeLists.txt libaec-v1.1.3/src/CMakeLists.txt
--- libaec-v1.1.3.orig/src/CMakeLists.txt 2024-11-15 14:21:05.177185441 +0100
+++ libaec-v1.1.3/src/CMakeLists.txt 2024-11-15 14:21:39.702841450 +0100
@@ -76,3 +76,4 @@
COMPILE_DEFINITIONS "${libaec_COMPILE_DEFINITIONS}")

install(TARGETS aec_static aec_shared sz_static sz_shared)
+install(TARGETS graec RUNTIME DESTINATION bin)

0 comments on commit 63974c2

Please sign in to comment.