nest: fix Python & Darwin

Removed auto-patch-elf and replaced with find command that moves
libraries where they are expected by nest. Auto-patchelf isn't
supported on aarch64, so I copied my local derivation fix I've been
using.

PyNEST also requires numpy, so that has been added to
propagatedbuildinputs.

Also added support for OpenMP on Darwin.
This commit is contained in:
DavidCromp 2023-02-23 14:52:36 -05:00 committed by DavidCrompton1192@gmail.com
parent a395950650
commit 5ce4a02687

View File

@ -5,9 +5,12 @@
, cmake
, gsl
, libtool
, findutils
, llvmPackages
, mpi
, nest
, pkg-config
, boost
, python3
, readline
, autoPatchelfHook
@ -37,24 +40,36 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
pkg-config
autoPatchelfHook
findutils
];
buildInputs = [
gsl
readline
libtool # libltdl
boost
] ++ lib.optionals withPython [
python3
python3.pkgs.cython
] ++ lib.optional withMpi mpi;
] ++ lib.optional withMpi mpi
++ lib.optional stdenv.isDarwin llvmPackages.openmp;
propagatedBuildInputs = with python3.pkgs; [
numpy
];
cmakeFlags = [
"-Dwith-python=${if withPython then "ON" else "OFF"}"
"-Dwith-mpi=${if withMpi then "ON" else "OFF"}"
"-Dwith-openmp=${if stdenv.isDarwin then "OFF" else "ON"}"
"-Dwith-openmp=ON"
];
postInstall = ''
# Alternative to autoPatchElf, moves libraries where
# Nest expects them to be
find $out/lib/nest -type f -exec ln -s {} $out/lib \;
'';
passthru.tests.version = testers.testVersion {
package = nest;
command = "nest --version";
@ -64,7 +79,7 @@ stdenv.mkDerivation rec {
description = "NEST is a command line tool for simulating neural networks";
homepage = "https://www.nest-simulator.org/";
license = licenses.gpl2;
maintainers = with maintainers; [ jiegec ];
maintainers = with maintainers; [ jiegec davidcromp ];
platforms = platforms.unix;
};
}