-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathshell.nix
61 lines (55 loc) · 1.64 KB
/
shell.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
let
pkgs = import ./pkgs.nix;
haskellPkgs = pkgs.haskellPkgs;
nixpkgs = pkgs.nixpkgs;
spicyPkgs = import ./default.nix { wrap = false; profiling = true; };
# Spicy runtime configuration setup.
spicyrc = with nixpkgs;writeTextFile {
name = "spicyrc";
text = lib.generators.toYAML {} {
"psi4" = "${qchem.psi4Unstable}/bin/psi4";
"gdma" = "${qchem.gdma}/bin/gdma";
"pysisyphus" = "${qchem.pysisyphus}/bin/pysis";
"xtb" = "${qchem.xtb}/bin/xtb";
};
};
in
spicyPkgs.shellFor {
# Include only the *local* packages of your project.
packages = ps: with ps; [
spicy
];
# Builds a Hoogle documentation index of all dependencies,
# and provides a "hoogle" command to search the index.
withHoogle = true;
# Some common tools can be added with the `tools` argument
# See overlays/tools.nix for more details
tools = {
cabal = "3.4.0.0";
haskell-language-server = "1.2.0.0"; # Hackage versions should be available
hlint = "latest";
hpack = "latest";
ormolu = "latest";
profiteur = "latest";
ghc-prof-flamegraph = "latest";
hp2pretty = "latest";
hs-speedscope = "latest";
threadscope = "latest";
};
# Some you may need to get some other way.
buildInputs = with nixpkgs; [
niv
flamegraph
qchem.pysisyphus
qchem.psi4Unstable
qchem.gdma
qchem.xtb
];
# Setup a runtime with QC wrappers available.
shellHook = ''
export SPICYRC=${spicyrc}
'';
# Prevents cabal from choosing alternate plans, so that
# *all* dependencies are provided by Nix.
exactDeps = true;
}