Commit 5ce4a026 authored by DavidCromp's avatar DavidCromp Committed by DavidCrompton1192@gmail.com
Browse files

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.
parent a3959506
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -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;
  };
}