summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2017-05-01 01:18:07 +0200
committerGitHub <noreply@github.com>2017-05-01 01:18:07 +0200
commit1aa652fdce1073ac8b18e402d88f20331e5ade36 (patch)
tree9f1a50cc0c1814b67b66245beb5aeb98af5dfcc7
parentff84e3ed92779fb36f68ec2f767e89ecd6d14b5c (diff)
parente2e3036b33fc0fe0a3dc29747f24893fc3559f77 (diff)
downloadnixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.tar
nixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.tar.gz
nixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.tar.bz2
nixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.tar.lz
nixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.tar.xz
nixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.tar.zst
nixlib-1aa652fdce1073ac8b18e402d88f20331e5ade36.zip
Merge pull request #24278 from knedlsepp/add_eccodes
eccodes: init at 2.2.0
-rw-r--r--pkgs/development/libraries/eccodes/default.nix52
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/development/libraries/eccodes/default.nix b/pkgs/development/libraries/eccodes/default.nix
new file mode 100644
index 000000000000..2ba97af133ed
--- /dev/null
+++ b/pkgs/development/libraries/eccodes/default.nix
@@ -0,0 +1,52 @@
+{ fetchurl, stdenv
+, cmake, netcdf, openjpeg, libpng, gfortran
+, enablePython ? false, pythonPackages
+, enablePosixThreads ? false
+, enableOpenMPThreads ? false}:
+with stdenv.lib; 
+stdenv.mkDerivation rec {
+  name = "eccodes-${version}";
+  version = "2.2.0";
+
+  src = fetchurl {
+    url = https://software.ecmwf.int/wiki/download/attachments/45757960/eccodes-2.2.0-Source.tar.gz;
+    sha256 = "1hzl0akjfxphqivnaj2kg131w8ki80ba3872h0a45f4pchci4h8s";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ netcdf
+                  openjpeg
+                  libpng
+                  gfortran
+                ];
+  propagatedBuildInputs = optionals enablePython [
+                  pythonPackages.python
+                  pythonPackages.numpy
+                ];
+
+  cmakeFlags = [ "-DENABLE_PYTHON=${if enablePython then "ON" else "OFF"}"
+                 "-DENABLE_PNG=ON"
+                 "-DENABLE_ECCODES_THREADS=${if enablePosixThreads then "ON" else "OFF"}"
+                 "-DENABLE_ECCODES_OMP_THREADS=${if enableOpenMPThreads then "ON" else "OFF"}"
+               ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  # Only do tests that don't require downloading 120MB of testdata
+  checkPhase = stdenv.lib.optionalString (stdenv.isDarwin) ''
+    substituteInPlace "tests/include.sh" --replace "set -ea" "set -ea; export DYLD_LIBRARY_PATH=$(pwd)/lib"
+  '' + ''
+    ctest -R "eccodes_t_(definitions|calendar|unit_tests|md5|uerra|grib_2nd_order_numValues|julian)" -VV
+  '';
+
+  meta = {
+    homepage = "https://software.ecmwf.int/wiki/display/ECC/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ knedlsepp ];
+    platforms = platforms.unix;
+    description = "ECMWF library for reading and writing GRIB, BUFR and GTS abbreviated header";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3e0f81e431f1..0fcbc651a8fa 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7397,6 +7397,8 @@ with pkgs;
 
   dxflib = callPackage ../development/libraries/dxflib {};
 
+  eccodes = callPackage ../development/libraries/eccodes { };
+
   eclib = callPackage ../development/libraries/eclib {};
 
   eigen = callPackage ../development/libraries/eigen {};