anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / science / electronics / openems / default.nix
blob864b120993d9c688ab9b006131defcb5021c7a05
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , csxcad
5 , fparser
6 , tinyxml
7 , hdf5
8 , vtk
9 , boost
10 , zlib
11 , cmake
12 , octave
13 , mpi
14 , withQcsxcad ? true
15 , withMPI ? false
16 , withHyp2mat ? true
17 , qcsxcad
18 , hyp2mat
21 stdenv.mkDerivation rec {
22   pname = "openems";
23   version = "0.0.36";
25   src = fetchFromGitHub {
26     owner = "thliebig";
27     repo = "openEMS";
28     rev = "v${version}";
29     sha256 = "sha256-wdH+Zw7G2ZigzBMX8p3GKdFVx/AhbTNL+P3w+YjI/dc=";
30   };
32   nativeBuildInputs = [
33     cmake
34   ];
36   cmakeFlags = lib.optionals withMPI [ "-DWITH_MPI=ON" ];
38   buildInputs = [
39     fparser
40     tinyxml
41     hdf5
42     vtk
43     boost
44     zlib
45     csxcad
46     (octave.override { inherit hdf5; }) ]
47     ++ lib.optionals withQcsxcad [ qcsxcad ]
48     ++ lib.optionals withMPI [ mpi ]
49     ++ lib.optionals withHyp2mat [ hyp2mat ];
51   postFixup = ''
52     substituteInPlace $out/share/openEMS/matlab/setup.m \
53       --replace /usr/lib ${hdf5}/lib \
54       --replace /usr/include ${hdf5}/include
56     ${octave}/bin/mkoctfile -L${hdf5}/lib -I${hdf5}/include \
57       -lhdf5 $out/share/openEMS/matlab/h5readatt_octave.cc \
58       -o $out/share/openEMS/matlab/h5readatt_octave.oct
59   '';
61   meta = with lib; {
62     description = "Open Source Electromagnetic Field Solver";
63     homepage = "http://openems.de/index.php/Main_Page.html";
64     license = licenses.gpl3;
65     maintainers = with maintainers; [ matthuszagh ];
66     platforms = platforms.linux;
67     badPlatforms = platforms.aarch64;
68   };