diff --git a/pkgs/development/libraries/highfive/default.nix b/pkgs/development/libraries/highfive/default.nix new file mode 100644 index 000000000000..c514a44f851a --- /dev/null +++ b/pkgs/development/libraries/highfive/default.nix @@ -0,0 +1,49 @@ +{ stdenv +, fetchFromGitHub +, cmake +, boost +, eigen +, hdf5 +, mpiSupport ? hdf5.mpiSupport +, mpi ? hdf5.mpi +}: + +assert mpiSupport -> mpi != null; + +stdenv.mkDerivation rec { + pname = "highfive"; + version = "2.2"; + + src = fetchFromGitHub { + owner = "BlueBrain"; + repo = "HighFive"; + rev = "4c70d818ed18231563fe49ff197d1c41054be592"; + sha256 = "02xy3c2ix3nw8109aw75ixj651knzc5rjqwqrxximm4hzwx09frk"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ boost eigen hdf5 ]; + + passthru = { + inherit mpiSupport mpi; + }; + + cmakeFlags = [ + "-DHIGHFIVE_USE_BOOST=ON" + "-DHIGHFIVE_USE_EIGEN=ON" + "-DHIGHFIVE_EXAMPLES=OFF" + "-DHIGHFIVE_UNIT_TESTS=OFF" + "-DHIGHFIVE_USE_INSTALL_DEPS=ON" + ] + ++ (stdenv.lib.optionals mpiSupport [ "-DHIGHFIVE_PARALLEL_HDF5=ON" ]); + + meta = with stdenv.lib; { + inherit version; + description = "Header-only C++ HDF5 interface"; + license = licenses.boost; + homepage = "https://bluebrain.github.io/HighFive/"; + platforms = platforms.unix; + maintainers = with maintainers; [ robertodr ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e1cee82b17e..d7346c8ae1c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12075,6 +12075,12 @@ in libusb = libusb1; }; + highfive = callPackage ../development/libraries/highfive { }; + + highfive-mpi = appendToName "mpi" (highfive.override { + hdf5 = hdf5-mpi; + }); + hiredis = callPackage ../development/libraries/hiredis { }; hiredis-vip = callPackage ../development/libraries/hiredis-vip { };