Commit 7de0b2be authored by Adkins, Cameron's avatar Adkins, Cameron
Browse files

hdf5: add mingw support

parent 359761a0
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchFromGitHub
, fetchurl
, cmake
, removeReferencesTo
, cppSupport ? true
@@ -28,18 +28,21 @@ assert !cppSupport || !mpiSupport;
let inherit (lib) optional optionals; in

stdenv.mkDerivation rec {
  version = "1.14.4.3";
  version = "1.14.3";
  pname = "hdf5"
    + lib.optionalString cppSupport "-cpp"
    + lib.optionalString fortranSupport "-fortran"
    + lib.optionalString mpiSupport "-mpi"
    + lib.optionalString threadsafe "-threadsafe";

  src = fetchFromGitHub {
    owner = "HDFGroup";
    repo = "hdf5";
    rev = "hdf5_${version}";
    hash = "sha256-lvz3x04SS0oZmUn/BIxQEHnugaDOws46kfT3NAw7Hos=";
  src = fetchurl {
    url =
      let
        majorMinor = lib.versions.majorMinor version;
        majorMinorPatch = with lib.versions; "${major version}.${minor version}.${patch version}";
      in
      "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${majorMinor}/hdf5-${majorMinorPatch}/src/hdf5-${version}.tar.bz2";
    sha256 = "sha256-lCXyJO110SgLtG1vJpI92Tj5BA5+rr9X5m7HNXwI+Rc=";
  };

  passthru = {
@@ -59,7 +62,7 @@ stdenv.mkDerivation rec {
  outputs = [ "out" "dev" "bin" ];

  nativeBuildInputs = [ removeReferencesTo cmake ]
    ++ optional fortranSupport fortran;
    ++ lib.optional fortranSupport fortran;

  buildInputs = optional fortranSupport fortran
    ++ optional szipSupport szip
@@ -80,6 +83,7 @@ stdenv.mkDerivation rec {
    ++ lib.optional javaSupport "-DHDF5_BUILD_JAVA=ON"
    ++ lib.optional usev110Api "-DDEFAULT_API_VERSION=v110"
    ++ lib.optionals threadsafe [ "-DDHDF5_ENABLE_THREADSAFE:BOOL=ON" "-DHDF5_BUILD_HL_LIB=OFF" ]
    ++ lib.optional stdenv.targetPlatform.isMinGW [ "-DCMAKE_CROSSCOMPILING_EMULATOR=dummy" ]
    # broken in nixpkgs since around 1.14.3 -> 1.14.4.3
    # https://github.com/HDFGroup/hdf5/issues/4208#issuecomment-2098698567
    ++ lib.optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) "-DHDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16=OFF"
@@ -128,6 +132,6 @@ stdenv.mkDerivation rec {
    license = licenses.bsd3; # Lawrence Berkeley National Labs BSD 3-Clause variant
    maintainers = [ maintainers.markuskowa ];
    homepage = "https://www.hdfgroup.org/HDF5/";
    platforms = platforms.unix;
    platforms = platforms.all;
  };
}