1{ lib, stdenv, fetchFromGitHub, cmake, boost, eigen, libxml2, mpi, python3
2, mklSupport ? true, mkl
3}:
4
5stdenv.mkDerivation rec {
6 pname = "FEBio";
7 version = "3.6";
8
9 src = fetchFromGitHub {
10 owner = "febiosoftware";
11 repo = pname;
12 rev = "v${version}";
13 sha256 = "187s4lyzr806xla3smq3lsvj3f6wxlhfkban89w0fnyfmfb8w9am";
14 };
15
16 patches = [
17 ./fix-cmake.patch # cannot find mkl libraries without this
18 ];
19
20 cmakeFlags = lib.optional mklSupport "-DUSE_MKL=On"
21 ++ lib.optional mklSupport "-DMKLROOT=${mkl}"
22 ;
23
24 installPhase = ''
25 runHook preInstall
26
27 mkdir -p $out/include
28 cp -R lib bin $out/
29 cp -R ../FECore \
30 ../FEBioFluid \
31 ../FEBioLib \
32 ../FEBioMech \
33 ../FEBioMix \
34 ../FEBioOpt \
35 ../FEBioPlot \
36 ../FEBioXML \
37 ../NumCore \
38 $out/include
39
40 runHook postInstall
41 '';
42
43 nativeBuildInputs = [ cmake ];
44 buildInputs = [ boost eigen libxml2 mpi python3 python3.pkgs.numpy ]
45 ++ lib.optional mklSupport mkl
46 ;
47
48 meta = {
49 description = "FEBio Suite Solver";
50 license = with lib.licenses; [ mit ];
51 homepage = "https://febio.org/";
52 platforms = lib.platforms.unix;
53 maintainers = with lib.maintainers; [ Scriptkiddi ];
54 };
55}