at master 2.4 kB view raw
1{ 2 fetchurl, 3 lib, 4 stdenv, 5 cmake, 6 netcdf, 7 openjpeg, 8 libaec, 9 libpng, 10 gfortran, 11 perl, 12 ctestCheckHook, 13 enablePython ? false, 14 pythonPackages, 15 enablePosixThreads ? false, 16 enableOpenMPThreads ? false, 17}: 18 19stdenv.mkDerivation rec { 20 pname = "eccodes"; 21 version = "2.42.0"; 22 23 src = fetchurl { 24 url = "https://confluence.ecmwf.int/download/attachments/45757960/eccodes-${version}-Source.tar.gz"; 25 hash = "sha256-YDcbNXywEd7lRtsuq6zlt+J/D4fT6kpa3eeJE3GzwSg="; 26 }; 27 28 postPatch = '' 29 substituteInPlace cmake/FindOpenJPEG.cmake --replace openjpeg-2.1 ${openjpeg.incDir} 30 31 # https://github.com/ecmwf/ecbuild/issues/40 32 substituteInPlace cmake/ecbuild_config.h.in \ 33 --replace @CMAKE_INSTALL_PREFIX@/@INSTALL_LIB_DIR@ @eccodes_FULL_INSTALL_LIB_DIR@ \ 34 --replace @CMAKE_INSTALL_PREFIX@/@INSTALL_BIN_DIR@ @eccodes_FULL_INSTALL_BIN_DIR@ 35 substituteInPlace cmake/pkg-config.pc.in \ 36 --replace '$'{prefix}/@INSTALL_LIB_DIR@ @eccodes_FULL_INSTALL_LIB_DIR@ \ 37 --replace '$'{prefix}/@INSTALL_INCLUDE_DIR@ @eccodes_FULL_INSTALL_INCLUDE_DIR@ \ 38 --replace '$'{prefix}/@INSTALL_BIN_DIR@ @eccodes_FULL_INSTALL_BIN_DIR@ 39 substituteInPlace cmake/ecbuild_install_project.cmake \ 40 --replace '$'{CMAKE_INSTALL_PREFIX}/'$'{INSTALL_INCLUDE_DIR} '$'{'$'{PROJECT_NAME}_FULL_INSTALL_INCLUDE_DIR} 41 ''; 42 43 nativeBuildInputs = [ 44 cmake 45 gfortran 46 perl 47 ]; 48 49 buildInputs = [ 50 netcdf 51 openjpeg 52 libaec 53 libpng 54 ]; 55 56 propagatedBuildInputs = lib.optionals enablePython [ 57 pythonPackages.python 58 pythonPackages.numpy 59 ]; 60 61 cmakeFlags = [ 62 "-DENABLE_PYTHON=${if enablePython then "ON" else "OFF"}" 63 "-DENABLE_PNG=ON" 64 "-DENABLE_ECCODES_THREADS=${if enablePosixThreads then "ON" else "OFF"}" 65 "-DENABLE_ECCODES_OMP_THREADS=${if enableOpenMPThreads then "ON" else "OFF"}" 66 ]; 67 68 doCheck = true; 69 nativeCheckInputs = [ ctestCheckHook ]; 70 checkFlags = [ 71 "-R" 72 # Only do tests that don't require downloading 120MB of testdata 73 "eccodes_t_(definitions|calendar|unit_tests|md5|uerra|grib_2nd_order_numValues|julian)" 74 ]; 75 76 meta = with lib; { 77 homepage = "https://confluence.ecmwf.int/display/ECC/"; 78 license = licenses.asl20; 79 maintainers = with maintainers; [ ]; 80 platforms = platforms.unix; 81 description = "ECMWF library for reading and writing GRIB, BUFR and GTS abbreviated header"; 82 }; 83}