89 lines
1.7 KiB
Nix
89 lines
1.7 KiB
Nix
|
{
|
||
|
lib,
|
||
|
stdenv,
|
||
|
fetchFromGitHub,
|
||
|
|
||
|
# nativeBuildInputs
|
||
|
python3,
|
||
|
cmake,
|
||
|
gfortran,
|
||
|
pkg-config,
|
||
|
hdf5-mpi,
|
||
|
zpp,
|
||
|
|
||
|
# buildInputs
|
||
|
gbenchmark,
|
||
|
libyaml,
|
||
|
mpi,
|
||
|
spdlog,
|
||
|
|
||
|
# passthru
|
||
|
nix-update-script,
|
||
|
testers,
|
||
|
pdi,
|
||
|
}:
|
||
|
let
|
||
|
python = python3.withPackages (
|
||
|
p: with p; [
|
||
|
distutils
|
||
|
setuptools
|
||
|
]
|
||
|
);
|
||
|
in
|
||
|
stdenv.mkDerivation rec {
|
||
|
pname = "pdi";
|
||
|
version = "1.7.1";
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "pdidev";
|
||
|
repo = "pdi";
|
||
|
rev = "refs/tags/${version}-gh";
|
||
|
hash = "sha256-VTbXsUUJb/6zNyn4QXNHajgzzgjSwdW/d+bTSDcpRaE=";
|
||
|
};
|
||
|
|
||
|
# Current hdf5 version in nixpkgs is 1.14.4.3 which is 4 numbers long and doesn't match the 3 number regex. :')
|
||
|
# Patch it to make it match a 4 number-long version.
|
||
|
postPatch = ''
|
||
|
substituteInPlace plugins/decl_hdf5/cmake/FindHDF5.cmake \
|
||
|
--replace-fail '"H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)' '"H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)'
|
||
|
'';
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
cmake
|
||
|
gfortran
|
||
|
pkg-config
|
||
|
python
|
||
|
hdf5-mpi
|
||
|
zpp
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
gbenchmark
|
||
|
hdf5-mpi
|
||
|
libyaml
|
||
|
mpi
|
||
|
spdlog
|
||
|
];
|
||
|
|
||
|
cmakeFlags = [
|
||
|
# Force using nix gbenchmark instead of vendored version
|
||
|
"-DUSE_benchmark=SYSTEM"
|
||
|
];
|
||
|
|
||
|
passthru = {
|
||
|
updateScript = nix-update-script { };
|
||
|
tests.version = testers.testVersion {
|
||
|
package = pdi;
|
||
|
command = "pdirun";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
meta = {
|
||
|
description = "PDI supports loose coupling of simulation codes with data handling libraries";
|
||
|
homepage = "https://pdi.dev/master/";
|
||
|
license = lib.licenses.bsd3;
|
||
|
mainProgram = "pdirun";
|
||
|
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||
|
};
|
||
|
}
|