65e659f0f4
Setting environment variables in preCheck to make MPI tests run. This is one commit for two packages in order not to break the dependency.
72 lines
2.1 KiB
Nix
72 lines
2.1 KiB
Nix
{ lib, stdenv, fetchFromGitHub
|
|
, autoreconfHook, pkg-config
|
|
, p4est-sc-debugEnable ? true, p4est-sc-mpiSupport ? true
|
|
, mpi, openssh, zlib
|
|
}:
|
|
|
|
let
|
|
dbg = if debugEnable then "-dbg" else "";
|
|
debugEnable = p4est-sc-debugEnable;
|
|
mpiSupport = p4est-sc-mpiSupport;
|
|
isOpenmpi = mpiSupport && mpi.pname == "openmpi";
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "p4est-sc${dbg}";
|
|
version = "unstable-2021-06-14";
|
|
|
|
# fetch an untagged snapshot of the prev3-develop branch
|
|
src = fetchFromGitHub {
|
|
owner = "cburstedde";
|
|
repo = "libsc";
|
|
rev = "1ae814e3fb1cc5456652e0d77550386842cb9bfb";
|
|
sha256 = "14vm0b162jh8399pgpsikbwq4z5lkrw9vfzy3drqykw09n6nc53z";
|
|
};
|
|
|
|
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
|
propagatedBuildInputs = [ zlib ]
|
|
++ lib.optional mpiSupport mpi
|
|
++ lib.optional isOpenmpi openssh
|
|
;
|
|
inherit debugEnable mpiSupport;
|
|
|
|
postPatch = ''
|
|
echo "dist_scaclocal_DATA += config/sc_v4l2.m4" >> Makefile.am
|
|
'';
|
|
preConfigure = ''
|
|
echo "2.8.0" > .tarball-version
|
|
${if mpiSupport then "unset CC" else ""}
|
|
'';
|
|
|
|
configureFlags = [ "--enable-pthread=-pthread" ]
|
|
++ lib.optional debugEnable "--enable-debug"
|
|
++ lib.optional mpiSupport "--enable-mpi"
|
|
;
|
|
|
|
dontDisableStatic = true;
|
|
enableParallelBuilding = true;
|
|
makeFlags = [ "V=0" ];
|
|
|
|
preCheck = ''
|
|
export OMPI_MCA_rmaps_base_oversubscribe=1
|
|
export HYDRA_IFACE=lo
|
|
'';
|
|
|
|
# disallow Darwin checks due to prototype incompatibility of qsort_r
|
|
# to be fixed in a future version of the source code
|
|
doCheck = !stdenv.isDarwin && stdenv.hostPlatform == stdenv.buildPlatform;
|
|
|
|
meta = {
|
|
branch = "prev3-develop";
|
|
description = "Support for parallel scientific applications";
|
|
longDescription = ''
|
|
The SC library provides support for parallel scientific applications.
|
|
Its main purpose is to support the p4est software library, hence
|
|
this package is called p4est-sc, but it works standalone, too.
|
|
'';
|
|
homepage = "https://www.p4est.org/";
|
|
downloadPage = "https://github.com/cburstedde/libsc.git";
|
|
license = lib.licenses.lgpl21Plus;
|
|
maintainers = [ lib.maintainers.cburstedde ];
|
|
};
|
|
}
|