1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 gfortran,
6 meson,
7 ninja,
8 pkg-config,
9 blas,
10 lapack,
11 mctc-lib,
12 mstore,
13 toml-f,
14 multicharge,
15 dftd4,
16 simple-dftd3,
17}:
18
19assert !blas.isILP64 && !lapack.isILP64;
20
21stdenv.mkDerivation rec {
22 pname = "tblite";
23 version = "0.4.0";
24
25 src = fetchFromGitHub {
26 owner = "tblite";
27 repo = pname;
28 rev = "v${version}";
29 hash = "sha256-KV2fxB+SF4LilN/87YCvxUt4wsY4YyIV4tqnn+3/0oI=";
30 };
31
32 nativeBuildInputs = [
33 gfortran
34 meson
35 ninja
36 pkg-config
37 ];
38
39 buildInputs = [
40 blas
41 lapack
42 mctc-lib
43 mstore
44 toml-f
45 multicharge
46 dftd4
47 simple-dftd3
48 ];
49
50 outputs = [
51 "out"
52 "dev"
53 ];
54
55 doCheck = true;
56 preCheck = ''
57 export OMP_NUM_THREADS=2
58 '';
59
60 meta = with lib; {
61 description = "Light-weight tight-binding framework";
62 mainProgram = "tblite";
63 license = with licenses; [
64 gpl3Plus
65 lgpl3Plus
66 ];
67 homepage = "https://github.com/tblite/tblite";
68 platforms = platforms.linux;
69 maintainers = [ maintainers.sheepforce ];
70 };
71}